[U-Boot] [PATCH] relocation: Do not relocate NULL pointers.
Peter Tyser
ptyser at xes-inc.com
Wed Sep 23 14:57:19 CEST 2009
> > I made the same changes recently, but ran into an "issue" that prevented
> > me from sending the change upstream. Some boards/arches have the bss at
> > address 0 and later relocate it, unlike every other NULL pointer. If
> > you don't fix up the bss address, the board will not function. If you
> > run readelf on an 83xx u-boot image vs a 85xx u-boot image it should be
> > more clear what's going on. I was doing my testing on the XPedite5370
> > fwiw.
>
> Ouch, the horror continues :(
Yeah... Its seemingly never ending:)
> > In any case, the change as is would break some other arches. Seems like
> > the proper workaround would be to "fix" the 85xx (and other arches) link
> > script to locate the bss similar to the 83xx boards.
>
> Yes, something should be done. Does it work for you with a "fixed" linker script?
My "fix" to the linker script was to change:
__bss_start = .;
into:
__bss_start = . | 4;
ie, a big hack, but it did work:) I'll take a peek at a more proper
link script workaround.
> > It might be nice to consolidate all the ppc relocate code into 1
> > function while we were at it.
>
> Played around a little and this is what I got sofar, possibly
> WS damged and fixups untested:
Nice! It'd be great to have the magical 20 lines of assembly put into
some semi-understandable c.
Best,
Peter
More information about the U-Boot
mailing list