[U-Boot-Users] [PATCH] Make MPC83xx one step closer to full relocation.

Joakim Tjernlund
2008-04-08T13:07:31Z

On Tue, 2008-04-08 at 13:58 +0200, Wolfgang Denk wrote:
> In message <1207651833.5826.21.camel@gentoo-jocke.transmode.se> you wrote:
> >
> > > > > CFG_MONITOR_BASE=fffa0000
> ...
> > I first did a new symbol for this but changed it to use _start as I
> > didn't want to introduce yet another symbol. I would hope it is
> > possible to rework 4xx to move the _start symbol to were it belongs?
> > Not having the _start symbol where it should be could bite you some
> > other day too.
>
> I think you got this wrong. _start *is* where it should be, where the
> execution of the code begins. Where you set the breakpoint in gdb.

Ah, right. I *assumed* that _start was always the first symbol in the
text segment too. On 4xx it isn't for some reason, but it should be
possible to move it first.

Sidnote: Does execution really begin at _start for 4xx? I still looks
like it begin at _start_440 and eventually end up at _start

>
> The "new symbol" you mention corresponds to CFG_MONITOR_BASE, but note
> that it has no fixed address as it depends where you place your image
> in flash.

Yes, but the address is not important here, it is the difference
_end - _start. I guess we could define a linker symbol too
that calculates _end - _start for us and then just do
len = _uboot_reloc_size + EXC_OFF_SYS_RESET;

or define a new symbol that is initialised to CFG_MONITOR_BASE or let
the linker place it at the beginning of .text, hopefully there is
already a name reserved for the symbol although I don't know of such a
name. I either case I think one needs to add that symbol to the GOT list
in start.S

Jocke