summaryrefslogtreecommitdiff
path: root/firmware/target/mips/ingenic_x1000/spl.lds
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/mips/ingenic_x1000/spl.lds')
-rw-r--r--firmware/target/mips/ingenic_x1000/spl.lds47
1 files changed, 47 insertions, 0 deletions
diff --git a/firmware/target/mips/ingenic_x1000/spl.lds b/firmware/target/mips/ingenic_x1000/spl.lds
new file mode 100644
index 0000000000..2a0b6b3eaa
--- /dev/null
+++ b/firmware/target/mips/ingenic_x1000/spl.lds
@@ -0,0 +1,47 @@
1#include "config.h"
2
3OUTPUT_FORMAT("elf32-littlemips")
4OUTPUT_ARCH(MIPS)
5ENTRY(_start)
6STARTUP(target/mips/ingenic_x1000/crt0.o)
7
8/* TCSM is 16 KiB and is mapped starting at address 0xf4000000.
9 *
10 * The SPL is loaded to TCSM + 0x1000. The area below that is stack space.
11 * The first 2 KiB of SPL is just headers. The code begins at TCSM + 0x1800.
12 * The maskrom will jump to that address (via jalr) after loading the SPL.
13 */
14MEMORY { TCSM : ORIGIN = 0xf4001800, LENGTH = 0x2800 }
15
16SECTIONS
17{
18 .text :
19 {
20 *(.init.text);
21 *(.text*);
22 } > TCSM
23
24 . = ALIGN(4);
25 .rodata :
26 {
27 *(.rodata*);
28 } > TCSM
29
30 . = ALIGN(4);
31 .data :
32 {
33 *(.data*);
34 *(.sdata*);
35 } > TCSM
36
37 . = ALIGN(4);
38 .bss (NOLOAD) :
39 {
40 _bssbegin = .;
41 *(.sbss*);
42 *(.bss*);
43 *(COMMON);
44 *(.scommon*);
45 _bssend = .;
46 } > TCSM
47}