[PATCH 01/13] imx: lowlevel: implement armv8_el2_to_aarch32

Peng Fan (OSS) peng.fan at oss.nxp.com
Thu Jan 14 08:27:58 CET 2021


From: Peng Fan <peng.fan at nxp.com>

Implement armv8_el2_to_aarch32 for aarch64 U-Boot booting aarch32 SMP
linux. It will trap to ATF to let ATF handle the mode switching.

Signed-off-by: Peng Fan <peng.fan at nxp.com>
---
 arch/arm/mach-imx/lowlevel.S | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/arch/arm/mach-imx/lowlevel.S b/arch/arm/mach-imx/lowlevel.S
index 158fdb7d87..c500aa8123 100644
--- a/arch/arm/mach-imx/lowlevel.S
+++ b/arch/arm/mach-imx/lowlevel.S
@@ -20,3 +20,26 @@ ENTRY(lowlevel_init)
 	isb
 	ret
 ENDPROC(lowlevel_init)
+
+/*
+ * Switch from AArch64 EL2 to AArch32 EL2
+ * @param inputs:
+ * x0: argument, zero
+ * x1: machine nr
+ * x2: fdt address
+ * x3: input argument
+ * x4: kernel entry point
+ * @param outputs for secure firmware:
+ * x0: function id
+ * x1: kernel entry point
+ * x2: machine nr
+ * x3: fdt address
+*/
+.global armv8_el2_to_aarch32
+armv8_el2_to_aarch32:
+	mov     x3, x2
+	mov     x2, x1
+	mov     x1, x4
+	ldr     x0, =0xc20000fd
+	smc     #0
+	ret
-- 
2.28.0



More information about the U-Boot mailing list