From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefan Roese Date: Wed, 05 Nov 2014 10:24:19 +0100 Subject: [U-Boot] [PATCH v1] ppc: Fix ppc4xx CONFIG_SYS_GENERIC_BOARD In-Reply-To: <1415008591-20829-1-git-send-email-dirk.eibach@gdsys.cc> References: <1415008591-20829-1-git-send-email-dirk.eibach@gdsys.cc> Message-ID: <5459ECC3.8080904@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 03.11.2014 10:56, dirk.eibach at gdsys.cc wrote: > From: Dirk Eibach > > 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 > > With > d29437a 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 commit d54d7eb 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. Thanks Dirk for fixing this on ppc4xx. Applied to u-boot-ppc4xx/master. Thanks, Stefan