R4 is caller saved in SH ABI.
Save it so it doesn't get corrupted until it's needed for initialization.

Signed-off-by: Yoshinori Sato <ys...@users.sourceforge.jp>
Reviewed-by: Geert Uytterhoeven <geert+rene...@glider.be>
---
 arch/sh/boot/compressed/head_32.S | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/arch/sh/boot/compressed/head_32.S 
b/arch/sh/boot/compressed/head_32.S
index 7bb168133dbb..6be59851122e 100644
--- a/arch/sh/boot/compressed/head_32.S
+++ b/arch/sh/boot/compressed/head_32.S
@@ -15,7 +15,8 @@ startup:
        /* Load initial status register */
        mov.l   init_sr, r1
        ldc     r1, sr
-
+       /* Save FDT address */
+       mov     r4, r13
        /* Move myself to proper location if necessary */
        mova    1f, r0
        mov.l   1f, r2
@@ -84,7 +85,7 @@ l1:
        /* Jump to the start of the decompressed kernel */
        mov.l   kernel_start_addr, r0
        jmp     @r0
-       nop
+        mov    r13, r4
        
        .align  2
 bss_start_addr:
-- 
2.39.2

Reply via email to