[U-Boot] environment access before relocation does not work on (some) arm

Matthias Fuchs matthias.fuchs at esd.eu
Tue Jul 3 16:51:40 CEST 2012


Hi,

On 29.06.2012 13:26, Wolfgang Denk wrote:
> Dear Matthias Fuchs,
> 
> In message <4FED7877.2020505 at esd.eu> you wrote:
>>
>> I just noticed that using getenv (and friends)
>> does not work on ARM (namely i.MX28) from board_init_f()
>> after running through the init_sequence.
> 
> This is normal, and documented.  Before relocation, you must not use
> getenv().  
Yes, I am aware of this. I even think that the getenv() implementation
falls back to getenv_f() before relocation.
> 
>> Env access does not work before env_relocate() in board_init_r().
> 
> It does, but you have to play by the rules, i. e. use getenv_f()
> instead.
Yes, I did not care about where my env comes from :-) So env_sf.c does
not support an early env at all. Running on an i.MX28 with env in a SPI
flash I probably need SPI support in my SPL and an improved env_sf.c.

... and all this to get CONFIG_PRAM working in arch/arm/lib/board.c.
So I will stuck at using a constant pram value for the moment. This works.
> 
>> Didn't this behave different sometimes before? Even after the big
>> env rework?
> 
> No. The use of getenv() before relocation has never been supported.
> It may have worked (by pure chance) on some systems, but that's all.
Of course. My question was not very precise.

Matthias

> 
> Best regards,
> 
> Wolfgang Denk
> 



More information about the U-Boot mailing list