[U-Boot] [GENERIC_BOARD] env problems before relocation with ppc8360

Simon Glass sjg at chromium.org
Sun Sep 28 06:27:58 CEST 2014


Hi,

On 26 August 2014 09:17, Valentin Longchamp
<valentin.longchamp at keymile.com> wrote:
>
> Hello,
>
> Here is the outcome of my debug session today:
>
> On 08/25/2014 05:42 PM, Valentin Longchamp wrote:
> > Hello,
> >
> > I am currently porting all the Keymile boards to CONFIG_SYS_GENERIC_BOARD.
> > On u-boot 2014.10-rc1 I have all of them working quite well (at least booting
> > and showing no obvious problem), except for our boards using a MPC8360
> > from Freescale (kmcoge5ne and kmeter1, both using km8360.h as config) that do
> > not boot at all.
> >
> > I have found out that u-boot crashes as soon as a getenv function call happens
> > before relocation. When I disable them, u-boot seems to work fine. I am
> > currently trying to debug further, but it's not clear yet exactly what causes
> > the crash.
>
> So the problem is that for an unknown reason, the gd->flags are not correct and
> getenv actually calls hsearch_h to look for the desired env variable. This fails
> before relocation (due to the small stack ?).
>
> If I replace the board_f getenv_ulong calls in board_f.c with my getenv_f_ulong
> function that explicitely calls getenv_f the board boots up nicely.
>
> Now the question is, why are my gd->flags not correct/corrupted ? Has someone
> already seen something similar ? I unfortunateley cannot access gd easily with
> the BDI, since it is located in the INIT_RAM which is a data cache, for which I
> have no LAW configured (could work on that).

I just saw this. There is condition code at the start of
board_init_f() in board_f.c that might exclude your board. So your
global data might not be zeroed.

>
>
> >
> > We also have quite a few MPC8321 boards (for instance tuxx1.h or suvd3.h) and
> > there the problem is not present, while the environment is also in the NOR
> > flash as on km8360 and their core also a e300 (so their initialization is VERY
> > similar).
>
> I have checked and there it's clearly getenv_f that gets called by getenv before
> relocation. That's why no problem is seen there.
>
> Valentin
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot


Regards,
Simon


More information about the U-Boot mailing list