
Wolfgang Denk wrote:
In message 449A6F42.9090509@inaccessnetworks.com you wrote:
The only effect of this is to put the environment into a separate linker section. You can do this, but you don't have to. You can make this work without this setting es well. Just configure your linker script correctly.
My board is not on the first #if, so it felt back to the last #else, thus placing the env_size and environment in the wrong order.
This is an error in your linker script then.
My linker script is :
.text : { cpu/pxa/start.o (.text) . = env_offset ; common/environment.o (.text) *(.text) /**(EXCLUDE_FILE (common/environment.o) .text)*/ }
env_offset is defined at common/environment.c, and this is the defined used by other boards as well. BUT:
$ arm-linux-objdump -d common/environment.o
common/environment.o: file format elf32-littlearm
Disassembly of section .text:
00000000 <env_size>: 0: 00 80 00 00 ....
00000004 <environment>: 4: 85 6f 43 92 62 6f 6f 74 64 65 6c 61 79 3d 35 00 .oC.bootdelay=5. 14: 62 61 75 64 72 61 74 65 3d 31 31 35 32 30 30 00 baudrate=115200. ...
How can this be correct? All the defines are for offset 0 of this file, but at 0 is the env_size. I also did a hexedit of the u-boot.bin and the environment indeed starts at 0x4004 :
00004000 00 80 00 00 85 6F 43 92 62 6F 6F 74 64 65 6C 61
Regards, Angelos Manousaridis