diff mbox series

arm64: versal: Add support to load an app at EL1

Message ID 20220506055345.1921-1-ashok.reddy.soma@xilinx.com
State Accepted
Commit 2eeceb4842b2465e07e654b78133bb035c28b7c2
Delegated to: Michal Simek
Headers show
Series arm64: versal: Add support to load an app at EL1 | expand

Commit Message

Ashok Reddy Soma May 6, 2022, 5:53 a.m. UTC
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(+)

Comments

Michal Simek May 6, 2022, 8:18 a.m. UTC | #1
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/dca041d17910dcef75abca1c4f9262bf747fe4dc

Best regards,
diff mbox series

Patch

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;