summaryrefslogtreecommitdiffstats
path: root/utils/hwstub/stub/jz4760b/hwstub.lds
diff options
context:
space:
mode:
Diffstat (limited to 'utils/hwstub/stub/jz4760b/hwstub.lds')
-rw-r--r--utils/hwstub/stub/jz4760b/hwstub.lds13
1 files changed, 13 insertions, 0 deletions
diff --git a/utils/hwstub/stub/jz4760b/hwstub.lds b/utils/hwstub/stub/jz4760b/hwstub.lds
index 33aad51ebd..f0460284ca 100644
--- a/utils/hwstub/stub/jz4760b/hwstub.lds
+++ b/utils/hwstub/stub/jz4760b/hwstub.lds
@@ -20,10 +20,23 @@ SECTIONS
*(.icode*)
*(.data*)
*(.rodata*)
+ /* exceptions needs to be on a 0x1000 boundary */
+ . = ALIGN(0x1000);
+ tcsm0_irqbase = .;
+ KEEP(*(.exception.tlb_refill))
+ . = tcsm0_irqbase + 0x100;
+ KEEP(*(.exception.cache_error))
+ . = tcsm0_irqbase + 0x180;
+ KEEP(*(.exception.general_exception))
. = ALIGN(4);
relocend = .;
} > TCSM0
+ /* tcsm0_irqbase is the address in the 0xf400xxxx address space, but for
+ * EBASE, we want to the corresponding k1seg address, that maps to the
+ * physical address of TCSM0 */
+ irqbase = tcsm0_irqbase - TCSM0_ORIG + TCSM0_UNCACHED_ADDRESS;
+
.bss (NOLOAD) :
{
bssbegin = .;