xen/arm: head: Add missing isb after writing to SCTLR_EL2/HSCTLR

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>
(cherry picked from commit 25424d1a6b)
This commit is contained in:
Julien Grall authored and Stefano Stabellini committed 2022-08-03 14:57:53 -07:00
1 parent 6f65040081
commit 0d362e5ed3
2 files changed
+2

No files matched your search

+1
View File
@@ -353,6 +353,7 @@ cpu_init_done:
ldr r0, =HSCTLR_SET
mcr CP32(r0, HSCTLR)
isb
mov pc, r5 /* Return address is in r5 */
ENDPROC(cpu_init)
+1
View File
@@ -485,6 +485,7 @@ cpu_init:
ldr x0, =SCTLR_EL2_SET
msr SCTLR_EL2, x0
isb
/*
* Ensure that any exceptions encountered at EL2
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.