aboutsummaryrefslogtreecommitdiff
path: root/lib_ppc/board.c
diff options
context:
space:
mode:
authorAnton Vorontsov <avorontsov@ru.mvista.com>2009-10-12 23:55:39 +0400
committerKumar Gala <galak@kernel.crashing.org>2009-10-16 10:21:56 -0500
commit91525c67153fcf2c19b2fc8d9c6376ac1a019f52 (patch)
tree20493fcab43adcf2651ae442194a7f859ed13c86 /lib_ppc/board.c
parent26df6aa9916443077139f8f008fbc5f414ba05e5 (diff)
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>
Diffstat (limited to 'lib_ppc/board.c')
-rw-r--r--lib_ppc/board.c8
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) \