diff options
Diffstat (limited to 'firmware/target/mips/ingenic_x1000/spl.lds')
-rw-r--r-- | firmware/target/mips/ingenic_x1000/spl.lds | 47 |
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 | |||
3 | OUTPUT_FORMAT("elf32-littlemips") | ||
4 | OUTPUT_ARCH(MIPS) | ||
5 | ENTRY(_start) | ||
6 | STARTUP(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 | */ | ||
14 | MEMORY { TCSM : ORIGIN = 0xf4001800, LENGTH = 0x2800 } | ||
15 | |||
16 | SECTIONS | ||
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 | } | ||