[PATCH] arm64: versal: Add support to load an app at EL1

Ashok Reddy Soma ashok.reddy.soma at xilinx.com
Fri May 6 07:53:45 CEST 2022


Add support to switch to EL1 and load an EL1 app from U-Boot which is
executing at EL2 or EL3 in aarch64 mode.

Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma at xilinx.com>
---

 board/xilinx/versal/board.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/board/xilinx/versal/board.c b/board/xilinx/versal/board.c
index 2e2807eee4..a0f937eb45 100644
--- a/board/xilinx/versal/board.c
+++ b/board/xilinx/versal/board.c
@@ -91,6 +91,23 @@ int board_early_init_r(void)
 	return 0;
 }
 
+unsigned long do_go_exec(ulong (*entry)(int, char * const []), int argc,
+			 char *const argv[])
+{
+	int ret = 0;
+
+	if (current_el() > 1) {
+		smp_kick_all_cpus();
+		dcache_disable();
+		armv8_switch_to_el1(0x0, 0, 0, 0, (unsigned long)entry,
+				    ES_TO_AARCH64);
+	} else {
+		printf("FAIL: current EL is not above EL1\n");
+		ret = EINVAL;
+	}
+	return ret;
+}
+
 static u8 versal_get_bootmode(void)
 {
 	u8 bootmode;
-- 
2.17.1



More information about the U-Boot mailing list