Hi Alex > -----Original Message----- > From: Alexander Graf [mailto:ag...@suse.de] > Sent: Tuesday, June 21, 2016 4:37 AM > To: u-boot@lists.denx.de > Cc: york sun <york....@nxp.com>; Prabhakar Kushwaha > <prabhakar.kushw...@nxp.com> > Subject: [PATCH v4 2/9] efi_loader: AArch64: Run EFI payloads in EL2 if U- > Boot runs in EL3 > > Some boards decided not to run ATF or other secure firmware in EL3, so they > instead run U-Boot there. The uEFI spec doesn't know what EL3 is though - it > only knows about EL2 and EL1. So if we see that we're running in EL3, let's > get > into EL2 to make payloads happy. > > Signed-off-by: Alexander Graf <ag...@suse.de> > ---
<snip> > asm volatile("isb"); > diff --git a/cmd/bootefi.c b/cmd/bootefi.c index 2169065..edd0980 100644 > --- a/cmd/bootefi.c > +++ b/cmd/bootefi.c > @@ -205,6 +205,17 @@ static unsigned long do_bootefi_exec(void *efi, void > *fdt) > loaded_image_info.device_handle = nethandle; #endif > > +#ifdef CONFIG_ARM64 > + /* On AArch64 we need to make sure we call our payload in < EL3 */ > + if (current_el() == 3) { > + smp_kick_all_cpus(); > + dcache_disable(); /* flush cache before switch to EL2 */ > + armv8_switch_to_el2(); > + /* Enable caches again */ > + set_sctlr(get_sctlr() | (CR_C|CR_M)); > + } As exception level switch to EL2. Who is creating MMU table for EL2. --prabhakar _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot