[U-Boot] [RFC] [PATCH V2] arm: arm926ejs: use ELF relocations
Albert ARIBAUD
albert.aribaud at free.fr
Tue Oct 5 11:32:56 CEST 2010
Le 05/10/2010 11:25, Heiko Schocher a écrit :
> Following patch works on the tx25 with booting from nand:
>
> remark !!!! :
>
> --- 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
>
> Must be discussed/changed, because this fixes just a bug. For this board
> my last entry in __rel_dyn_start is filled with 00000000, which results
> in crashing code ...
The bug you uncovered is -- again -- mine.
The 'bne' would loop until r2 equals r3, and as r3 is *right after* the
last .rel.dyn entry, it works.
Whereas my 'ble' loops until r2 is *greater* than r3, thus it tries to
process as a .rel.dyn entry what actually is the 8 bytes that *follow*
.rel.dyn.
The right opcode (both function and resilient to errors) is 'blo'.
Amicalement,
--
Albert.
More information about the U-Boot
mailing list