[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