Write to SCTLR_EL2/HSCTLR may not be visible until the next context
synchronization. When initializing the CPU, we want the update to take
effect right now. So add an isb afterwards.
Spec references:
- AArch64: D13.1.2 ARM DDI 0406C.d
- AArch32 v8: G8.1.2 ARM DDI 0406C.d
- AArch32 v7: B5.6.3 ARM DDI 0406C.d
Signed-off-by: Julien Grall <jgrall@amazon.com>
Reviewed-by: Michal Orzel <michal.orzel@arm.com>
Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
ldr r0, =HSCTLR_SET
mcr CP32(r0, HSCTLR)
+ isb
mov pc, r5 /* Return address is in r5 */
ENDPROC(cpu_init)
ldr x0, =SCTLR_EL2_SET
msr SCTLR_EL2, x0
+ isb
/*
* Ensure that any exceptions encountered at EL2