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

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@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;

On Thu, 5 May 2022 23:53:45 -0600, Ashok Reddy Soma wrote:
Add support to switch to EL1 and load an EL1 app from U-Boot which is executing at EL2 or EL3 in aarch64 mode.
Applied, thanks!
[1/1] arm64: versal: Add support to load an app at EL1 https://source.denx.de/u-boot/custodians/u-boot-microblaze/-/commit/dca041d1...
Best regards,
participants (2)
-
Ashok Reddy Soma
-
Michal Simek