[U-Boot] ARM relocation, probably trivial mistake - back to original problem

Reinhard Meyer
2010-10-01T09:50:29Z

Dear Wolfgang Denk,
> Dear Reinhard Meyer,
>
> In message <4CA590E6.6070701@emk-elektronik.de> you wrote:
>> it seems, that with relocation enabled, some
>> data does not seem to get initialized properly:
>
> I rather suspect you have code running that violates the
> pre-relocation restrictions (no bss segment available, read-only data
> segment).

Definitely, since AT91 ALWAYS uses a preloader and therefore
until now u-boot was loaded to its final location with working bss,
nobody ever before observed any problems therefore.

There has never been a real need for relocation before.

That means quite some common AT91 code has to be checked and adjusted
because this upcoming "enforcement" of relocation.

> ...or identical to the final position in RAM.

Which never is a good idea.

And Wolfgang, very begin of SDRAM is meant seeing through
"AT91 glasses", where SDRAM never holds any vectors. One has
to be watchful about the initial stack, which currently is at
the begin of SDRAM, too. But that could be put inside the SRAM.

So, for AT91, I think I will put stack into the 4/32k SRAM,
U-Boot at the very beginning. Unfortunately that involves
modifying the preloader as well.

I suspect Atmel will not modify the source of their evaluation
boards, so those will fall out of u-boot soon.

Best Regards,
Reinhard