summaryrefslogtreecommitdiff
path: root/firmware/target/arm/tms320dm320/boot.lds
diff options
context:
space:
mode:
authorKarl Kurbjun <kkurbjun@gmail.com>2009-04-01 03:21:18 +0000
committerKarl Kurbjun <kkurbjun@gmail.com>2009-04-01 03:21:18 +0000
commit4fa96fbc914ae8fd69aedafd73f4f1798679d29f (patch)
treeea0deb3e1573e1dfd540441002e58b403670d178 /firmware/target/arm/tms320dm320/boot.lds
parenta606121dd860245328198ac773d454980191abc3 (diff)
downloadrockbox-4fa96fbc914ae8fd69aedafd73f4f1798679d29f.tar.gz
rockbox-4fa96fbc914ae8fd69aedafd73f4f1798679d29f.zip
M:Robe 500i: More LCD initialization, and beginnings of support for QVGA as well as VGA on the LCD. MPEGPlayer now works with reasonable performance on smaller videos, but YUV blitting persists after MPEGPlayer is left, some cleanup/changes to the initialization code. This should be functionally equivalent for the ZVM, but the #ifdef's may need to be added back for app.lds. Get the bootloader building again.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20598 a1c6a512-1295-4272-9138-f99709370657
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}