diff options
Diffstat (limited to 'lib_ppc/board.c')
-rw-r--r-- | lib_ppc/board.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/lib_ppc/board.c b/lib_ppc/board.c index 3b93e4e158..a33ee27f26 100644 --- a/lib_ppc/board.c +++ b/lib_ppc/board.c @@ -79,6 +79,10 @@ #include <asm/mmu.h> #endif +#ifdef CONFIG_MP +#include <asm/mp.h> +#endif + #ifdef CONFIG_SYS_UPDATE_FLASH_SIZE extern int update_flash_size (int flash_size); #endif @@ -444,6 +448,17 @@ void board_init_f (ulong bootflag) addr = CONFIG_SYS_SDRAM_BASE + get_effective_memsize(); +#if defined(CONFIG_MP) && (defined(CONFIG_MPC86xx) || defined(CONFIG_E500)) + /* + * We need to make sure the location we intend to put secondary core + * boot code is reserved and not used by any part of u-boot + */ + if (addr > determine_mp_bootpg()) { + addr = determine_mp_bootpg(); + debug ("Reserving MP boot page to %08lx\n", addr); + } +#endif + #ifdef CONFIG_LOGBUFFER #ifndef CONFIG_ALT_LB_ADDR /* reserve kernel log buffer */ |