[U-Boot] [TESTING PATCH] ppc: Relocation test patch

Joakim Tjernlund joakim.tjernlund at transmode.se
Thu Sep 17 15:25:05 CEST 2009


Wolfgang Denk <wd at denx.de> wrote on 17/09/2009 14:53:59:
>
> Dear Joakim Tjernlund,

Dear me :)

>
> In message <OF680476D5.A9D9D259-ONC1257634.00449AC4-C1257634.
> 0045177E at transmode.se> you wrote:
> >
> > > But why has the GOT table to fit "into built-in CPU memory"? When we
> > > are about to relocate U-Boot to RAM, we already have RAM working. So
> > > we should also be able to copy the GOT table to RAM and modify it
> > > there as needed before we use it?
> >
> > Before you get RAM working there are lots of references to global data and
> > string literals. These point to their link address so if you have loaded
> > u-boot at a different address than you link address you have to adjust for
> > the offset. Hard to do that when GOT is in flash :(
>
> Ah, I finally GOT you :-)

*LOL*

>
> Hm... but being able to load (and start) U-Boot from an arbitrary RAM
> location would be a big benefit, too, even if we still have to copy it
> to the correct (linked) address when storing it in flash.

Naa, true PIC is what I want.
What is really missing is an option to gcc telling it to use a register
as GOT base. Something like *assume* GOT is r30 instead of calculating it
from __GLOBAL_OFFSET_TABLE__ in every function.



More information about the U-Boot mailing list