summaryrefslogtreecommitdiffstats
path: root/firmware
diff options
context:
space:
mode:
Diffstat (limited to 'firmware')
-rw-r--r--firmware/target/arm/tms320dm320/app.lds14
-rw-r--r--firmware/target/arm/tms320dm320/boot.lds14
-rwxr-xr-xfirmware/target/arm/tms320dm320/crt0.S10
3 files changed, 28 insertions, 10 deletions
diff --git a/firmware/target/arm/tms320dm320/app.lds b/firmware/target/arm/tms320dm320/app.lds
index fbaaff3e6c..3437984f55 100644
--- a/firmware/target/arm/tms320dm320/app.lds
+++ b/firmware/target/arm/tms320dm320/app.lds
@@ -115,6 +115,20 @@ SECTIONS
. += 0x2000;
stackend = .;
} > IRAM
+
+ .irqstack (NOLOAD) :
+ {
+ *(.stack)
+ . += 0x400;
+ irq_stack = .;
+ } > IRAM
+
+ .fiqstack (NOLOAD) :
+ {
+ *(.stack)
+ . += 0x100;
+ fiq_stack = .;
+ } > IRAM
/* This overwrites the iram (in ram), so make sure that the iram is copied
* out in crt0.s before the bss section and the rest are used.
diff --git a/firmware/target/arm/tms320dm320/boot.lds b/firmware/target/arm/tms320dm320/boot.lds
index 0ee6c202a4..a4077eeaaa 100644
--- a/firmware/target/arm/tms320dm320/boot.lds
+++ b/firmware/target/arm/tms320dm320/boot.lds
@@ -121,6 +121,20 @@ SECTIONS
stackend = .;
} > IRAM
+ .irqstack (NOLOAD) :
+ {
+ *(.stack)
+ . += 0x400;
+ irq_stack = .;
+ } > IRAM
+
+ .fiqstack (NOLOAD) :
+ {
+ *(.stack)
+ . += 0x100;
+ fiq_stack = .;
+ } > IRAM
+
.bss (NOLOAD) :
{
. = ADDR(.data) + SIZEOF(.data) + SIZEOF(.vectors) + SIZEOF(.iram);
diff --git a/firmware/target/arm/tms320dm320/crt0.S b/firmware/target/arm/tms320dm320/crt0.S
index 7c0c27eb74..fe4a3fb970 100755
--- a/firmware/target/arm/tms320dm320/crt0.S
+++ b/firmware/target/arm/tms320dm320/crt0.S
@@ -163,13 +163,3 @@ UIE:
b UIE
#endif
-/* Align stacks to cache line boundary */
- .balign 16
-
-/* 256 words of IRQ stack */
- .space 256*4
-irq_stack:
-
-/* 256 words of FIQ stack */
- .space 256*4
-fiq_stack: