Browse Source

Merge branch 'master' of git://git.denx.de/u-boot-arm

Tom Rini 12 years ago
parent
commit
5873d0fbad
1 changed files with 7 additions and 3 deletions
  1. 7 3
      arch/arm/cpu/armv7/start.S

+ 7 - 3
arch/arm/cpu/armv7/start.S

@@ -130,11 +130,15 @@ IRQ_STACK_START_IN:
 reset:
 reset:
 	bl	save_boot_params
 	bl	save_boot_params
 	/*
 	/*
-	 * set the cpu to SVC32 mode
+	 * disable interrupts (FIQ and IRQ), also set the cpu to SVC32 mode,
+	 * except if in HYP mode already
 	 */
 	 */
 	mrs	r0, cpsr
 	mrs	r0, cpsr
-	bic	r0, r0, #0x1f
-	orr	r0, r0, #0xd3
+	and	r1, r0, #0x1f		@ mask mode bits
+	teq	r1, #0x1a		@ test for HYP mode
+	bicne	r0, r0, #0x1f		@ clear all mode bits
+	orrne	r0, r0, #0x13		@ set SVC mode
+	orr	r0, r0, #0xc0		@ disable FIQ and IRQ
 	msr	cpsr,r0
 	msr	cpsr,r0
 
 
 /*
 /*