[U-Boot] [PATCH] arm: rmobile: bugfix: wrong register saving in lowlevel_init

Enric Balletbò i Serra eballetbo at gmail.com
Sun Oct 7 13:34:43 CEST 2012


Hi Albert,

2012/10/5 Albert ARIBAUD <albert.u.boot at aribaud.net>:
> Hi Tetsuyuki,
>
> On Fri,  5 Oct 2012 13:39:22 +0900, Tetsuyuki Kobayashi
> <koba at kmckk.co.jp> wrote:
>
>> lowlevel_init() of rmobile badly assumed that ip register holds return address.
>> The commit "63ee53a7 armv7 cpu_init_crit: Simplify code" breaks this assumption.
>> This patch removes this bad assumption and simplify code.
>>
>> Signed-off-by: Tetsuyuki Kobayashi <koba at kmckk.co.jp>
>> ---
>> Hello, Albert
>> Hello, Tom
>> Thank you for merging my patches.
>>
>> I checked current u-boot-master and found kzm9g board fails to boot because bug.
>> This bugfix patch solves it.
>> I think 2012.10 release should have this bugfix.
>>
>> Iwamatsu-san, could you double check this patch?
>>
>>
>>  arch/arm/cpu/armv7/rmobile/lowlevel_init.S |   12 +-----------
>>  1 file changed, 1 insertion(+), 11 deletions(-)
>>
>> diff --git a/arch/arm/cpu/armv7/rmobile/lowlevel_init.S b/arch/arm/cpu/armv7/rmobile/lowlevel_init.S
>> index 1bd391e..4fdca06 100644
>> --- a/arch/arm/cpu/armv7/rmobile/lowlevel_init.S
>> +++ b/arch/arm/cpu/armv7/rmobile/lowlevel_init.S
>> @@ -76,17 +76,7 @@ loop0:
>>       bne  loop0
>>
>>       ldr sp, MERAM_STACK
>
> Is this load of sp still needed?
>
>> -     str ip, [sp]    /* stash old link register */
>> -     mov ip, lr      /* save link reg across call */
>> -
>> -     bl  s_init
>> -
>> -     ldr ip, [sp]    /* restore save ip */
>> -     mov lr, ip      /* restore link reg */
>> -
>> -     /* back to arch calling code */
>> -     mov pc, lr
>> +     b s_init
>>
>>       .pool
>>       .align 4
>
> Amicalement,
> --
> Albert.
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot

Note that the patch that Tetsuyuki says also breaks SPL support for
OMAP3 boards, at least my IGEP boards doesn't boot and hangs at SPL
level.

  U-Boot SPL 2012.10-rc1-00244-g28e5ac2 (Oct 07 2012 - 13:11:29)

Bisecting the problem I encountered the problem is the commit
"63ee53a7 armv7 cpu_init_crit: Simplify code".

Cheers,
    Enric


More information about the U-Boot mailing list