diff options
Diffstat (limited to 'arch/arm/boot/compressed/head.S')
| -rw-r--r-- | arch/arm/boot/compressed/head.S | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S index 7c711ba61417..8a756870c238 100644 --- a/arch/arm/boot/compressed/head.S +++ b/arch/arm/boot/compressed/head.S | |||
| @@ -130,19 +130,22 @@ start: | |||
| 130 | .rept 7 | 130 | .rept 7 |
| 131 | __nop | 131 | __nop |
| 132 | .endr | 132 | .endr |
| 133 | ARM( mov r0, r0 ) | 133 | #ifndef CONFIG_THUMB2_KERNEL |
| 134 | ARM( b 1f ) | 134 | mov r0, r0 |
| 135 | THUMB( badr r12, 1f ) | 135 | #else |
| 136 | THUMB( bx r12 ) | 136 | AR_CLASS( sub pc, pc, #3 ) @ A/R: switch to Thumb2 mode |
| 137 | M_CLASS( nop.w ) @ M: already in Thumb2 mode | ||
| 138 | .thumb | ||
| 139 | #endif | ||
| 140 | W(b) 1f | ||
| 137 | 141 | ||
| 138 | .word _magic_sig @ Magic numbers to help the loader | 142 | .word _magic_sig @ Magic numbers to help the loader |
| 139 | .word _magic_start @ absolute load/run zImage address | 143 | .word _magic_start @ absolute load/run zImage address |
| 140 | .word _magic_end @ zImage end address | 144 | .word _magic_end @ zImage end address |
| 141 | .word 0x04030201 @ endianness flag | 145 | .word 0x04030201 @ endianness flag |
| 142 | 146 | ||
| 143 | THUMB( .thumb ) | 147 | __EFI_HEADER |
| 144 | 1: __EFI_HEADER | 148 | 1: |
| 145 | |||
| 146 | ARM_BE8( setend be ) @ go BE8 if compiled for BE8 | 149 | ARM_BE8( setend be ) @ go BE8 if compiled for BE8 |
| 147 | AR_CLASS( mrs r9, cpsr ) | 150 | AR_CLASS( mrs r9, cpsr ) |
| 148 | #ifdef CONFIG_ARM_VIRT_EXT | 151 | #ifdef CONFIG_ARM_VIRT_EXT |
