From: Anton Vorontsov Date: Mon, 12 Oct 2009 19:55:39 +0000 (+0400) Subject: mpc85xx: Fix booting on various boards X-Git-Tag: v2009.11-rc1~30 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=91525c67153fcf2c19b2fc8d9c6376ac1a019f52;p=u-boot 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 Signed-off-by: Kumar Gala --- diff --git a/lib_ppc/board.c b/lib_ppc/board.c index 796d00242b..765f97a04d 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) \