summaryrefslogtreecommitdiff
path: root/firmware/target
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target')
-rw-r--r--firmware/target/arm/crt0-pp.S17
-rw-r--r--firmware/target/arm/sandisk/sansa-e200/ata-e200.c3
2 files changed, 19 insertions, 1 deletions
diff --git a/firmware/target/arm/crt0-pp.S b/firmware/target/arm/crt0-pp.S
index e0d1034f74..bbeace1b60 100644
--- a/firmware/target/arm/crt0-pp.S
+++ b/firmware/target/arm/crt0-pp.S
@@ -222,6 +222,19 @@ cop_init:
222 strhi r4, [r2], #4 222 strhi r4, [r2], #4
223 bhi 2b 223 bhi 2b
224 224
225 /* Set up stack for IRQ mode */
226 msr cpsr_c, #0xd2
227 ldr sp, =cop_irq_stack
228 /* Set up stack for FIQ mode */
229 msr cpsr_c, #0xd1
230 ldr sp, =fiq_stack
231
232 /* Let abort and undefined modes use IRQ stack */
233 msr cpsr_c, #0xd7
234 ldr sp, =cop_irq_stack
235 msr cpsr_c, #0xdb
236 ldr sp, =cop_irq_stack
237
225 ldr sp, =cop_stackend 238 ldr sp, =cop_stackend
226 239
227 /* Run cop_main() in apps/main.c */ 240 /* Run cop_main() in apps/main.c */
@@ -307,6 +320,10 @@ UIE:
307 .space 256*4 320 .space 256*4
308irq_stack: 321irq_stack:
309 322
323/* 256 words of COP IRQ stack */
324 .space 256*4
325cop_irq_stack:
326
310/* 256 words of FIQ stack */ 327/* 256 words of FIQ stack */
311 .space 256*4 328 .space 256*4
312fiq_stack: 329fiq_stack:
diff --git a/firmware/target/arm/sandisk/sansa-e200/ata-e200.c b/firmware/target/arm/sandisk/sansa-e200/ata-e200.c
index cf05397a78..73a67d1ee6 100644
--- a/firmware/target/arm/sandisk/sansa-e200/ata-e200.c
+++ b/firmware/target/arm/sandisk/sansa-e200/ata-e200.c
@@ -687,7 +687,8 @@ int ata_init(void)
687 { 687 {
688 queue_init(&sd_queue, true); 688 queue_init(&sd_queue, true);
689 create_thread(sd_thread, sd_stack, 689 create_thread(sd_thread, sd_stack,
690 sizeof(sd_stack), sd_thread_name IF_PRIO(, PRIORITY_SYSTEM)); 690 sizeof(sd_stack), sd_thread_name IF_PRIO(, PRIORITY_SYSTEM)
691 IF_COP(, CPU, false));
691 initialized = true; 692 initialized = true;
692 } 693 }
693 694