diff options
Diffstat (limited to 'arch/blackfin/cpu/cpu.c')
| -rw-r--r-- | arch/blackfin/cpu/cpu.c | 16 | 
1 files changed, 10 insertions, 6 deletions
| diff --git a/arch/blackfin/cpu/cpu.c b/arch/blackfin/cpu/cpu.c index 18dbdf7ab..6a0bcca9f 100644 --- a/arch/blackfin/cpu/cpu.c +++ b/arch/blackfin/cpu/cpu.c @@ -19,6 +19,7 @@  #include "cpu.h"  #include "serial.h" +#include "initcode.h"  ulong bfin_poweron_retx; @@ -44,13 +45,16 @@ void cpu_init_f(ulong bootflag, ulong loaded_from_ldr)  		extern char _sdata_l1[], _data_l1_lma[], _data_l1_len[];  		memcpy(&_sdata_l1, &_data_l1_lma, (unsigned long)_data_l1_len);  	} -#if defined(__ADSPBF537__) || defined(__ADSPBF536__) || defined(__ADSPBF534__) -	/* The BF537 bootrom will reset the EBIU_AMGCTL register on us -	 * after it has finished loading the LDR.  So configure it again. + +	/* +	 * Make sure our async settings are committed.  Some bootroms +	 * (like the BF537) will reset some registers on us after it +	 * has finished loading the LDR.  Or if we're booting over +	 * JTAG, the initcode never got a chance to run.  Or if we +	 * aren't booting from parallel flash, the initcode skipped +	 * this step completely.  	 */ -	else -		bfin_write_EBIU_AMGCTL(CONFIG_EBIU_AMGCTL_VAL); -#endif +	program_async_controller(NULL);  	/* Save RETX so we can pass it while booting Linux */  	bfin_poweron_retx = bootflag; |