From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44899) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZqhPn-0007Dd-Rj for qemu-devel@nongnu.org; Mon, 26 Oct 2015 09:02:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZqhPi-0002Tw-2b for qemu-devel@nongnu.org; Mon, 26 Oct 2015 09:02:19 -0400 Received: from mail-pa0-x234.google.com ([2607:f8b0:400e:c03::234]:34719) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZqhPh-0002To-T4 for qemu-devel@nongnu.org; Mon, 26 Oct 2015 09:02:13 -0400 Received: by padhk11 with SMTP id hk11so188556918pad.1 for ; Mon, 26 Oct 2015 06:02:13 -0700 (PDT) From: "Edgar E. Iglesias" Date: Mon, 26 Oct 2015 14:01:53 +0100 Message-Id: <1445864527-14520-1-git-send-email-edgar.iglesias@gmail.com> Subject: [Qemu-devel] [PATCH v5 00/14] arm: Steps towards EL2 support round 5 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: laurent.desnogues@gmail.com, serge.fdrv@gmail.com, edgar.iglesias@xilinx.com, alex.bennee@linaro.org, agraf@suse.de From: "Edgar E. Iglesias" Hi, Another round of patches towards EL2 support. This one adds partial support for 2-stage MMU. The AArch32/ARMv7 support is untested. Some of the details of error reporting are intentionally missing, I was thinking to add those incrementally as they get quite involved (e.g the register target and memory access size). S2 traps during while translating due to ATS writes are not handled either. Comments welcome! Best regards, Edgar v4 -> v5: * Avoid mixed code and vairable declaration of t0sz/t1sz * Separate logic for AArch32 S1/S2 t0sz extraction * Fix VTCR_EL2 typo * Use level and startlevel more like in the ARM manuals * Fix startlevel check logic * Let callers of get_phys_addr update hpfar_el2 v3 -> v4: * Introduce inputsize to simplify and better match ref manuals * Rename granule_sz to stride to better match ref manuals * Add support for AArch32 negative S2 t0sz * Add support for computing the AArch32 S2 PTW starting level * Add support for trapping on bad S2 starting levels v2 -> v3: * Prettify comments for ARMMMUFaultInfo * Add S2 translation for 32bit S1 PTWs * Add more comments to S2 PTW starting level computation v1 -> v2: * Fix HPFAR_EL2 access checks * Prettify computation of starting level for S2 PTW * Improve description of ap argument to get_S2prot * Fix EXEC protection in get_S2prot * Improve comments on S2 PTW attribute extraction * Add comment describing ARMMMUFaultInfo Edgar E. Iglesias (14): target-arm: Add HPFAR_EL2 target-arm: lpae: Make t0sz and t1sz signed integers target-arm: lpae: Move declaration of t0sz and t1sz target-arm: Add support for AArch32 S2 negative t0sz target-arm: lpae: Replace tsz with computed inputsize target-arm: lpae: Rename granule_sz to stride target-arm: Add computation of starting level for S2 PTW target-arm: Add support for S2 page-table protection bits target-arm: Avoid inline for get_phys_addr target-arm: Add ARMMMUFaultInfo target-arm: Add S2 translation to 64bit S1 PTWs target-arm: Add S2 translation to 32bit S1 PTWs target-arm: Route S2 MMU faults to EL2 target-arm: Add support for S1 + S2 MMU translations target-arm/cpu.h | 1 + target-arm/helper.c | 372 ++++++++++++++++++++++++++++++++++++++++--------- target-arm/internals.h | 40 +++++- target-arm/op_helper.c | 18 ++- 4 files changed, 359 insertions(+), 72 deletions(-) -- 1.9.1