[U-Boot] [PATCH] arm: rmobile: bugfix: wrong register saving in lowlevel_init
Albert ARIBAUD
albert.u.boot at aribaud.net
Fri Oct 5 18:23:08 CEST 2012
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.
More information about the U-Boot
mailing list