summaryrefslogtreecommitdiff
path: root/firmware/crt0.S
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/crt0.S')
-rw-r--r--firmware/crt0.S12
1 files changed, 12 insertions, 0 deletions
diff --git a/firmware/crt0.S b/firmware/crt0.S
index 5946276604..82d275411e 100644
--- a/firmware/crt0.S
+++ b/firmware/crt0.S
@@ -251,6 +251,9 @@ boot_table:
251 /* Set up stack for IRQ mode */ 251 /* Set up stack for IRQ mode */
252 msr cpsr_c, #0xd2 252 msr cpsr_c, #0xd2
253 ldr sp, =irq_stack 253 ldr sp, =irq_stack
254 /* Set up stack for FIQ mode */
255 msr cpsr_c, #0xd1
256 ldr sp, =fiq_stack
254 /* Let abort mode use IRQ stack */ 257 /* Let abort mode use IRQ stack */
255 msr cpsr_c, #0xd7 258 msr cpsr_c, #0xd7
256 ldr sp, =irq_stack 259 ldr sp, =irq_stack
@@ -287,6 +290,7 @@ vectors:
287 290
288#ifndef STUB 291#ifndef STUB
289 .global irq 292 .global irq
293 .global fiq
290 .global UIE 294 .global UIE
291#endif 295#endif
292 296
@@ -313,6 +317,10 @@ prefetch_abort_handler:
313 b UIE 317 b UIE
314 318
315fiq_handler: 319fiq_handler:
320 stmfd sp!, {r0-r3, r12, lr}
321 mov lr, pc
322 ldr pc, =fiq
323 ldmfd sp!, {r0-r3, r12, lr}
316 subs pc, lr, #4 324 subs pc, lr, #4
317 325
318data_abort_handler: 326data_abort_handler:
@@ -337,6 +345,10 @@ UIE:
337 .space 256*4 345 .space 256*4
338irq_stack: 346irq_stack:
339 347
348/* 256 words of FIQ stack */
349 .space 256*4
350fiq_stack:
351
340#endif /* BOOTLOADER */ 352#endif /* BOOTLOADER */
341 353
342#elif CONFIG_CPU == TCC730 354#elif CONFIG_CPU == TCC730