
Dear Wolter,
in message 3FCB7600.6040402@wkamphuis.student.utwente.nl you wrote:
U-boot is located at 0xfff00000 up to 0xfff20000. I would like to save my environment in the same sector as u-boot, but in the last two Kb's, thus at 0xfff1f800-0xfff20000
Don't do this. This is by far too dangerous. Each "saveenv" will open a window in time where your system will not recover from a power loss. DO NOT DO THIS.
(0xfff00000 + 0x20000 - 0x800 = 0xfff1f800 = starting address for env)
This makes no sense. Never place the environment in any flash sector that contains any other data you need.
Ok, now the problem is I don't know how to tell the linker where to store the environment. If I add
. = env_offset; common/environment.o (.text)
to the u-boot.lds I get "cannot move location counter backwards (from fff07b10 to 0061f800)". Where does the 0061f800 comes from?
That's what was computed as env_offset given your definitions.
Letting u-boot store its environment outside the u-boot sector (<0xfff0000) works perfectly but will cost me a flash sector dedicated for the environment. I rather do without since I realy need that space.
I'd rather have a reliably working system instead of one which is broken by design just to save a flash sector.
Best regards,
Wolfgang Denk