summaryrefslogtreecommitdiff
path: root/firmware/target/arm/tms320dm320/app.lds
diff options
context:
space:
mode:
authorKarl Kurbjun <kkurbjun@gmail.com>2009-04-09 04:22:14 +0000
committerKarl Kurbjun <kkurbjun@gmail.com>2009-04-09 04:22:14 +0000
commit93fccc763b97323cb3112bf9afee819cd03ba195 (patch)
tree8b3da3ecd807da715478fe4cc1697fcffea1bd67 /firmware/target/arm/tms320dm320/app.lds
parent49fcfe81b861f866c4e9e16e272f33654a1be450 (diff)
downloadrockbox-93fccc763b97323cb3112bf9afee819cd03ba195.tar.gz
rockbox-93fccc763b97323cb3112bf9afee819cd03ba195.zip
M:Robe 500: More LCD initialization, QVGA (vs. VGA) is now enabled by default for performance, 256 color palette mode added, include some linker cleanups and reorganization. Doom and MPEGPlayer now run reaonably well.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20664 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/tms320dm320/app.lds')
-rw-r--r--firmware/target/arm/tms320dm320/app.lds57
1 files changed, 31 insertions, 26 deletions
diff --git a/firmware/target/arm/tms320dm320/app.lds b/firmware/target/arm/tms320dm320/app.lds
index 47ff239a1a..4e175101a9 100644
--- a/firmware/target/arm/tms320dm320/app.lds
+++ b/firmware/target/arm/tms320dm320/app.lds
@@ -6,35 +6,30 @@ OUTPUT_FORMAT(elf32-littlearm)
6OUTPUT_ARCH(arm) 6OUTPUT_ARCH(arm)
7STARTUP(target/arm/tms320dm320/crt0.o) 7STARTUP(target/arm/tms320dm320/crt0.o)
8 8
9#define PLUGINSIZE PLUGIN_BUFFER_SIZE
10#define CODECSIZE CODEC_SIZE
11
12#ifdef DEBUG 9#ifdef DEBUG
13#define STUBOFFSET 0x10000 10#define STUBOFFSET 0x10000
14#else 11#else
15#define STUBOFFSET 0 12#define STUBOFFSET 0
16#endif 13#endif
17 14
18#define LCD_BUFFER_SIZE (LCD_WIDTH*LCD_HEIGHT*2) 15#define LCD_FUDGE LCD_NATIVE_WIDTH%32
19
20/* must be 16Kb (0x4000) aligned */
21#define TTB_SIZE (0x4000)
22 16
23#define DRAMSIZE (MEMORYSIZE * 0x100000) - STUBOFFSET - PLUGINSIZE - CODECSIZE - LCD_BUFFER_SIZE - TTB_SIZE 17#define LCD_BUFFER_SIZE ((LCD_NATIVE_WIDTH+LCD_FUDGE)*LCD_NATIVE_HEIGHT*2)
24 18
25#define DRAMORIG 0x00900000 + STUBOFFSET 19/* must be 16Kb (0x4000) aligned */
26#define IRAMORIG 0x00000000 20#define TTB_SIZE 0x4000
27#define IRAMSIZE 0x4000
28 21
29/* End of the audio buffer, where the codec buffer starts */ 22/* Give this 1 meg to allow it to align to the MMU boundary */
30#define ENDAUDIOADDR (DRAMORIG + DRAMSIZE) 23#define LCD_TTB_AREA 0x100000
31 24
32/* Where the codec buffer ends, and the plugin buffer starts */ 25#define DRAMSIZE (MEMORYSIZE * 0x100000) - STUBOFFSET
33#define ENDADDR (ENDAUDIOADDR + CODECSIZE)
34 26
35#define LCDBEGIN (ENDADDR + PLUGINSIZE) 27#define DRAMORIG 0x00900000 + STUBOFFSET
28#define IRAMORIG 0x00000000
29#define IRAMSIZE 0x4000
36 30
37#define TTBBEGIN (LCDBEGIN + LCD_BUFFER_SIZE) 31/* End of the audio buffer, where the codec buffer starts */
32#define ENDAUDIOADDR (DRAMORIG + DRAMSIZE - PLUGIN_BUFFER_SIZE - CODEC_SIZE - LCD_TTB_AREA)
38 33
39MEMORY 34MEMORY
40{ 35{
@@ -144,22 +139,32 @@ SECTIONS
144 { 139 {
145 codecbuf = .; 140 codecbuf = .;
146 _codecbuf = .; 141 _codecbuf = .;
147 } 142 . += CODEC_SIZE;
143 } > DRAM
148 144
149 .plugin ENDADDR (NOLOAD) : 145 .plugin (NOLOAD) :
150 { 146 {
151 _pluginbuf = .; 147 _pluginbuf = .;
152 pluginbuf = .; 148 pluginbuf = .;
153 } 149 . += PLUGIN_BUFFER_SIZE;
150 } > DRAM
154 151
155 .lcdbuffer LCDBEGIN (NOLOAD) : 152 .ttbtable (NOLOAD) :
156 { 153 {
157 _lcdbuf = .; 154 . = ALIGN (0x4000);
158 } 155 _ttbstart = .;
156 . += TTB_SIZE;
157 } > DRAM
158
159 /* The LCD buffer should be at the end of memory to protect against
160 * overflowing something else when the YUV blitter is fudging the screen
161 * size.
162 */
159 163
160 .ttbtable TTBBEGIN (NOLOAD) : 164 .lcdbuffer (NOLOAD) :
161 { 165 {
162 _ttbstart = .; 166 _lcdbuf = .;
163 } 167 . += LCD_BUFFER_SIZE;
168 } > DRAM
164} 169}
165 170