From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37159) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zb3Gm-0002uf-Gr for qemu-devel@nongnu.org; Sun, 13 Sep 2015 05:08:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zb3Gh-0000LZ-Hj for qemu-devel@nongnu.org; Sun, 13 Sep 2015 05:08:20 -0400 Received: from mail-wi0-x232.google.com ([2a00:1450:400c:c05::232]:35244) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zb3Gh-0000LR-B3 for qemu-devel@nongnu.org; Sun, 13 Sep 2015 05:08:15 -0400 Received: by wicge5 with SMTP id ge5so107338619wic.0 for ; Sun, 13 Sep 2015 02:08:14 -0700 (PDT) From: "Edgar E. Iglesias" Date: Sun, 13 Sep 2015 11:07:55 +0200 Message-Id: <1442135278-25281-6-git-send-email-edgar.iglesias@gmail.com> In-Reply-To: <1442135278-25281-1-git-send-email-edgar.iglesias@gmail.com> References: <1442135278-25281-1-git-send-email-edgar.iglesias@gmail.com> Subject: [Qemu-devel] [PATCH v2 5/8] target-arm: Suppress EPD for S2, EL2 and EL3 translations List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: edgar.iglesias@xilinx.com, serge.fdrv@gmail.com, alex.bennee@linaro.org, agraf@suse.de From: "Edgar E. Iglesias" Stage-2 translations, EL2 and EL3 regimes don't have the EPD control. Signed-off-by: Edgar E. Iglesias --- target-arm/helper.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/target-arm/helper.c b/target-arm/helper.c index 9977062..6c67ce2 100644 --- a/target-arm/helper.c +++ b/target-arm/helper.c @@ -6344,7 +6344,7 @@ static bool get_phys_addr_lpae(CPUARMState *env, target_ulong address, /* Read an LPAE long-descriptor translation table. */ MMUFaultType fault_type = translation_fault; uint32_t level = 1; - uint32_t epd; + uint32_t epd = 0; int32_t tsz; uint32_t tg; uint64_t ttbr; @@ -6438,7 +6438,9 @@ static bool get_phys_addr_lpae(CPUARMState *env, target_ulong address, */ if (ttbr_select == 0) { ttbr = regime_ttbr(env, mmu_idx, 0); - epd = extract32(tcr->raw_tcr, 7, 1); + if (el < 2) { + epd = extract32(tcr->raw_tcr, 7, 1); + } tsz = t0sz; tg = extract32(tcr->raw_tcr, 14, 2); -- 1.9.1