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 7193884..920f4db 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