summaryrefslogtreecommitdiff
path: root/firmware/target/arm/s5l8700/boot.lds
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/s5l8700/boot.lds')
-rw-r--r--firmware/target/arm/s5l8700/boot.lds54
1 files changed, 40 insertions, 14 deletions
diff --git a/firmware/target/arm/s5l8700/boot.lds b/firmware/target/arm/s5l8700/boot.lds
index 8ce942c9b2..2d2a686f9d 100644
--- a/firmware/target/arm/s5l8700/boot.lds
+++ b/firmware/target/arm/s5l8700/boot.lds
@@ -1,12 +1,12 @@
1#include "config.h" 1#include "config.h"
2 2
3ENTRY(start) 3ENTRY(_start)
4OUTPUT_FORMAT(elf32-bigarm) 4OUTPUT_FORMAT(elf32-bigarm)
5OUTPUT_ARCH(arm) 5OUTPUT_ARCH(arm)
6STARTUP(target/arm/crt0.o) 6STARTUP(target/arm/s5l8700/crt0.o)
7 7
8/* DRAMORIG is in fact 0x8000000 but remapped to 0x0 */ 8/* DRAMORIG is in fact 0x8000000 but remapped to 0x0 */
9#define DRAMORIG 0x0 9#define DRAMORIG 0x8000000
10#define DRAMSIZE 16M 10#define DRAMSIZE 16M
11 11
12#define IRAMORIG 0x22000000 12#define IRAMORIG 0x22000000
@@ -22,41 +22,67 @@ STARTUP(target/arm/crt0.o)
22#define FLASHORIG 0x24000000 22#define FLASHORIG 0x24000000
23#define FLASHSIZE 1M 23#define FLASHSIZE 1M
24 24
25MEMORY
26{
27 DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE
28 IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE
29 FLASH : ORIGIN = FLASHORIG, LENGTH = FLASHSIZE
30}
31
32
25SECTIONS 33SECTIONS
26{ 34{
27 /*. = IRAMORIG; */ 35 .intvect : {
28 /* As long as we don't flash the code, use the DFU load address */ 36 _intvectstart = . ;
29 . = DFULOADADDR; 37 *(.intvect)
38 _intvectend = _newstart ;
39 } >IRAM AT> FLASH
40 _intvectcopy = LOADADDR(.intvect) ;
30 41
31 .text : { 42 .text : {
32 *(.init.text) 43 *(.init.text)
33 *(.text*) 44 *(.text*)
34 } 45 *(.glue_7*)
46 } > FLASH
47
48 .rodata : {
49 *(.rodata*)
50 . = ALIGN(0x4);
51 } > FLASH
35 52
36 .data : { 53 .data : {
37 *(.icode) 54 _datastart = . ;
38 *(.irodata) 55 *(.irodata)
56 *(.icode)
39 *(.idata) 57 *(.idata)
40 *(.data*) 58 *(.data*)
41 *(.ncdata*); 59 *(.ncdata*);
60 . = ALIGN(0x4);
42 _dataend = . ; 61 _dataend = . ;
43 } 62 } > IRAM AT> FLASH
63 _datacopy = LOADADDR(.data) ;
44 64
45 .stack : 65 .stack :
46 { 66 {
47 *(.stack) 67 *(.stack)
48 _stackbegin = .; 68 _stackbegin = .;
49 stackbegin = .; 69 . += 0x2000;
50 . += 0x1000;
51 _stackend = .; 70 _stackend = .;
52 stackend = .; 71 _irqstackbegin = .;
53 } 72 . += 0x400;
73 _irqstackend = .;
74 _fiqstackbegin = .;
75 . += 0x400;
76 _fiqstackend = .;
77 } > IRAM
54 78
55 .bss : { 79 .bss : {
56 _edata = .; 80 _edata = .;
57 *(.bss*); 81 *(.bss*);
58 *(.ibss); 82 *(.ibss);
59 *(.ncbss*); 83 *(.ncbss*);
84 *(COMMON);
85 . = ALIGN(0x4);
60 _end = .; 86 _end = .;
61 } 87 } > IRAM
62} 88}