[PATCH 1/2] ARM: renesas: falcon: Initialize ARM generic timer and GICv3 if EL3

Marek Vasut marek.vasut+renesas at mailbox.org
Tue Feb 28 00:02:18 CET 2023


From: Hai Pham <hai.pham.ud at renesas.com>

U-Boot executes at EL3 is required to initalize those settings.
In other cases, they will be done by prior-stage firmware instead.

This fixes crash when U-Boot is at non-secure exception level.

Reviewed-by: Marek Vasut <marek.vasut+renesas at mailbox.org>
Signed-off-by: Hai Pham <hai.pham.ud at renesas.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas at mailbox.org>
---
 board/renesas/falcon/falcon.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/board/renesas/falcon/falcon.c b/board/renesas/falcon/falcon.c
index b0cb4e747b6..b7e7fd9003a 100644
--- a/board/renesas/falcon/falcon.c
+++ b/board/renesas/falcon/falcon.c
@@ -14,6 +14,7 @@
 #include <asm/mach-types.h>
 #include <asm/processor.h>
 #include <linux/errno.h>
+#include <asm/system.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -69,7 +70,8 @@ static void init_gic_v3(void)
 
 void s_init(void)
 {
-	init_generic_timer();
+	if (current_el() == 3)
+		init_generic_timer();
 }
 
 int board_early_init_f(void)
@@ -86,7 +88,8 @@ int board_init(void)
 	/* address of boot parameters */
 	gd->bd->bi_boot_params = CONFIG_TEXT_BASE + 0x50000;
 
-	init_gic_v3();
+	if (current_el() == 3)
+		init_gic_v3();
 
 	return 0;
 }
-- 
2.39.2



More information about the U-Boot mailing list