aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mm/proc-v7m.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mm/proc-v7m.S')
-rw-r--r--arch/arm/mm/proc-v7m.S7
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/arm/mm/proc-v7m.S b/arch/arm/mm/proc-v7m.S
index 47a5acc64433..acd5a66dfc23 100644
--- a/arch/arm/mm/proc-v7m.S
+++ b/arch/arm/mm/proc-v7m.S
@@ -139,6 +139,9 @@ __v7m_setup_cont:
139 cpsie i 139 cpsie i
140 svc #0 140 svc #0
1411: cpsid i 1411: cpsid i
142 ldr r0, =exc_ret
143 orr lr, lr, #EXC_RET_THREADMODE_PROCESSSTACK
144 str lr, [r0]
142 ldmia sp, {r0-r3, r12} 145 ldmia sp, {r0-r3, r12}
143 str r5, [r12, #11 * 4] @ restore the original SVC vector entry 146 str r5, [r12, #11 * 4] @ restore the original SVC vector entry
144 mov lr, r6 @ restore LR 147 mov lr, r6 @ restore LR
@@ -149,10 +152,10 @@ __v7m_setup_cont:
149 152
150 @ Configure caches (if implemented) 153 @ Configure caches (if implemented)
151 teq r8, #0 154 teq r8, #0
152 stmneia sp, {r0-r6, lr} @ v7m_invalidate_l1 touches r0-r6 155 stmiane sp, {r0-r6, lr} @ v7m_invalidate_l1 touches r0-r6
153 blne v7m_invalidate_l1 156 blne v7m_invalidate_l1
154 teq r8, #0 @ re-evalutae condition 157 teq r8, #0 @ re-evalutae condition
155 ldmneia sp, {r0-r6, lr} 158 ldmiane sp, {r0-r6, lr}
156 159
157 @ Configure the System Control Register to ensure 8-byte stack alignment 160 @ Configure the System Control Register to ensure 8-byte stack alignment
158 @ Note the STKALIGN bit is either RW or RAO. 161 @ Note the STKALIGN bit is either RW or RAO.