diff options
author | Tony Lindgren <tony@atomide.com> | 2010-12-10 09:44:39 -0800 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2010-12-10 09:44:39 -0800 |
commit | 67b738ef32df7ec429004866d2a739a3775894d2 (patch) | |
tree | 5c67fa0cea6cc7298321480eda2df04bef795305 /arch/arm/boot/compressed/head.S | |
parent | c451278c2864e253a4bb303b596a29edc3bb527c (diff) | |
parent | 5d190c40100793a6dfc37bf325677c10f3c80edf (diff) | |
download | talos-op-linux-67b738ef32df7ec429004866d2a739a3775894d2.tar.gz talos-op-linux-67b738ef32df7ec429004866d2a739a3775894d2.zip |
Merge branch 'devel-omap-irq' into omap-for-linus
Diffstat (limited to 'arch/arm/boot/compressed/head.S')
-rw-r--r-- | arch/arm/boot/compressed/head.S | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S index 9be21ba648cd..7193884ed8b0 100644 --- a/arch/arm/boot/compressed/head.S +++ b/arch/arm/boot/compressed/head.S @@ -125,9 +125,13 @@ wait: mrc p14, 0, pc, c0, c1, 0 * sort out different calling conventions */ .align + .arm @ Always enter in ARM state start: .type start,#function - .rept 8 + THUMB( adr r12, BSYM(1f) ) + THUMB( bx r12 ) + THUMB( .rept 6 ) + ARM( .rept 8 ) mov r0, r0 .endr @@ -135,6 +139,7 @@ start: .word 0x016f2818 @ Magic numbers to help the loader .word start @ absolute load/run zImage address .word _edata @ zImage end address + THUMB( .thumb ) 1: mov r7, r1 @ save architecture ID mov r8, r2 @ save atags pointer @@ -174,7 +179,8 @@ not_angel: ldr sp, [r0, #28] #ifdef CONFIG_AUTO_ZRELADDR @ determine final kernel image address - and r4, pc, #0xf8000000 + mov r4, pc + and r4, r4, #0xf8000000 add r4, r4, #TEXT_OFFSET #else ldr r4, =zreladdr @@ -445,7 +451,8 @@ __setup_mmu: sub r3, r4, #16384 @ Page directory size */ mov r1, #0x1e orr r1, r1, #3 << 10 - mov r2, pc, lsr #20 + mov r2, pc + mov r2, r2, lsr #20 orr r1, r1, r2, lsl #20 add r0, r3, r2, lsl #2 str r1, [r0], #4 |