diff options
| author | Anton Vorontsov <avorontsov@ru.mvista.com> | 2009-10-12 23:55:39 +0400 | 
|---|---|---|
| committer | Kumar Gala <galak@kernel.crashing.org> | 2009-10-16 10:21:56 -0500 | 
| commit | 91525c67153fcf2c19b2fc8d9c6376ac1a019f52 (patch) | |
| tree | 20493fcab43adcf2651ae442194a7f859ed13c86 | |
| parent | 26df6aa9916443077139f8f008fbc5f414ba05e5 (diff) | |
| download | olio-uboot-2014.01-91525c67153fcf2c19b2fc8d9c6376ac1a019f52.tar.xz olio-uboot-2014.01-91525c67153fcf2c19b2fc8d9c6376ac1a019f52.zip | |
mpc85xx: Fix booting on various boards
commit 0e870980a64584a591af775bb9c9fe9450124df9 ("8xxx: Removed
CONFIG_NUM_CPUS from 85xx/86xx") breaks U-Boot on various boards,
namely the ones that call get_sys_info() from board_early_init_f().
get_sys_info() calls cpu_numcores(), which depends on probecpu()
being called before. But probecpu() is called after board_early_init_f(),
and so cpu_numcores() returns random values, which in turn crashes
get_sys_info().
To fix the issue we place probecpu() before board_early_init_f()
in an initialization sequence.
Booting on the following boards should be revived now:
 mpc8540ads
 mpc8541cds
 mpc8548cds
 mpc8555cds
 mpc8560ads
 mpc8568mds
 mpc8569mds
 and maybe more.
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
| -rw-r--r-- | lib_ppc/board.c | 8 | 
1 files changed, 3 insertions, 5 deletions
| diff --git a/lib_ppc/board.c b/lib_ppc/board.c index 796d00242..765f97a04 100644 --- a/lib_ppc/board.c +++ b/lib_ppc/board.c @@ -255,14 +255,12 @@ static int init_func_watchdog_reset (void)   */  init_fnc_t *init_sequence[] = { - -#if defined(CONFIG_BOARD_EARLY_INIT_F) -	board_early_init_f, -#endif -  #if defined(CONFIG_MPC85xx) || defined(CONFIG_MPC86xx)  	probecpu,  #endif +#if defined(CONFIG_BOARD_EARLY_INIT_F) +	board_early_init_f, +#endif  #if !defined(CONFIG_8xx_CPUCLK_DEFAULT)  	get_clocks,		/* get CPU and bus clocks (etc.) */  #if defined(CONFIG_TQM8xxL) && !defined(CONFIG_TQM866M) \ |