aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/boot/compressed/head.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/boot/compressed/head.S')
-rw-r--r--arch/arm/boot/compressed/head.S30
1 files changed, 19 insertions, 11 deletions
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index 6fdf4abb718..f9da41921c5 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -179,7 +179,7 @@ not_angel:
179 bl cache_on 179 bl cache_on
180 180
181restart: adr r0, LC0 181restart: adr r0, LC0
182 ldmia r0, {r1, r2, r3, r6, r9, r11, r12} 182 ldmia r0, {r1, r2, r3, r6, r10, r11, r12}
183 ldr sp, [r0, #28] 183 ldr sp, [r0, #28]
184 184
185 /* 185 /*
@@ -188,6 +188,20 @@ restart: adr r0, LC0
188 */ 188 */
189 sub r0, r0, r1 @ calculate the delta offset 189 sub r0, r0, r1 @ calculate the delta offset
190 add r6, r6, r0 @ _edata 190 add r6, r6, r0 @ _edata
191 add r10, r10, r0 @ inflated kernel size location
192
193 /*
194 * The kernel build system appends the size of the
195 * decompressed kernel at the end of the compressed data
196 * in little-endian form.
197 */
198 ldrb r9, [r10, #0]
199 ldrb lr, [r10, #1]
200 orr r9, r9, lr, lsl #8
201 ldrb lr, [r10, #2]
202 ldrb r10, [r10, #3]
203 orr r9, r9, lr, lsl #16
204 orr r9, r9, r10, lsl #24
191 205
192#ifndef CONFIG_ZBOOT_ROM 206#ifndef CONFIG_ZBOOT_ROM
193 /* malloc space is above the relocated stack (64k max) */ 207 /* malloc space is above the relocated stack (64k max) */
@@ -347,10 +361,10 @@ LC0: .word LC0 @ r1
347 .word __bss_start @ r2 361 .word __bss_start @ r2
348 .word _end @ r3 362 .word _end @ r3
349 .word _edata @ r6 363 .word _edata @ r6
350 .word _image_size @ r9 364 .word input_data_end - 4 @ r10 (inflated size location)
351 .word _got_start @ r11 365 .word _got_start @ r11
352 .word _got_end @ ip 366 .word _got_end @ ip
353 .word user_stack_end @ sp 367 .word .L_user_stack_end @ sp
354 .size LC0, . - LC0 368 .size LC0, . - LC0
355 369
356#ifdef CONFIG_ARCH_RPC 370#ifdef CONFIG_ARCH_RPC
@@ -763,12 +777,6 @@ proc_types:
763 W(b) __armv4_mmu_cache_off 777 W(b) __armv4_mmu_cache_off
764 W(b) __armv6_mmu_cache_flush 778 W(b) __armv6_mmu_cache_flush
765 779
766 .word 0x560f5810 @ Marvell PJ4 ARMv6
767 .word 0xff0ffff0
768 W(b) __armv4_mmu_cache_on
769 W(b) __armv4_mmu_cache_off
770 W(b) __armv6_mmu_cache_flush
771
772 .word 0x000f0000 @ new CPU Id 780 .word 0x000f0000 @ new CPU Id
773 .word 0x000f0000 781 .word 0x000f0000
774 W(b) __armv7_mmu_cache_on 782 W(b) __armv7_mmu_cache_on
@@ -1094,5 +1102,5 @@ reloc_code_end:
1094 1102
1095 .align 1103 .align
1096 .section ".stack", "aw", %nobits 1104 .section ".stack", "aw", %nobits
1097user_stack: .space 4096 1105.L_user_stack: .space 4096
1098user_stack_end: 1106.L_user_stack_end: