arm: rmobile: bugfix: wrong register saving in lowlevel_init
authorTetsuyuki Kobayashi <koba@kmckk.co.jp>
Thu, 4 Oct 2012 18:39:22 +0000 (18:39 +0000)
committerTom Rini <trini@ti.com>
Mon, 8 Oct 2012 18:15:04 +0000 (11:15 -0700)
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@kmckk.co.jp>
arch/arm/cpu/armv7/rmobile/lowlevel_init.S

index 1bd391e8403e7c8a7c4e17d3774752e896d06353..4fdca06491b0613ad3eeeb5997f3cbc1056b874a 100644 (file)
@@ -76,17 +76,7 @@ loop0:
        bne  loop0
 
        ldr sp, MERAM_STACK
-
-       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