[U-Boot] [PATCH 12/35] rockchip: rk322x: introduce arch_cpu_init() for SoC setting init

Kever Yang kever.yang at rock-chips.com
Mon Jul 22 11:59:19 UTC 2019


Use arch_cpu_init() to init SoC secure region and move it to
rk322x.c

Signed-off-by: Kever Yang <kever.yang at rock-chips.com>
---

 arch/arm/mach-rockchip/rk322x-board-spl.c | 10 ++++++----
 arch/arm/mach-rockchip/rk322x/rk322x.c    | 12 ++++++++++++
 2 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/arch/arm/mach-rockchip/rk322x-board-spl.c b/arch/arm/mach-rockchip/rk322x-board-spl.c
index c825e31c02..6bf9e444ce 100644
--- a/arch/arm/mach-rockchip/rk322x-board-spl.c
+++ b/arch/arm/mach-rockchip/rk322x-board-spl.c
@@ -44,7 +44,11 @@ void rockchip_stimer_init(void)
 	       TIMER_CONTROL_REG);
 }
 
-#define SGRF_DDR_CON0 0x10150000
+__weak int arch_cpu_init(void)
+{
+	return 0;
+}
+
 void board_init_f(ulong dummy)
 {
 	int ret;
@@ -60,9 +64,7 @@ void board_init_f(ulong dummy)
 	rockchip_stimer_init();
 	/* Init ARM arch timer in arch/arm/cpu/armv7/arch_timer.c */
 	timer_init();
-
-	/* Disable the ddr secure region setting to make it non-secure */
-	rk_clrreg(SGRF_DDR_CON0, 0x4000);
+	arch_cpu_init();
 }
 
 #ifdef CONFIG_SPL_LOAD_FIT
diff --git a/arch/arm/mach-rockchip/rk322x/rk322x.c b/arch/arm/mach-rockchip/rk322x/rk322x.c
index e5250bc784..c8c656ab4b 100644
--- a/arch/arm/mach-rockchip/rk322x/rk322x.c
+++ b/arch/arm/mach-rockchip/rk322x/rk322x.c
@@ -42,3 +42,15 @@ void board_debug_uart_init(void)
 		     CON_IOMUX_UART2SEL_21 << CON_IOMUX_UART2SEL_SHIFT);
 }
 #endif
+
+int arch_cpu_init(void)
+{
+#ifdef CONFIG_SPL_BUILD
+#define SGRF_BASE	0x10150000
+	static struct rk322x_sgrf * const sgrf = (void *)SGRF_BASE;
+
+	/* Disable the ddr secure region setting to make it non-secure */
+	rk_clrreg(&sgrf->soc_con[0], 0x4000);
+#endif
+	return 0;
+}
-- 
2.17.1



More information about the U-Boot mailing list