diff options
Diffstat (limited to 'utils/hwstub/stub/atj213x/hwstub.lds')
-rw-r--r-- | utils/hwstub/stub/atj213x/hwstub.lds | 66 |
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) : { |