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)
 | 
			
		|||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Routine: s_init
 | 
			
		||||
 * Description: Does early system init of watchdog, muxing,  andclocks
 | 
			
		||||
void s_init(void)
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 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
 | 
			
		||||
 * depends on the boot mode in which this function is executed
 | 
			
		||||
 *   1. s_init of SPL running from SRAM
 | 
			
		||||
 *   2. s_init of U-Boot running from FLASH
 | 
			
		||||
 *   3. s_init of U-Boot loaded to SDRAM by SPL
 | 
			
		||||
 *   4. s_init of U-Boot loaded to SDRAM by ROM code using the
 | 
			
		||||
 * depends on the boot mode in which this function is executed when
 | 
			
		||||
 *   1. SPL running from SRAM
 | 
			
		||||
 *   2. U-Boot running from FLASH
 | 
			
		||||
 *   3. U-Boot loaded to SDRAM by SPL
 | 
			
		||||
 *   4. U-Boot loaded to SDRAM by ROM code using the
 | 
			
		||||
 *	Configuration Header feature
 | 
			
		||||
 * Please have a look at the respective functions to see what gets
 | 
			
		||||
 * done in each of these cases
 | 
			
		||||
 * This function is called with SRAM stack.
 | 
			
		||||
 */
 | 
			
		||||
void s_init(void)
 | 
			
		||||
void early_system_init(void)
 | 
			
		||||
{
 | 
			
		||||
	init_omap_revision();
 | 
			
		||||
	hw_data_init();
 | 
			
		||||
| 
						 | 
				
			
			@ -145,6 +150,7 @@ void s_init(void)
 | 
			
		|||
#ifdef CONFIG_SPL_BUILD
 | 
			
		||||
void board_init_f(ulong dummy)
 | 
			
		||||
{
 | 
			
		||||
	early_system_init();
 | 
			
		||||
#ifdef CONFIG_BOARD_EARLY_INIT_F
 | 
			
		||||
	board_early_init_f();
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -153,6 +159,12 @@ void board_init_f(ulong dummy)
 | 
			
		|||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
int arch_cpu_init_dm(void)
 | 
			
		||||
{
 | 
			
		||||
	early_system_init();
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Routine: wait_for_command_complete
 | 
			
		||||
 * Description: Wait for posting to finish on watchdog
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue