diff options
Diffstat (limited to 'firmware/boot.lds')
-rw-r--r-- | firmware/boot.lds | 454 |
1 files changed, 0 insertions, 454 deletions
diff --git a/firmware/boot.lds b/firmware/boot.lds deleted file mode 100644 index e6c9326c7c..0000000000 --- a/firmware/boot.lds +++ /dev/null @@ -1,454 +0,0 @@ -#include "config.h" - -ENTRY(start) -#ifdef CPU_COLDFIRE -OUTPUT_FORMAT(elf32-m68k) -INPUT(target/coldfire/crt0.o) -#elif defined (CPU_ARM) -OUTPUT_FORMAT(elf32-littlearm) -OUTPUT_ARCH(arm) -#ifdef CPU_PP -INPUT(target/arm/crt0-pp-bl.o) -#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) -#elif defined(CPU_TCC780X) -INPUT(target/arm/tcc780x/crt0.o) -#elif CONFIG_CPU==IMX31L -INPUT(target/arm/imx31/crt0.o) -#else -INPUT(target/arm/crt0.o) -#endif -#else -OUTPUT_FORMAT(elf32-sh) -INPUT(target/sh/crt0.o) -#endif - -#define DRAMSIZE (MEMORYSIZE * 0x100000) - -#ifdef IRIVER_H100_SERIES -#define DRAMORIG 0x31000000 -#define IRAMORIG 0x10000000 -#define IRAMSIZE 0x18000 -#define FLASHORIG 0x001f0000 -#define FLASHSIZE 2M -#elif defined(IRIVER_H300_SERIES) -#define DRAMORIG 0x31000000 -#define IRAMORIG 0x10000000 -#define IRAMSIZE 0x18000 -#define FLASHORIG 0x003f0000 -#define FLASHSIZE 4M -#elif defined(IAUDIO_X5) || defined(IAUDIO_M5) -#define DRAMORIG 0x31000000 -#define IRAMORIG 0x10000000 -#define IRAMSIZE 0x20000 -#define FLASHORIG 0x00010000 -#define FLASHSIZE 4M -#elif defined(IAUDIO_M3) -#define DRAMORIG 0x31000000 -#define IRAMORIG 0x10000000 -#define IRAMSIZE 0x18000 -#define FLASHORIG 0x00010000 -#define FLASHSIZE 4M -#elif CONFIG_CPU == PP5020 -#define DRAMORIG 0x10000000 -#define IRAMORIG 0x40000000 -#define IRAMSIZE 0x18000 -#define FLASHORIG 0x001f0000 -#define FLASHSIZE 2M -#elif (CONFIG_CPU == PP5022) || (CONFIG_CPU == PP5024) -#define DRAMORIG 0x10000000 -#ifndef IRAMORIG -#define IRAMORIG 0x40000000 -#endif -#define IRAMSIZE 0x20000 -#define FLASHORIG 0x001f0000 -#define FLASHSIZE 2M -#elif CONFIG_CPU == S3C2440 -#define DRAMORIG 0x30000000 -#define IRAMORIG 0x40000000 -#define IRAMSIZE 4K -#define FLASHORIG 0x0000000 -#define FLASHSIZE 1M -#elif CONFIG_CPU == DM320 -#define DRAMORIG 0x00900000 -#define IRAMORIG 0x00000000 -#define IRAMSIZE 16K -#define FLASHORIG 0x00100000 -#define FLASHSIZE 8M -#elif CONFIG_CPU == PP5002 -#define DRAMORIG 0x28000000 -#define IRAMORIG 0x40000000 -#define IRAMSIZE 0x18000 -#define FLASHORIG 0x001f0000 -#define FLASHSIZE 2M -#elif CONFIG_CPU == IMX31L -#define DRAMORIG (0x02000000-0x00100000) -#undef DRAMSIZE -#define DRAMSIZE (1 << 20) /* Limit 1 MB for bootloader */ -#define IRAM DRAM -#define IRAMORIG 0x1FFFC000 -#define IRAMSIZE 16K -#define FLASHORIG 0x0000000 -#define FLASHSIZE 1M -#elif defined(CPU_TCC77X) -#define DRAMORIG 0x20000000 -#define IRAMORIG 0x00000000 -#define IRAMSIZE 64K -#define FLASHORIG 0x0000000 -#define FLASHSIZE 1M -#elif defined(CPU_TCC780X) -#define DRAMORIG 0x20000000 -#define IRAMORIG 0x00000000 -#define IRAMSIZE 4K -#define FLASHORIG 0x0000000 -#define FLASHSIZE 1M -#else -#define DRAMORIG 0x09000000 -#define IRAMORIG 0x0f000000 -#define IRAMSIZE 0x1000 -#define FLASHORIG 0x02000000 + ROM_START -#define FLASHSIZE 256K - ROM_START -#endif - -#if defined(CPU_TCC77X) || defined(CPU_TCC780X) -MEMORY -{ -#ifdef TCCBOOT - DRAM : ORIGIN = DRAMORIG + DRAMSIZE - 0x100000, LENGTH = 0x100000 -#else - DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE -#endif - IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE -} -#elif CONFIG_CPU == IMX31L -MEMORY -{ - DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE -} -#elif !defined(CPU_PP) && (CONFIG_CPU!=S3C2440) -MEMORY -{ - DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE - IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE - FLASH : ORIGIN = FLASHORIG, LENGTH = FLASHSIZE -} -#endif - -SECTIONS -#ifdef CPU_PP -{ - . = IRAMORIG; - - .text : { - *(.init.text) - *(.text*) - } - - .data : { - *(.icode) - *(.irodata) - *(.idata) - *(.data*) - _dataend = . ; - } - - .stack : - { - *(.stack) - _stackbegin = .; - stackbegin = .; - . += 0x2000; - _stackend = .; - stackend = .; - } - - /* The bss section is too large for IRAM - we just move it 16MB into the - DRAM */ - - . = (DRAMORIG+16*1024*1024); - .bss : { - _edata = .; - *(.bss*); - *(.ibss); - _end = .; - } -} -#elif (CONFIG_CPU==S3C2440) -{ - . = DRAMORIG + 0x1000000; - - .text : { - *(.init.text) - *(.text*) - } - - .data : { - *(.icode) - *(.irodata) - *(.idata) - *(.data*) - . = ALIGN(0x4); - _dataend = . ; - } - - .stack : - { - *(.stack) - _stackbegin = .; - stackbegin = .; - . += 0x2000; - _stackend = .; - stackend = .; - } - .bss : { - _edata = .; - *(.bss*); - *(.ibss); - *(COMMON) - _end = .; - } -} -#elif defined(CPU_TCC77X) || defined(CPU_TCC780X) -{ - .text : { - *(.init.text) - *(.text) - *(.text*) - *(.glue_7) - *(.glue_7t) - } > DRAM - - .data : { - *(.icode) - *(.irodata) - *(.idata) - *(.data*) - *(.rodata.*) - . = ALIGN(0x4); - _dataend = . ; - } > DRAM - - .stack : - { - *(.stack) - _stackbegin = .; - stackbegin = .; - . += 0x2000; - _stackend = .; - stackend = .; - } > DRAM - .bss : { - _edata = .; - *(.bss*); - *(.ibss); - *(COMMON) - _end = .; - } > DRAM -} -#elif (CONFIG_CPU==DM320) -{ - . = DRAMORIG + 0x1000000; - - .text : { - loadaddress = .; - _loadaddress = .; - *(.init.text) - *(.text*) - *(.glue_7) - *(.glue_7t) - . = ALIGN(0x4); - } > DRAM - - .rodata : - { - *(.rodata) /* problems without this, dunno why */ - *(.rodata*) - *(.rodata.str1.1) - *(.rodata.str1.4) - . = ALIGN(0x4); - - /* Pseudo-allocate the copies of the data sections */ - _datacopy = .; - } > DRAM - - .data : { - *(.icode) - *(.irodata) - *(.idata) - *(.data*) - . = ALIGN(0x4); - _dataend = . ; - } > DRAM - - .stack : - { - *(.stack) - _stackbegin = .; - stackbegin = .; - . += 0x2000; - _stackend = .; - stackend = .; - } > DRAM - - .bss : - { - _edata = .; - *(.bss*); - *(.ibss); - *(COMMON) - _end = .; - } > DRAM - - .vectors IRAMORIG : - { - _vectorsstart = .; - KEEP(*(.resetvectors)); - *(.resetvectors); - KEEP(*(.vectors)); - *(.vectors); - _vectorsend = .; - } AT > DRAM - _vectorscopy = LOADADDR(.vectors); -} -#elif (CONFIG_CPU==IMX31L) -{ - . = DRAMORIG; - - .text : - { - *(.init.text) - *(.text*) - *(.icode) - *(.glue_7) - *(.glue_7t) - . = ALIGN(0x4); - } > DRAM - - .rodata : - { - *(.rodata) /* problems without this, dunno why */ - *(.rodata*) - *(.rodata.str1.1) - *(.rodata.str1.4) - . = ALIGN(0x4); - - /* Pseudo-allocate the copies of the data sections */ - _datacopy = .; - } > DRAM - - .data : - { - *(.irodata) - *(.idata) - *(.data*) - . = ALIGN(0x4); - _dataend = . ; - } > DRAM - - .stack : - { - *(.stack) - _stackbegin = .; - stackbegin = .; - . += 0x2000; - _stackend = .; - stackend = .; - } > IRAM - - .bss : - { - _edata = .; - *(.bss*); - *(.ibss); - *(COMMON) - _end = .; - } > DRAM - - .vectors 0x0 : - { - _vectorsstart = .; - *(.vectors); - KEEP(*(.vectors)); - _vectorsend = .; - } AT > DRAM - _vectorscopy = LOADADDR(.vectors); -} -#else -{ - .vectors : - { -#if defined(IAUDIO_X5) || defined(IAUDIO_M5) || defined(IAUDIO_M3) - *(.init.text) -#endif - _datacopy = .; - } > FLASH - - .data : AT ( _datacopy ) - { - _datastart = .; - KEEP(*(.resetvectors)); - *(.resetvectors); - KEEP(*(.vectors)); - *(.vectors); - . = ALIGN(0x200); - *(.icode) - *(.irodata) - *(.idata) - *(.data*) - . = ALIGN(0x4); - _dataend = .; - . = ALIGN(0x10); /* Maintain proper alignment for .text section */ - } > IRAM - - /* TRICK ALERT! Newer versions of the linker don't allow output sections - to overlap even if one of them is empty, so advance the location pointer - "by hand" */ - .text LOADADDR(.data) + SIZEOF(.data) : - { - *(.init.text) - *(.text*) - . = ALIGN(0x4); - } > FLASH - - .rodata : - { - *(.rodata*) - . = ALIGN(0x4); - _iramcopy = .; - } > FLASH - - .stack : - { - *(.stack) - _stackbegin = .; - stackbegin = .; - . += 0x2000; - _stackend = .; - stackend = .; - } > IRAM - -#if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES) \ - || defined(IAUDIO_X5) || defined(IAUDIO_M5) || defined(IAUDIO_M3) - .bss DRAMORIG+0x800000: -#else - .bss : -#endif - { - _edata = .; - *(.ibss) - *(.bss*) - *(COMMON) - _end = .; -#if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES) \ - || defined(IAUDIO_X5) || defined(IAUDIO_M5) || defined(IAUDIO_M3) - } > DRAM -#else - } > IRAM -#endif - -} -#endif |