Sinan,
I just manage to load the ELF file correctly; You're right BDI3000 verifies more than the header, the problem comes from the byte at offset 0x10, the value is 0x03 (file 'u-boot' generated by the command "make mx6dlsabresd_config; make").
According to ELF standard, this field is e_type. 0X03 stand for ‘Shared object file’. By changing this byte to 0x02 ‘Executable’, I’m now able to load the modified file with the BDI3000.
Then changing the PCSR register value, I’m able to execute u-boot with success.
Below are BDI3000 telnet traces.
I’m a newbie in the ARM world, but have a good experience e with u-boot and PowerPC and never met this problem before.
It’s also the first time I use a tool-chain based on yocto to compile u-boot (generated with ‘bitbake meta-toolchain command’).
Did you met this problem ?
Thanks.
Philippe.
IMX6#0>config
BDI Firmware: 1.19
BDI CPLD ID : 01285043
BDI CPLD UES: bd080064
BDI MAC : 00-0c-01-33-55-63
BDI IP : 10.33.17.160
BDI Subnet : 255.255.252.0
BDI Gateway : 10.33.16.1
Config IP : 10.33.17.16
Config File : xxxxxx/BDI/sabresd.cfg
IMX6#0>reset
- TARGET: processing reset request
- TARGET: BDI executes scan chain init string
- TARGET: Bypass check 0x00000001 => 0x00000004
- TARGET: JTAG exists check passed
- Core#0: ID code is 0x4BA00477
- Core#0: DP-CSW is 0xF0000000
- Core#0: DBG-AP at 0x82150000
- Core#0: DIDR is 0x3513702A
- TARGET: Reset sequence passed
- TARGET: resetting target passed
- TARGET: processing target startup ....
- TARGET: processing target startup passed
IMX6#0>load xxxxx/u-boot.modif
Loading xxxxx/u-boot.modif , please wait ....
- File offset 0x00008000 to address 0x17800000 size 453025
Loading program file passed
IMX6#0>verify
Verifying xxxxxxx/u-boot.modif , please wait ....
- File offset 0x00008000 to address 0x17800000 size 453025
Verifying target memory passed
IMX6#0>RM CPSR 0X1D3
IMX6#0>go