[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