From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55585) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aQxrg-00006x-5Y for qemu-devel@nongnu.org; Wed, 03 Feb 2016 08:53:01 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aQxrf-0006gQ-3B for qemu-devel@nongnu.org; Wed, 03 Feb 2016 08:53:00 -0500 From: Peter Maydell Date: Wed, 3 Feb 2016 13:38:34 +0000 Message-Id: <1454506721-11843-1-git-send-email-peter.maydell@linaro.org> Subject: [Qemu-devel] [PATCH 0/7] Fix some more EL3 things and enable EL3 for AArch64 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: "Edgar E. Iglesias" , qemu-arm@nongnu.org, patches@linaro.org This series fixes a couple more minor EL3 related missing parts, and then turns on EL3 for AArch64 CPUs. The minor fixed things are: * implement MDCR_EL3 and SDCR * trap Secure EL1 accesses to SCR and MVBAR to EL3 * add EL3 support to the code that decides whether to generate debug exceptions * fix corner cases in our NSACR handling To do the NSACR fix I had to change the CPAccessFn API to take an extra bool to tell the function if the access is a read or write. The only major thing I know of that we're missing for 64-bit EL3 is that we need to go through the "EL3 configurable controls" section of the ARM ARM to make sure we trap on the right things. But (a) I expect we're missing some for 32-bit as well and (b) this is enough to run some real-world EL3 code (ARM Trusted Firmware and OP-TEE), so it makes sense to me to turn on EL3 now. thanks -- PMM Peter Maydell (7): target-arm: Fix typo in comment in arm_is_secure_below_el3() target-arm: Implement MDCR_EL3 and SDCR target-arm: Use access_trap_aa32s_el1() for SCR and MVBAR target-arm: Update arm_generate_debug_exceptions() to handle EL2/EL3 target-arm: Add isread parameter to CPAccessFns target-arm: Implement NSACR trapping behaviour target-arm: Enable EL3 for Cortex-A53 and Cortex-A57 target-arm/cpu.h | 55 +++++++++++++-- target-arm/cpu64.c | 2 + target-arm/helper.c | 171 ++++++++++++++++++++++++++++++++++++--------- target-arm/helper.h | 2 +- target-arm/op_helper.c | 5 +- target-arm/translate-a64.c | 6 +- target-arm/translate.c | 7 +- 7 files changed, 200 insertions(+), 48 deletions(-) -- 1.9.1