|
@@ -274,10 +274,12 @@ __v7_ca15mp_setup:
|
|
__v7_b15mp_setup:
|
|
__v7_b15mp_setup:
|
|
__v7_ca17mp_setup:
|
|
__v7_ca17mp_setup:
|
|
mov r10, #0
|
|
mov r10, #0
|
|
-1: adr r12, __v7_setup_stack @ the local stack
|
|
|
|
- stmia r12, {r0-r5, lr} @ v7_invalidate_l1 touches r0-r6
|
|
|
|
|
|
+1: adr r0, __v7_setup_stack_ptr
|
|
|
|
+ ldr r12, [r0]
|
|
|
|
+ add r12, r12, r0 @ the local stack
|
|
|
|
+ stmia r12, {r1-r6, lr} @ v7_invalidate_l1 touches r0-r6
|
|
bl v7_invalidate_l1
|
|
bl v7_invalidate_l1
|
|
- ldmia r12, {r0-r5, lr}
|
|
|
|
|
|
+ ldmia r12, {r1-r6, lr}
|
|
#ifdef CONFIG_SMP
|
|
#ifdef CONFIG_SMP
|
|
ALT_SMP(mrc p15, 0, r0, c1, c0, 1)
|
|
ALT_SMP(mrc p15, 0, r0, c1, c0, 1)
|
|
ALT_UP(mov r0, #(1 << 6)) @ fake it for UP
|
|
ALT_UP(mov r0, #(1 << 6)) @ fake it for UP
|
|
@@ -415,10 +417,12 @@ __v7_pj4b_setup:
|
|
#endif /* CONFIG_CPU_PJ4B */
|
|
#endif /* CONFIG_CPU_PJ4B */
|
|
|
|
|
|
__v7_setup:
|
|
__v7_setup:
|
|
- adr r12, __v7_setup_stack @ the local stack
|
|
|
|
- stmia r12, {r0-r5, lr} @ v7_invalidate_l1 touches r0-r6
|
|
|
|
|
|
+ adr r0, __v7_setup_stack_ptr
|
|
|
|
+ ldr r12, [r0]
|
|
|
|
+ add r12, r12, r0 @ the local stack
|
|
|
|
+ stmia r12, {r1-r6, lr} @ v7_invalidate_l1 touches r0-r6
|
|
bl v7_invalidate_l1
|
|
bl v7_invalidate_l1
|
|
- ldmia r12, {r0-r5, lr}
|
|
|
|
|
|
+ ldmia r12, {r1-r6, lr}
|
|
|
|
|
|
__v7_setup_cont:
|
|
__v7_setup_cont:
|
|
and r0, r9, #0xff000000 @ ARM?
|
|
and r0, r9, #0xff000000 @ ARM?
|
|
@@ -480,11 +484,16 @@ __errata_finish:
|
|
orr r0, r0, r6 @ set them
|
|
orr r0, r0, r6 @ set them
|
|
THUMB( orr r0, r0, #1 << 30 ) @ Thumb exceptions
|
|
THUMB( orr r0, r0, #1 << 30 ) @ Thumb exceptions
|
|
ret lr @ return to head.S:__ret
|
|
ret lr @ return to head.S:__ret
|
|
|
|
+
|
|
|
|
+ .align 2
|
|
|
|
+__v7_setup_stack_ptr:
|
|
|
|
+ .word __v7_setup_stack - .
|
|
ENDPROC(__v7_setup)
|
|
ENDPROC(__v7_setup)
|
|
|
|
|
|
|
|
+ .bss
|
|
.align 2
|
|
.align 2
|
|
__v7_setup_stack:
|
|
__v7_setup_stack:
|
|
- .space 4 * 7 @ 12 registers
|
|
|
|
|
|
+ .space 4 * 7 @ 7 registers
|
|
|
|
|
|
__INITDATA
|
|
__INITDATA
|
|
|
|
|