summaryrefslogtreecommitdiff
path: root/firmware/target/arm/tms320dm320/boot.lds
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/tms320dm320/boot.lds')
-rw-r--r--firmware/target/arm/tms320dm320/boot.lds28
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
3ENTRY(start) 3ENTRY(start)
4
4OUTPUT_FORMAT(elf32-littlearm) 5OUTPUT_FORMAT(elf32-littlearm)
5OUTPUT_ARCH(arm) 6OUTPUT_ARCH(arm)
6STARTUP(target/arm/tms320dm320/crt0.o) 7STARTUP(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
16MEMORY 28MEMORY
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}