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:  		.rept	7  		__nop  		.endr -   ARM(		mov	r0, r0		) -   ARM(		b	1f		) - THUMB(		badr	r12, 1f		) - THUMB(		bx	r12		) +#ifndef CONFIG_THUMB2_KERNEL +		mov	r0, r0 +#else + AR_CLASS(	sub	pc, pc, #3	)	@ A/R: switch to Thumb2 mode +  M_CLASS(	nop.w			)	@ M: already in Thumb2 mode +		.thumb +#endif +		W(b)	1f  		.word	_magic_sig	@ Magic numbers to help the loader  		.word	_magic_start	@ absolute load/run zImage address  		.word	_magic_end	@ zImage end address  		.word	0x04030201	@ endianness flag - THUMB(		.thumb			) -1:		__EFI_HEADER - +		__EFI_HEADER +1:   ARM_BE8(	setend	be		)	@ go BE8 if compiled for BE8   AR_CLASS(	mrs	r9, cpsr	)  #ifdef CONFIG_ARM_VIRT_EXT |