summaryrefslogtreecommitdiffstats
path: root/utils/hwstub/stub/atj213x/hwstub.lds
diff options
context:
space:
mode:
Diffstat (limited to 'utils/hwstub/stub/atj213x/hwstub.lds')
-rw-r--r--utils/hwstub/stub/atj213x/hwstub.lds66
1 files changed, 44 insertions, 22 deletions
diff --git a/utils/hwstub/stub/atj213x/hwstub.lds b/utils/hwstub/stub/atj213x/hwstub.lds
index 7f5c9fae18..06912fb56f 100644
--- a/utils/hwstub/stub/atj213x/hwstub.lds
+++ b/utils/hwstub/stub/atj213x/hwstub.lds
@@ -13,28 +13,59 @@ SECTIONS
{
.init.text :
{
- _irqbase = .;
relocstart = .;
oc_codestart = .;
- *(.init.text*)
+ KEEP(*(.init.text*))
} > IRAM
- .exception.text (IRAM_ORIG + 0x200) :
+ .icode :
{
- *(.irq_vector*)
- } > IRAM
-
- .text :
- {
- *(.text*)
*(.icode*)
- } > IRAM
+ } > IRAM
.data :
{
*(.rodata*)
*(.data*)
*(.rel.dyn)
+ } > IRAM
+
+ .bss (NOLOAD) :
+ {
+ bssbegin = .;
+ *(.sbss*)
+ *(.bss*)
+ *(COMMON)
+ *(.scommon*)
+ . = ALIGN(4);
+ bssend = .;
+ } > IRAM
+
+ .exception.tlb_refill (IRAM_ORIG + 0x1000) :
+ {
+ _irqbase = .;
+ KEEP(*(.exception.tlb_refill))
+ } > IRAM
+
+ .exception.cache_error (IRAM_ORIG + 0x1100) :
+ {
+ KEEP(*(.exception.cache_error))
+ } > IRAM
+
+ .exception.general_exception (IRAM_ORIG + 0x1180) :
+ {
+ KEEP(*(.exception.general_exception))
+ } > IRAM
+
+ .exception.irq (IRAM_ORIG + 0x1200) :
+ {
+ KEEP(*(.exception.irq))
+ } > IRAM
+
+ .text :
+ {
+ *(.text*)
+ . = ALIGN(16);
relocend = .;
} > IRAM
@@ -42,26 +73,17 @@ SECTIONS
{
. = ALIGN(4);
stackbegin = .;
+ oc_codeend = .;
oc_stackstart = .;
. += 0x2000;
stackend = .;
+
irqstackbegin = .;
. += 0x400;
irqstackend = .;
oc_stackend = .;
- } > IRAM
-
- .bss (NOLOAD) :
- {
- bssbegin = .;
- *(.sbss*)
- *(.bss*)
- *(COMMON)
- *(.scommon*)
- bssend = .;
- oc_codeend = .;
oc_bufferstart = .;
- } > IRAM
+ } > IRAM
.end IRAM_ORIG+IRAM_SIZE (NOLOAD) :
{