#include <AsmMacroIoLibV8.h>\r
\r
.macro mov_i, reg:req, imm:req\r
- movz \reg, :abs_g3:\imm\r
- movk \reg, :abs_g2_nc:\imm\r
- movk \reg, :abs_g1_nc:\imm\r
+ movz \reg, :abs_g1:\imm\r
movk \reg, :abs_g0_nc:\imm\r
.endm\r
\r
\r
ASM_FUNC(ArmPlatformPeiBootAction)\r
mrs x0, CurrentEL // check current exception level\r
- tbz x0, #3, 0f // bail if above EL1\r
- ret\r
+ tbnz x0, #3, 0f // omit early ID map if above EL1\r
\r
-0:mov_i x0, mairval\r
+ mov_i x0, mairval\r
mov_i x1, tcrval\r
adrp x2, idmap\r
orr x2, x2, #0xff << 48 // set non-zero ASID\r
\r
msr sctlr_el1, x3 // enable MMU and caches\r
isb\r
- ret\r
+\r
+0:b ArmEnableVFP // enable SIMD before entering C code\r
\r
//UINTN\r
//ArmPlatformGetCorePosition (\r