diff options
Diffstat (limited to 'arch/arm/kernel/head.S')
| -rw-r--r-- | arch/arm/kernel/head.S | 18 | 
1 files changed, 13 insertions, 5 deletions
diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S index 3db960e20cb..4eee351f466 100644 --- a/arch/arm/kernel/head.S +++ b/arch/arm/kernel/head.S @@ -23,8 +23,8 @@  #include <asm/thread_info.h>  #include <asm/pgtable.h> -#ifdef CONFIG_DEBUG_LL -#include <mach/debug-macro.S> +#if defined(CONFIG_DEBUG_LL) && !defined(CONFIG_DEBUG_SEMIHOSTING) +#include CONFIG_DEBUG_LL_INCLUDE  #endif  /* @@ -83,8 +83,12 @@ ENTRY(stext)   THUMB(	.thumb			)	@ switch to Thumb now.   THUMB(1:			) -	setmode	PSR_F_BIT | PSR_I_BIT | SVC_MODE, r9 @ ensure svc mode -						@ and irqs disabled +#ifdef CONFIG_ARM_VIRT_EXT +	bl	__hyp_stub_install +#endif +	@ ensure svc mode and all interrupts masked +	safe_svcmode_maskall r9 +  	mrc	p15, 0, r9, c0, c0		@ get processor id  	bl	__lookup_processor_type		@ r5=procinfo r9=cpuid  	movs	r10, r5				@ invalid processor (r5=0)? @@ -326,7 +330,11 @@ ENTRY(secondary_startup)  	 * the processor type - there is no need to check the machine type  	 * as it has already been validated by the primary processor.  	 */ -	setmode	PSR_F_BIT | PSR_I_BIT | SVC_MODE, r9 +#ifdef CONFIG_ARM_VIRT_EXT +	bl	__hyp_stub_install +#endif +	safe_svcmode_maskall r9 +  	mrc	p15, 0, r9, c0, c0		@ get processor id  	bl	__lookup_processor_type  	movs	r10, r5				@ invalid processor?  |