diff options
Diffstat (limited to 'firmware/target/arm/tms320dm320/boot.lds')
-rw-r--r-- | firmware/target/arm/tms320dm320/boot.lds | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/firmware/target/arm/tms320dm320/boot.lds b/firmware/target/arm/tms320dm320/boot.lds index 97274a2c04..e391526dc5 100644 --- a/firmware/target/arm/tms320dm320/boot.lds +++ b/firmware/target/arm/tms320dm320/boot.lds | |||
@@ -1,11 +1,17 @@ | |||
1 | #include "config.h" | 1 | #include "config.h" |
2 | 2 | ||
3 | ENTRY(start) | 3 | ENTRY(start) |
4 | |||
4 | OUTPUT_FORMAT(elf32-littlearm) | 5 | OUTPUT_FORMAT(elf32-littlearm) |
5 | OUTPUT_ARCH(arm) | 6 | OUTPUT_ARCH(arm) |
6 | STARTUP(target/arm/tms320dm320/crt0.o) | 7 | STARTUP(target/arm/tms320dm320/crt0.o) |
7 | 8 | ||
8 | #define DRAMSIZE (MEMORYSIZE * 0x100000) | 9 | #define LCD_BUFFER_SIZE (LCD_WIDTH*LCD_HEIGHT*2) |
10 | |||
11 | /* must be 16Kb (0x4000) aligned */ | ||
12 | #define TTB_SIZE (0x4000) | ||
13 | |||
14 | #define DRAMSIZE (MEMORYSIZE * 0x100000) - TTB_SIZE - LCD_BUFFER_SIZE | ||
9 | 15 | ||
10 | #define DRAMORIG 0x01900000 /* actually it's 0x00900000 */ | 16 | #define DRAMORIG 0x01900000 /* actually it's 0x00900000 */ |
11 | #define IRAMORIG 0x00000000 | 17 | #define IRAMORIG 0x00000000 |
@@ -13,6 +19,12 @@ STARTUP(target/arm/tms320dm320/crt0.o) | |||
13 | #define FLASHORIG 0x00100000 | 19 | #define FLASHORIG 0x00100000 |
14 | #define FLASHSIZE 8M | 20 | #define FLASHSIZE 8M |
15 | 21 | ||
22 | /* Now we have the LCD buffer */ | ||
23 | #define LCDBEGIN (DRAMSIZE+0x00900000) | ||
24 | |||
25 | /* Finally the TTB table */ | ||
26 | #define TTBBEGIN (LCDBEGIN + LCD_BUFFER_SIZE) | ||
27 | |||
16 | MEMORY | 28 | MEMORY |
17 | { | 29 | { |
18 | DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE | 30 | DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE |
@@ -28,6 +40,7 @@ SECTIONS | |||
28 | loadaddress = .; | 40 | loadaddress = .; |
29 | _loadaddress = .; | 41 | _loadaddress = .; |
30 | *(.init.text) | 42 | *(.init.text) |
43 | *(.icode) | ||
31 | *(.text*) | 44 | *(.text*) |
32 | *(.glue_7) | 45 | *(.glue_7) |
33 | *(.glue_7t) | 46 | *(.glue_7t) |
@@ -40,6 +53,7 @@ SECTIONS | |||
40 | *(.rodata*) | 53 | *(.rodata*) |
41 | *(.rodata.str1.1) | 54 | *(.rodata.str1.1) |
42 | *(.rodata.str1.4) | 55 | *(.rodata.str1.4) |
56 | *(.irodata) | ||
43 | . = ALIGN(0x4); | 57 | . = ALIGN(0x4); |
44 | 58 | ||
45 | /* Pseudo-allocate the copies of the data sections */ | 59 | /* Pseudo-allocate the copies of the data sections */ |
@@ -47,8 +61,6 @@ SECTIONS | |||
47 | } > DRAM | 61 | } > DRAM |
48 | 62 | ||
49 | .data : { | 63 | .data : { |
50 | *(.icode) | ||
51 | *(.irodata) | ||
52 | *(.idata) | 64 | *(.idata) |
53 | *(.data*) | 65 | *(.data*) |
54 | . = ALIGN(0x4); | 66 | . = ALIGN(0x4); |
@@ -84,4 +96,14 @@ SECTIONS | |||
84 | _vectorsend = .; | 96 | _vectorsend = .; |
85 | } AT > DRAM | 97 | } AT > DRAM |
86 | _vectorscopy = LOADADDR(.vectors); | 98 | _vectorscopy = LOADADDR(.vectors); |
99 | |||
100 | .lcdbuffer LCDBEGIN (NOLOAD) : | ||
101 | { | ||
102 | _lcdbuf = .; | ||
103 | } | ||
104 | |||
105 | .ttbtable TTBBEGIN (NOLOAD) : | ||
106 | { | ||
107 | _ttbstart = .; | ||
108 | } | ||
87 | } | 109 | } |