diff options
Diffstat (limited to 'firmware/target/arm/s3c2440/boot.lds')
-rw-r--r-- | firmware/target/arm/s3c2440/boot.lds | 101 |
1 files changed, 75 insertions, 26 deletions
diff --git a/firmware/target/arm/s3c2440/boot.lds b/firmware/target/arm/s3c2440/boot.lds index cc20fbe86f..4516c7ddb0 100644 --- a/firmware/target/arm/s3c2440/boot.lds +++ b/firmware/target/arm/s3c2440/boot.lds | |||
@@ -7,44 +7,93 @@ INPUT(target/arm/s3c2440/crt0.o) | |||
7 | 7 | ||
8 | #define DRAMSIZE (MEMORYSIZE * 0x100000) | 8 | #define DRAMSIZE (MEMORYSIZE * 0x100000) |
9 | 9 | ||
10 | #define DRAMORIG 0x30000000 | 10 | #define DRAMORIG 0x00000000 |
11 | #define IRAMORIG 0x40000000 | 11 | #define IRAMORIG 0x40000000 |
12 | #define IRAMSIZE 4K | 12 | #define IRAMSIZE 4K |
13 | #define FLASHORIG 0x0000000 | 13 | #define FLASHORIG 0x00000000 |
14 | #define FLASHSIZE 1M | 14 | #define FLASHSIZE 1M |
15 | 15 | ||
16 | SECTIONS | 16 | MEMORY |
17 | { | 17 | { |
18 | . = DRAMORIG + 0x1000000; | 18 | DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE |
19 | } | ||
19 | 20 | ||
20 | .text : { | 21 | SECTIONS |
22 | { | ||
23 | .vectors DRAMORIG : | ||
24 | { | ||
25 | _vectorstart = .; | ||
26 | *(.vectors*); | ||
21 | *(.init.text) | 27 | *(.init.text) |
28 | . = ALIGN(0x4); | ||
29 | } > DRAM | ||
30 | |||
31 | .text : | ||
32 | { | ||
33 | _textstart = .; | ||
34 | *(.text) | ||
22 | *(.text*) | 35 | *(.text*) |
23 | } | 36 | *(.glue_7) |
37 | *(.glue_7t) | ||
38 | . = ALIGN(0x4); | ||
39 | } > DRAM | ||
24 | 40 | ||
25 | .data : { | 41 | _textcopy = LOADADDR(.text); |
42 | |||
43 | .rodata : | ||
44 | { | ||
45 | *(.rodata) /* problems without this, dunno why */ | ||
46 | *(.rodata*) | ||
47 | *(.rodata.str1.1) | ||
48 | *(.rodata.str1.4) | ||
49 | . = ALIGN(0x4); | ||
50 | } > DRAM | ||
51 | |||
52 | .data : | ||
53 | { | ||
54 | *(.data*) | ||
55 | . = ALIGN(0x4); | ||
56 | } > DRAM | ||
57 | |||
58 | /DISCARD/ : | ||
59 | { | ||
60 | *(.eh_frame) | ||
61 | } | ||
62 | |||
63 | .iram : | ||
64 | { | ||
65 | _iramstart = .; | ||
26 | *(.icode) | 66 | *(.icode) |
27 | *(.irodata) | 67 | *(.irodata) |
28 | *(.idata) | 68 | *(.idata) |
29 | *(.data*) | 69 | . = ALIGN(0x4); |
70 | _iramend = .; | ||
71 | } > DRAM | ||
72 | |||
73 | _iramcopy = LOADADDR(.iram); | ||
74 | |||
75 | .ibss : | ||
76 | { | ||
77 | _iedata = .; | ||
78 | *(.ibss) | ||
30 | . = ALIGN(0x4); | 79 | . = ALIGN(0x4); |
31 | _dataend = . ; | 80 | _iend = .; |
32 | } | 81 | } > DRAM |
33 | 82 | ||
34 | .stack : | 83 | .stack : |
35 | { | 84 | { |
36 | *(.stack) | 85 | *(.stack) |
37 | _stackbegin = .; | 86 | stackbegin = .; |
38 | stackbegin = .; | 87 | . += 0x2000; |
39 | . += 0x2000; | 88 | stackend = .; |
40 | _stackend = .; | 89 | } > DRAM |
41 | stackend = .; | 90 | |
42 | } | 91 | .bss : |
43 | .bss : { | 92 | { |
44 | _edata = .; | 93 | _edata = .; |
45 | *(.bss*); | 94 | *(.bss*) |
46 | *(.ibss); | 95 | *(COMMON) |
47 | *(COMMON) | 96 | . = ALIGN(0x4); |
48 | _end = .; | 97 | _end = .; |
49 | } | 98 | } > DRAM |
50 | } | 99 | } |