ARM: renesas: falcon: Initialize ARM generic timer and GICv3 if EL3
authorHai Pham <hai.pham.ud@renesas.com>
Mon, 27 Feb 2023 23:02:18 +0000 (00:02 +0100)
committerMarek Vasut <marek.vasut+renesas@mailbox.org>
Sat, 18 Mar 2023 10:59:45 +0000 (11:59 +0100)
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@mailbox.org>
Signed-off-by: Hai Pham <hai.pham.ud@renesas.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
board/renesas/falcon/falcon.c

index b0cb4e7..b7e7fd9 100644 (file)
@@ -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;
 }