mirror of
https://github.com/Rockbox/rockbox.git
synced 2026-04-12 00:47:49 -04:00
These targets haven't seen any changes since 2008-09 have bitrotted to the point they don't compile anymore. With only internal NAND flash for storage which doesn't seem to have ever been accessible from Rockbox, they've never been usable and there's probably not much point keeping them around any more. Change-Id: I2fc63da20682b439126672065ae013044cb2d1c4
115 lines
2.1 KiB
Text
115 lines
2.1 KiB
Text
#include "config.h"
|
|
|
|
ENTRY(start)
|
|
#ifdef ROCKBOX_LITTLE_ENDIAN
|
|
OUTPUT_FORMAT(elf32-littlearm)
|
|
#else
|
|
OUTPUT_FORMAT(elf32-bigarm)
|
|
#endif
|
|
OUTPUT_ARCH(arm)
|
|
STARTUP(target/arm/s5l8700/crt0.o)
|
|
|
|
#ifdef IPOD_NANO2G
|
|
#define DRAMORIG 0x08000000 + ((MEMORYSIZE - 1) * 0x100000)
|
|
#define DRAMSIZE 0x00100000
|
|
#else
|
|
#define DRAMORIG 0x08000000
|
|
#define DRAMSIZE (MEMORYSIZE * 0x100000)
|
|
#endif
|
|
|
|
#define IRAMORIG 0x22000000
|
|
#if CONFIG_CPU==S5L8701
|
|
#define IRAMSIZE 176K
|
|
#else
|
|
#define IRAMSIZE 256K
|
|
#endif
|
|
|
|
#define DFULOADADDR (IRAMORIG+0x20000)
|
|
|
|
/* This is not available in all versions of the S5L8700 */
|
|
#define FLASHORIG 0x24000000
|
|
#define FLASHSIZE 1M
|
|
|
|
MEMORY
|
|
{
|
|
DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE
|
|
IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE
|
|
FLASH : ORIGIN = FLASHORIG, LENGTH = FLASHSIZE
|
|
}
|
|
|
|
#if defined(IPOD_NANO2G)
|
|
#define LOAD_AREA IRAM
|
|
#else
|
|
#define NEEDS_INTVECT_COPYING
|
|
#define LOAD_AREA FLASH
|
|
#endif
|
|
|
|
SECTIONS
|
|
{
|
|
#ifdef NEEDS_INTVECT_COPYING
|
|
.intvect : {
|
|
_intvectstart = . ;
|
|
*(.intvect)
|
|
_intvectend = _newstart ;
|
|
} >IRAM AT> LOAD_AREA
|
|
_intvectcopy = LOADADDR(.intvect) ;
|
|
#endif
|
|
|
|
.text : {
|
|
#ifndef NEEDS_INTVECT_COPYING
|
|
*(.intvect)
|
|
#endif
|
|
*(.init.text)
|
|
*(.text*)
|
|
*(.glue_7*)
|
|
} > LOAD_AREA
|
|
|
|
.rodata : {
|
|
*(.rodata*)
|
|
. = ALIGN(0x4);
|
|
} > LOAD_AREA
|
|
|
|
.data : {
|
|
_datastart = . ;
|
|
*(.irodata*)
|
|
*(.icode*)
|
|
*(.idata*)
|
|
*(.data*)
|
|
*(.ncdata*);
|
|
. = ALIGN(0x4);
|
|
_dataend = . ;
|
|
} > IRAM AT> LOAD_AREA
|
|
_datacopy = LOADADDR(.data) ;
|
|
|
|
.stack (NOLOAD) :
|
|
{
|
|
*(.stack)
|
|
_stackbegin = .;
|
|
stackbegin = .;
|
|
. += 0x2000;
|
|
_stackend = .;
|
|
stackend = .;
|
|
_irqstackbegin = .;
|
|
. += 0x400;
|
|
_irqstackend = .;
|
|
_fiqstackbegin = .;
|
|
. += 0x400;
|
|
_fiqstackend = .;
|
|
} > IRAM
|
|
|
|
/* The bss section is too large for IRAM on the Nano 2G, thanks to the FTL.
|
|
We just move it 31MB into the DRAM */
|
|
.bss (NOLOAD) : {
|
|
_edata = .;
|
|
*(.bss*);
|
|
*(.ibss*);
|
|
*(.ncbss*);
|
|
*(COMMON);
|
|
. = ALIGN(0x4);
|
|
_end = .;
|
|
#ifdef IPOD_NANO2G
|
|
} > DRAM
|
|
#else
|
|
} > IRAM
|
|
#endif
|
|
}
|