[U-Boot] [RFC] [PATCH V2] arm: arm926ejs: use ELF relocations

Reinhard Meyer
2010-10-05T09:10:28Z

Dear ALL,
> Hah... with this patch it works:
>
> diff --git a/arch/arm/cpu/arm926ejs/start.S b/arch/arm/cpu/arm926ejs/start.S
> index 5a7ae7e..cf3a59f 100644
> --- a/arch/arm/cpu/arm926ejs/start.S
> +++ b/arch/arm/cpu/arm926ejs/start.S
> @@ -266,7 +266,7 @@ fixnext:
> str r1, [r0]
> add r2, r2, #8 /* each rel.dyn entry is 8 bytes */
> cmp r2, r3
> - ble fixloop
> + bne fixloop

Indeed, with this single change (not using NAND options here)
it works, too, and data gets properly relocated, since "sf probe"
works, too (it does not do so with Heiko's relocation)

Hurray!!!!

U-Boot 2010.09-00114-g4ab53c3-dirty (Oct 05 2010 - 12:25:06)

U-Boot code: 21F00000 -> 21F3EBA0 BSS: -> 21F80100
CPU: AT91SAM9XE
Crystal frequency: 18.432 MHz
CPU clock : 198.656 MHz
Master clock : 99.328 MHz
I2C: ready
monitor len: 00080100
ramsize: 04000000
Top of RAM usable for U-Boot at: 24000000
Reserving 512k for U-Boot at: 23f7f000
Reserving 143k for malloc() at: 23f5b100
Reserving 24 Bytes for Board Info at: 23f5b0e8
Reserving 136 Bytes for Global Data at: 23f5b060
New Stack Pointer is: 23f5b058
RAM Configuration:
Bank #0: 20000000 64 MiB
relocation Offset is: 0207f000
calling relocate_code(addr_sp=23f5b058, id=23f5b060, addr=23f7f000)
monitor flash len: 0003EBA0
Now running in RAM - U-Boot at: 23f7f000
FLASH: 512 KiB
NAND: 256 MiB
In: serial
Out: serial
Err: serial
MMC: mci: 0
Net: macb0, enc1.0, enc1.1, enc1.2
Reset Ethernet PHY
macb0: Starting autonegotiation...
macb0: Autonegotiation complete
macb0: link up, 100Mbps full-duplex (lpa: 0x45e1)
Press SPACE to abort autoboot in 1 seconds
TOP9000> sf probe 0:0
SF: Detected FM25H20 with size 256 KiB
256 KiB FM25H20 at 0:0 is now current device

Many thanks!!!!

Reinhard