summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
Diffstat (limited to 'firmware')
-rw-r--r--firmware/app.lds32
-rw-r--r--firmware/boot.lds4
-rw-r--r--firmware/rolo.c2
-rw-r--r--firmware/target/arm/s3c2440/crt0.S2
4 files changed, 19 insertions, 21 deletions
diff --git a/firmware/app.lds b/firmware/app.lds
index e3f6ef2e50..7eeb0fcaa0 100644
--- a/firmware/app.lds
+++ b/firmware/app.lds
@@ -32,16 +32,6 @@ INPUT(target/sh/crt0.o)
32#define STUBOFFSET 0 32#define STUBOFFSET 0
33#endif 33#endif
34 34
35#if CONFIG_CPU==S3C2440
36#include "s3c2440.h"
37#define DRAMSIZE (MEMORYSIZE * 0x100000) - 0x100 - PLUGINSIZE - STUBOFFSET - CODECSIZE - LCD_BUFFER_SIZE - TTB_SIZE
38#elif CONFIG_CPU==DM320
39#include "dm320.h"
40#define DRAMSIZE (MEMORYSIZE * 0x100000) - PLUGINSIZE - STUBOFFSET - CODECSIZE - LCD_BUFFER_SIZE - TTB_SIZE
41#else
42#define DRAMSIZE (MEMORYSIZE * 0x100000) - PLUGINSIZE - STUBOFFSET - CODECSIZE
43#endif
44
45#if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300) 35#if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300)
46#define DRAMORIG 0x31000000 + STUBOFFSET 36#define DRAMORIG 0x31000000 + STUBOFFSET
47#define IRAMORIG 0x10000000 37#define IRAMORIG 0x10000000
@@ -62,9 +52,8 @@ INPUT(target/sh/crt0.o)
62#define IRAMSIZE 0x7000 52#define IRAMSIZE 0x7000
63#elif CONFIG_CPU==S3C2440 53#elif CONFIG_CPU==S3C2440
64#define DRAMORIG 0x00000100 + STUBOFFSET 54#define DRAMORIG 0x00000100 + STUBOFFSET
65#define IRAMORIG DRAMORIG
66#define IRAM DRAM
67#define IRAMSIZE 0x1000 55#define IRAMSIZE 0x1000
56#define IRAMORIG (MEMORYSIZE * 0x100000) - IRAMSIZE - LCD_BUFFER_SIZE - TTB_SIZE
68#elif CONFIG_CPU==DM320 57#elif CONFIG_CPU==DM320
69#define DRAMORIG 0x00900000 + STUBOFFSET 58#define DRAMORIG 0x00900000 + STUBOFFSET
70#define IRAMORIG 0x00000000 59#define IRAMORIG 0x00000000
@@ -79,6 +68,16 @@ INPUT(target/sh/crt0.o)
79#define IRAMSIZE 0x1000 68#define IRAMSIZE 0x1000
80#endif 69#endif
81 70
71#if CONFIG_CPU==S3C2440
72#include "s3c2440.h"
73#define DRAMSIZE (MEMORYSIZE * 0x100000) - 0x100 - PLUGINSIZE - STUBOFFSET - CODECSIZE - LCD_BUFFER_SIZE - TTB_SIZE - IRAMSIZE
74#elif CONFIG_CPU==DM320
75#include "dm320.h"
76#define DRAMSIZE (MEMORYSIZE * 0x100000) - PLUGINSIZE - STUBOFFSET - CODECSIZE - LCD_BUFFER_SIZE - TTB_SIZE
77#else
78#define DRAMSIZE (MEMORYSIZE * 0x100000) - PLUGINSIZE - STUBOFFSET - CODECSIZE
79#endif
80
82/* End of the audio buffer, where the codec buffer starts */ 81/* End of the audio buffer, where the codec buffer starts */
83#define ENDAUDIOADDR (DRAMORIG + DRAMSIZE) 82#define ENDAUDIOADDR (DRAMORIG + DRAMSIZE)
84 83
@@ -88,9 +87,8 @@ INPUT(target/sh/crt0.o)
88MEMORY 87MEMORY
89{ 88{
90 DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE 89 DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE
91#if CONFIG_CPU != S3C2440
92 IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE 90 IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE
93#endif 91
94#if CONFIG_CPU==PNX0101 92#if CONFIG_CPU==PNX0101
95 IRAM0 : ORIGIN = IRAM0ORIG, LENGTH = IRAM0SIZE 93 IRAM0 : ORIGIN = IRAM0ORIG, LENGTH = IRAM0SIZE
96#endif 94#endif
@@ -234,14 +232,14 @@ SECTIONS
234 232
235 _vectorscopy = LOADADDR(.vectors); 233 _vectorscopy = LOADADDR(.vectors);
236 234
237 .iram : 235 .iram IRAMORIG :
238 { 236 {
239 _iramstart = .; 237 _iramstart = .;
240 *(.icode) 238 *(.icode)
241 *(.irodata) 239 *(.irodata)
242 *(.idata) 240 *(.idata)
243 _iramend = .; 241 _iramend = .;
244 } > DRAM 242 } >IRAM AT> DRAM
245 243
246 _iramcopy = LOADADDR(.iram); 244 _iramcopy = LOADADDR(.iram);
247 245
@@ -253,7 +251,7 @@ SECTIONS
253 _iend = .; 251 _iend = .;
254 } > DRAM 252 } > DRAM
255 253
256 .stack : 254 .stack ADDR(.data) + SIZEOF(.data) + SIZEOF(.iram) + SIZEOF(.vectors) :
257 { 255 {
258 *(.stack) 256 *(.stack)
259 stackbegin = .; 257 stackbegin = .;
diff --git a/firmware/boot.lds b/firmware/boot.lds
index d2ea10a30d..a9900517a2 100644
--- a/firmware/boot.lds
+++ b/firmware/boot.lds
@@ -9,8 +9,10 @@ OUTPUT_FORMAT(elf32-littlearm)
9OUTPUT_ARCH(arm) 9OUTPUT_ARCH(arm)
10#ifdef CPU_PP 10#ifdef CPU_PP
11INPUT(target/arm/crt0-pp-bl.o) 11INPUT(target/arm/crt0-pp-bl.o)
12#elif defined(OLYMPUS_MROBE_500) 12#elif CONFIG_CPU==DM320
13INPUT(target/arm/tms320dm320/crt0.o) 13INPUT(target/arm/tms320dm320/crt0.o)
14#elif CONFIG_CPU==S3C2440
15INPUT(target/arm/s3c2440/crt0.o)
14#elif defined(CPU_TCC77X) 16#elif defined(CPU_TCC77X)
15INPUT(target/arm/tcc77x/crt0.o) 17INPUT(target/arm/tcc77x/crt0.o)
16#else 18#else
diff --git a/firmware/rolo.c b/firmware/rolo.c
index 2a4b753948..aac99cc555 100644
--- a/firmware/rolo.c
+++ b/firmware/rolo.c
@@ -161,7 +161,7 @@ void rolo_restart(const unsigned char* source, unsigned char* dest,
161 /* Wait for the COP to tell us it is rebooting */ 161 /* Wait for the COP to tell us it is rebooting */
162 while(cpu_reply != 2); 162 while(cpu_reply != 2);
163#endif 163#endif
164 164
165 asm volatile( 165 asm volatile(
166 "mov r0, #0x10000000 \n" 166 "mov r0, #0x10000000 \n"
167 "mov pc, r0 \n" 167 "mov pc, r0 \n"
diff --git a/firmware/target/arm/s3c2440/crt0.S b/firmware/target/arm/s3c2440/crt0.S
index 2c94fc4510..4f220f6c7f 100644
--- a/firmware/target/arm/s3c2440/crt0.S
+++ b/firmware/target/arm/s3c2440/crt0.S
@@ -85,8 +85,6 @@ start:
85 bhi 1b 85 bhi 1b
86 86
87#ifdef BOOTLOADER 87#ifdef BOOTLOADER
88/* Code for ARM bootloader targets other than iPod go here */
89
90 /* Proper initialization pulled from 0x5070 */ 88 /* Proper initialization pulled from 0x5070 */
91 89
92 /* BWSCON 90 /* BWSCON