diff options
Diffstat (limited to 'firmware/target/arm/imx233/crt0.S')
-rw-r--r-- | firmware/target/arm/imx233/crt0.S | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/firmware/target/arm/imx233/crt0.S b/firmware/target/arm/imx233/crt0.S index ffc58d56fc..0a71da5d08 100644 --- a/firmware/target/arm/imx233/crt0.S +++ b/firmware/target/arm/imx233/crt0.S | |||
@@ -132,11 +132,12 @@ remap: | |||
132 | 132 | ||
133 | /* Set up stack for FIQ mode */ | 133 | /* Set up stack for FIQ mode */ |
134 | msr cpsr_c, #0xd1 | 134 | msr cpsr_c, #0xd1 |
135 | ldr sp, =fiq_stack | 135 | ldr sp, =irq_stack |
136 | 136 | ||
137 | /* Let svc, abort and undefined modes use irq stack */ | 137 | /* Let abort and undefined modes use irq stack, svc uses its own stack |
138 | * for interrupt processing */ | ||
138 | msr cpsr_c, #0xd3 | 139 | msr cpsr_c, #0xd3 |
139 | ldr sp, =irq_stack | 140 | ldr sp, =svc_stack |
140 | msr cpsr_c, #0xd7 | 141 | msr cpsr_c, #0xd7 |
141 | ldr sp, =irq_stack | 142 | ldr sp, =irq_stack |
142 | msr cpsr_c, #0xdb | 143 | msr cpsr_c, #0xdb |
@@ -161,11 +162,13 @@ remap: | |||
161 | 1: | 162 | 1: |
162 | b 1b | 163 | b 1b |
163 | 164 | ||
165 | /* Cache-align interrupt stacks */ | ||
166 | .balign 32 | ||
164 | /* 256 words of IRQ stack */ | 167 | /* 256 words of IRQ stack */ |
165 | .space 256*4 | 168 | .space 256*4 |
166 | irq_stack: | 169 | irq_stack: |
167 | 170 | ||
168 | /* 256 words of FIQ stack */ | 171 | /* 256 words of FIQ stack */ |
169 | .space 256*4 | 172 | .space 256*4 |
170 | fiq_stack: | 173 | svc_stack: |
171 | end: | 174 | end: |