On Fri, Jan 15, 2016 at 03:47:17PM +0000, Peter Maydell wrote: > On 15 January 2016 at 15:37, Edgar E. Iglesias <edgar.igles...@gmail.com> > wrote: > > On Fri, Jan 15, 2016 at 02:50:24PM +0000, Peter Maydell wrote: > >> Do you have much locally extra that you needed for enabling > >> EL3 in the Cortex-A53? I have an ARM Trusted Firmware + OP-TEE > >> setup now that I'm going to use to work through the missing bits, > >> but if you've already gone through that effort there's no need > >> my duplicating work... > > > > I don't have anything immediate for EL3 beyond enabling it and some > > boot thing for a15/aarch32 to allow me to run my tests. > > Cool. I'm not sure at what point to add the patch that turns > on the EL3 feature bit, but I guess in the not too distant future :-)
IMO, we should have enabled it by now :-) I guess the EL2 needs the 2 stage MMU error handling and maybe the GIC virt features to be reasonably useful, I don't know. > > > I haven't > > really looked at the boot in detail for aa32 so I haven't bothered > > submitting it. This is it: > > > > commit b30c7102624241a67ebb2d3df70e88a4148f68a4 > > Author: Edgar E. Iglesias <edgar.igles...@xilinx.com> > > Date: Sun Sep 13 09:52:01 2015 +0200 > > > > target-arm: Start EL3 capable ARMv7 cores in MON mode > > > > Signed-off-by: Edgar E. Iglesias <edgar.igles...@xilinx.com> > > > > diff --git a/target-arm/cpu.c b/target-arm/cpu.c > > index f6f5539..485965f 100644 > > --- a/target-arm/cpu.c > > +++ b/target-arm/cpu.c > > @@ -164,6 +164,9 @@ static void arm_cpu_reset(CPUState *s) > > #else > > /* SVC mode with interrupts disabled. */ > > env->uncached_cpsr = ARM_CPU_MODE_SVC; > > + if (arm_feature(env, ARM_FEATURE_EL3)) { > > + env->uncached_cpsr = ARM_CPU_MODE_MON; > > + } > > env->daif = PSTATE_D | PSTATE_A | PSTATE_I | PSTATE_F; > > /* On ARMv7-M the CPSR_I is the value of the PRIMASK register, and is > > * clear at reset. Initial SP and PC are loaded from ROM. > > This doesn't look right. A 32-bit CPU with TrustZone boots into > Secure-SVC, not Mon. This works because in the v7 security model > Secure-SVC and Mon are at the same privilege level, unlike AArch64 > where EL3 is higher privilege than EL1. If guest code needs to > get into Mon mode it can do so from S-SVC (eg set MVBAR, make > sure there's sensible code at that vector entrypoint, execute > an SMC). Thanks. I figured my zero research would prove me wrong :-) Thinking about it, I have never ran my aa32 TZ testsuite on real HW so there are tons of stuff that could be wrong! Best regards, Edgar