[boot-wrapper PATCH v3 5/8] aarch64: Prepare for lower EL booting
From: Jaxson Han <hidden>
Date: 2021-05-25 06:29:48
Subsystem:
the rest · Maintainer:
Linus Torvalds
Save SPSR_KERNEL into spsr_to_elx during el3_init. The jump_kernel will load spsr_to_elx into spsr_el3. This change will make it easier to control whether drop to lower EL before jumping to the kernel. Signed-off-by: Jaxson Han <redacted> Reviewed-by: Andre Przywara <andre.przywara@arm.com> --- arch/aarch64/boot.S | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/arch/aarch64/boot.S b/arch/aarch64/boot.S
index 8a0219b..5600859 100644
--- a/arch/aarch64/boot.S
+++ b/arch/aarch64/boot.S@@ -118,7 +118,16 @@ el3_init: mov x0, #ZCR_EL3_LEN_MASK // SVE: Enable full vector len msr ZCR_EL3, x0 // for EL2. -1: + /* + * Save SPSR_KERNEL into spsr_to_elx. + * The jump_kernel will load spsr_to_elx into spsr_el3 + */ +1: mov w0, #SPSR_KERNEL + ldr x1, =spsr_to_elx + str w0, [x1] + b el_max_init + +el_max_init: ldr x0, =CNTFRQ msr cntfrq_el0, x0
@@ -166,7 +175,7 @@ jump_kernel: b.eq 1f br x19 // Keep current EL -1: mov x4, #SPSR_KERNEL +1: ldr w4, spsr_to_elx /* * If bit 0 of the kernel address is set, we're entering in AArch32
@@ -184,3 +193,5 @@ jump_kernel: .align 3 flag_keep_el: .long 0 +spsr_to_elx: + .long 0
--
2.25.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel