[U-Boot] [v3] arm: Fixed the offset for the no relocation.

Stefano Babic sbabic at denx.de
Tue Sep 4 17:57:54 CEST 2012


On 04/09/2012 16:03, Zhong Hongbo wrote:
> On 03/09/12 08:14, Marek Vasut wrote:
>> Dear Zhong Hongbo,
>>
>>> From: Zhong Hongbo <bocui107 at gmail.com>
>>>
>>> When the u-boot address of destination equal to  __start,
>>> no relocation. relocation offset(r9) = 0.
>>
>> Good, now what kind of issue does this patch fix?
> Hi Marek
> 
> When you adopt CONFIG_SPL_BUILD framework, no CONFIG_NAND_SPL, if the
> addr of destination is equal to _start, we should skip u-boot relocation.
> 
> In the last, u-boot will count the dest addr, see the below:
> 
> 
>         adr     r1, _start
>         add     lr, r0, r1
>         add     lr, lr, r9
> 
> Here, lr = lr + r9, r9 is the offset of u-boot, So when it do not neet
> to reolocat, we need to set the zero value for r9 register.
> 
>         /* setup parameters for board_init_r */
>         mov     r0, r5          /* gd_t */
>         mov     r1, r6          /* dest_addr */
>         /* jump to it ... */
>         mov     pc, lr

I can confirm this issue - I see this when I ported SPL to a MX35 board.
However, clearing r9 was not enough. I had to fix also _rel_dyn_* to
make SPL working, and I did changing the start.S in the same way start.S
for arv7 is built.

Do you not have these issues ?

Regards,
Stefano

-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================


More information about the U-Boot mailing list