diff options
| author | Karl Kurbjun <kkurbjun@gmail.com> | 2007-11-11 19:13:09 +0000 |
|---|---|---|
| committer | Karl Kurbjun <kkurbjun@gmail.com> | 2007-11-11 19:13:09 +0000 |
| commit | 1b3dac90429a870f6ab84755dd78e525265b2bfe (patch) | |
| tree | 53cc1ab755e54e2afab910a7a967f73096caa48f /firmware | |
| parent | 6e36ac547c23c3890439a3b81772d7e3c1ce938d (diff) | |
| download | rockbox-1b3dac90429a870f6ab84755dd78e525265b2bfe.zip rockbox-1b3dac90429a870f6ab84755dd78e525265b2bfe.tar.gz rockbox-1b3dac90429a870f6ab84755dd78e525265b2bfe.tar.bz2 rockbox-1b3dac90429a870f6ab84755dd78e525265b2bfe.tar.xz | |
Setup the gigabeat so that iram is faked in a different spot since the normal iram location does not seem to be working. This lays the groundwork to get rolo running.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15581 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
| -rw-r--r-- | firmware/app.lds | 32 | ||||
| -rw-r--r-- | firmware/boot.lds | 4 | ||||
| -rw-r--r-- | firmware/rolo.c | 2 | ||||
| -rw-r--r-- | firmware/target/arm/s3c2440/crt0.S | 2 |
4 files changed, 19 insertions, 21 deletions
diff --git a/firmware/app.lds b/firmware/app.lds index e3f6ef2..7eeb0fc 100644 --- a/firmware/app.lds +++ b/firmware/app.lds @@ -32,16 +32,6 @@ INPUT(target/sh/crt0.o) #define STUBOFFSET 0 #endif -#if CONFIG_CPU==S3C2440 -#include "s3c2440.h" -#define DRAMSIZE (MEMORYSIZE * 0x100000) - 0x100 - PLUGINSIZE - STUBOFFSET - CODECSIZE - LCD_BUFFER_SIZE - TTB_SIZE -#elif CONFIG_CPU==DM320 -#include "dm320.h" -#define DRAMSIZE (MEMORYSIZE * 0x100000) - PLUGINSIZE - STUBOFFSET - CODECSIZE - LCD_BUFFER_SIZE - TTB_SIZE -#else -#define DRAMSIZE (MEMORYSIZE * 0x100000) - PLUGINSIZE - STUBOFFSET - CODECSIZE -#endif - #if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300) #define DRAMORIG 0x31000000 + STUBOFFSET #define IRAMORIG 0x10000000 @@ -62,9 +52,8 @@ INPUT(target/sh/crt0.o) #define IRAMSIZE 0x7000 #elif CONFIG_CPU==S3C2440 #define DRAMORIG 0x00000100 + STUBOFFSET -#define IRAMORIG DRAMORIG -#define IRAM DRAM #define IRAMSIZE 0x1000 +#define IRAMORIG (MEMORYSIZE * 0x100000) - IRAMSIZE - LCD_BUFFER_SIZE - TTB_SIZE #elif CONFIG_CPU==DM320 #define DRAMORIG 0x00900000 + STUBOFFSET #define IRAMORIG 0x00000000 @@ -79,6 +68,16 @@ INPUT(target/sh/crt0.o) #define IRAMSIZE 0x1000 #endif +#if CONFIG_CPU==S3C2440 +#include "s3c2440.h" +#define DRAMSIZE (MEMORYSIZE * 0x100000) - 0x100 - PLUGINSIZE - STUBOFFSET - CODECSIZE - LCD_BUFFER_SIZE - TTB_SIZE - IRAMSIZE +#elif CONFIG_CPU==DM320 +#include "dm320.h" +#define DRAMSIZE (MEMORYSIZE * 0x100000) - PLUGINSIZE - STUBOFFSET - CODECSIZE - LCD_BUFFER_SIZE - TTB_SIZE +#else +#define DRAMSIZE (MEMORYSIZE * 0x100000) - PLUGINSIZE - STUBOFFSET - CODECSIZE +#endif + /* End of the audio buffer, where the codec buffer starts */ #define ENDAUDIOADDR (DRAMORIG + DRAMSIZE) @@ -88,9 +87,8 @@ INPUT(target/sh/crt0.o) MEMORY { DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE -#if CONFIG_CPU != S3C2440 IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE -#endif + #if CONFIG_CPU==PNX0101 IRAM0 : ORIGIN = IRAM0ORIG, LENGTH = IRAM0SIZE #endif @@ -234,14 +232,14 @@ SECTIONS _vectorscopy = LOADADDR(.vectors); - .iram : + .iram IRAMORIG : { _iramstart = .; *(.icode) *(.irodata) *(.idata) _iramend = .; - } > DRAM + } >IRAM AT> DRAM _iramcopy = LOADADDR(.iram); @@ -253,7 +251,7 @@ SECTIONS _iend = .; } > DRAM - .stack : + .stack ADDR(.data) + SIZEOF(.data) + SIZEOF(.iram) + SIZEOF(.vectors) : { *(.stack) stackbegin = .; diff --git a/firmware/boot.lds b/firmware/boot.lds index d2ea10a..a990051 100644 --- a/firmware/boot.lds +++ b/firmware/boot.lds @@ -9,8 +9,10 @@ OUTPUT_FORMAT(elf32-littlearm) OUTPUT_ARCH(arm) #ifdef CPU_PP INPUT(target/arm/crt0-pp-bl.o) -#elif defined(OLYMPUS_MROBE_500) +#elif CONFIG_CPU==DM320 INPUT(target/arm/tms320dm320/crt0.o) +#elif CONFIG_CPU==S3C2440 +INPUT(target/arm/s3c2440/crt0.o) #elif defined(CPU_TCC77X) INPUT(target/arm/tcc77x/crt0.o) #else diff --git a/firmware/rolo.c b/firmware/rolo.c index 2a4b753..aac99cc 100644 --- a/firmware/rolo.c +++ b/firmware/rolo.c @@ -161,7 +161,7 @@ void rolo_restart(const unsigned char* source, unsigned char* dest, /* Wait for the COP to tell us it is rebooting */ while(cpu_reply != 2); #endif - + asm volatile( "mov r0, #0x10000000 \n" "mov pc, r0 \n" diff --git a/firmware/target/arm/s3c2440/crt0.S b/firmware/target/arm/s3c2440/crt0.S index 2c94fc4..4f220f6 100644 --- a/firmware/target/arm/s3c2440/crt0.S +++ b/firmware/target/arm/s3c2440/crt0.S @@ -85,8 +85,6 @@ start: bhi 1b #ifdef BOOTLOADER -/* Code for ARM bootloader targets other than iPod go here */ - /* Proper initialization pulled from 0x5070 */ /* BWSCON |