From c704a99dff693d3e2d0fe1ad095febb89f872de9 Mon Sep 17 00:00:00 2001 From: Lokesh Vutla Date: Fri, 14 Oct 2016 10:35:23 +0530 Subject: [PATCH] ARM: AMx3xx: Allow arch specific code to use early DM Early system initialization is being done before initf_dm is being called in U-Boot. Then system will fail to boot if any of the DM enabled driver is being called in this system initialization code. So, rearrange the code a bit so that DM enabled drivers can be called during early system initialization. This is inspired by commit e850ed82bce8 ("ARM: OMAP4+: Allow arch specific code to use early DM") Signed-off-by: Lokesh Vutla Reviewed-by: Tom Rini --- arch/arm/cpu/armv7/am33xx/board.c | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/arch/arm/cpu/armv7/am33xx/board.c b/arch/arm/cpu/armv7/am33xx/board.c index 68badedd14..1ba4ec5a96 100644 --- a/arch/arm/cpu/armv7/am33xx/board.c +++ b/arch/arm/cpu/armv7/am33xx/board.c @@ -270,15 +270,11 @@ static void watchdog_disable(void) ; } -#ifdef CONFIG_SPL_BUILD -void board_init_f(ulong dummy) +void s_init(void) { - board_early_init_f(); - sdram_init(); } -#endif -void s_init(void) +void early_system_init(void) { /* * The ROM will only have set up sufficient pinmux to allow for the @@ -297,4 +293,22 @@ void s_init(void) rtc32k_enable(); #endif } + +#ifdef CONFIG_SPL_BUILD +void board_init_f(ulong dummy) +{ + early_system_init(); + board_early_init_f(); + sdram_init(); +} #endif + +#endif + +int arch_cpu_init_dm(void) +{ +#ifndef CONFIG_SKIP_LOWLEVEL_INIT + early_system_init(); +#endif + return 0; +} -- 2.39.5