ARM: 6663/1: make Thumb2 kernel entry point more similar to the ARM one
authorNicolas Pitre <nico@fluxnic.net>
Sat, 12 Feb 2011 21:25:27 +0000 (22:25 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Wed, 23 Feb 2011 17:24:19 +0000 (17:24 +0000)
Some installers would binary patch the kernel zImage to replace the
first few nops with custom instructions.  This breaks the Thumb2 kernel
as the mode switch is right at the beginning.  Let's move it towards the
end of the nop sequence instead.

Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/boot/compressed/head.S

index 7193884ed8b06c4452b6fe57f3c38821013d0af0..920f4dbd4883d0f3eeacae32f6c1b7f406953b6d 100644 (file)
@@ -128,14 +128,14 @@ wait:             mrc     p14, 0, pc, c0, c1, 0
                .arm                            @ Always enter in ARM state
 start:
                .type   start,#function
- THUMB(                adr     r12, BSYM(1f)   )
- THUMB(                bx      r12             )
- THUMB(                .rept   6               )
- ARM(          .rept   8               )
+               .rept   7
                mov     r0, r0
                .endr
+   ARM(                mov     r0, r0          )
+   ARM(                b       1f              )
+ THUMB(                adr     r12, BSYM(1f)   )
+ THUMB(                bx      r12             )
 
-               b       1f
                .word   0x016f2818              @ Magic numbers to help the loader
                .word   start                   @ absolute load/run zImage address
                .word   _edata                  @ zImage end address