ARM: OMAP4+: Allow arch specfic 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. Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
parent
29c20ba235
commit
e850ed82bc
|
@ -107,21 +107,26 @@ void __weak do_board_detect(void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
void s_init(void)
|
||||||
* Routine: s_init
|
{
|
||||||
* Description: Does early system init of watchdog, muxing, andclocks
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* early_system_init - Does Early system initialization.
|
||||||
|
*
|
||||||
|
* Does early system init of watchdog, muxing, andclocks
|
||||||
* Watchdog disable is done always. For the rest what gets done
|
* Watchdog disable is done always. For the rest what gets done
|
||||||
* depends on the boot mode in which this function is executed
|
* depends on the boot mode in which this function is executed when
|
||||||
* 1. s_init of SPL running from SRAM
|
* 1. SPL running from SRAM
|
||||||
* 2. s_init of U-Boot running from FLASH
|
* 2. U-Boot running from FLASH
|
||||||
* 3. s_init of U-Boot loaded to SDRAM by SPL
|
* 3. U-Boot loaded to SDRAM by SPL
|
||||||
* 4. s_init of U-Boot loaded to SDRAM by ROM code using the
|
* 4. U-Boot loaded to SDRAM by ROM code using the
|
||||||
* Configuration Header feature
|
* Configuration Header feature
|
||||||
* Please have a look at the respective functions to see what gets
|
* Please have a look at the respective functions to see what gets
|
||||||
* done in each of these cases
|
* done in each of these cases
|
||||||
* This function is called with SRAM stack.
|
* This function is called with SRAM stack.
|
||||||
*/
|
*/
|
||||||
void s_init(void)
|
void early_system_init(void)
|
||||||
{
|
{
|
||||||
init_omap_revision();
|
init_omap_revision();
|
||||||
hw_data_init();
|
hw_data_init();
|
||||||
|
@ -145,6 +150,7 @@ void s_init(void)
|
||||||
#ifdef CONFIG_SPL_BUILD
|
#ifdef CONFIG_SPL_BUILD
|
||||||
void board_init_f(ulong dummy)
|
void board_init_f(ulong dummy)
|
||||||
{
|
{
|
||||||
|
early_system_init();
|
||||||
#ifdef CONFIG_BOARD_EARLY_INIT_F
|
#ifdef CONFIG_BOARD_EARLY_INIT_F
|
||||||
board_early_init_f();
|
board_early_init_f();
|
||||||
#endif
|
#endif
|
||||||
|
@ -153,6 +159,12 @@ void board_init_f(ulong dummy)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
int arch_cpu_init_dm(void)
|
||||||
|
{
|
||||||
|
early_system_init();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Routine: wait_for_command_complete
|
* Routine: wait_for_command_complete
|
||||||
* Description: Wait for posting to finish on watchdog
|
* Description: Wait for posting to finish on watchdog
|
||||||
|
|
Loading…
Reference in New Issue