aboutsummaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorKever Yang2019-07-22 19:59:19 +0800
committerKever Yang2019-07-29 10:25:27 +0800
commit7dc79f8af0be723524bd7a242049efaa10197576 (patch)
treebc8b0cd8d7bcbf143379a2196484bee8e72f85b6 /arch
parent4eb506322e5f788424bcbd409e2d5f2f404d1e28 (diff)
rockchip: rk322x: introduce arch_cpu_init() for SoC setting init
Use arch_cpu_init() to init SoC secure region and move it to rk322x.c Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-rockchip/rk322x-board-spl.c10
-rw-r--r--arch/arm/mach-rockchip/rk322x/rk322x.c12
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 c825e31c02d..6bf9e444ce8 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 e5250bc7848..c8c656ab4b6 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;
+}