ppc: Fix ppc4xx CONFIG_SYS_GENERIC_BOARD
I realized that with v2014.10 u-boot is not starting up on ppc4xx boards with CONFIG_SYS_GENERIC_BOARD set. I bisected it down to this:d54d7eb
support blackfin board initialization in generic board_f Withd29437a
ppc: Make ppc4xx ready for CONFIG_SYS_GENERIC_BOARD I set gd to a defined value for ppc4xx in cpu_init_f(). I did not realize that the gd struct has also to be memset() to zero at this point. But at least commitd54d7eb
assumes it is: @@ -516,11 +528,13 @@ static int reserve_malloc(void) /* (permanently) allocate a Board Info struct */ static int reserve_board(void) { - gd->start_addr_sp -= sizeof(bd_t); - gd->bd = (bd_t *)map_sysmem(gd->start_addr_sp, sizeof(bd_t)); - memset(gd->bd, '\0', sizeof(bd_t)); - debug("Reserving %zu Bytes for Board Info at: %08lx\n", - sizeof(bd_t), gd->start_addr_sp); + if (!gd->bd) { + gd->start_addr_sp -= sizeof(bd_t); + gd->bd = (bd_t *)map_sysmem(gd->start_addr_sp, sizeof(bd_t)); + memset(gd->bd, '\0', sizeof(bd_t)); + debug("Reserving %zu Bytes for Board Info at: %08lx\n", + sizeof(bd_t), gd->start_addr_sp); + } return 0; } #endif This might also be an issue on other architectures, so maintainers should check. Signed-off-by: Dirk Eibach <dirk.eibach@gdsys.cc> Signed-off-by: Stefan Roese <sr@denx.de>
This commit is contained in:
parent
26f195c712
commit
f73002bc01
@ -451,6 +451,9 @@ cpu_init_f (void)
|
||||
#endif /* CONFIG_440SP/SPE || CONFIG_460EX/GT || CONFIG_405EX */
|
||||
|
||||
gd = (gd_t *)(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_GBL_DATA_OFFSET);
|
||||
|
||||
/* Clear initial global data */
|
||||
memset((void *)gd, 0, sizeof(gd_t));
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user