forked from len0rd/rockbox
S5L8702: Clean up linker script, also add support for S5L8720
Tested on ipod6g (normal + bootloader). This is a part of the large iPod Nano 3G and iPod Nano 4G support patch. Credit: Cástor Muñoz <cmvidal@gmail.com> Change-Id: I64beed48e3d88436b9082d4ae387f39843ab2e20
This commit is contained in:
parent
0fef17206e
commit
06963a5ce4
1 changed files with 6 additions and 23 deletions
|
@ -1,6 +1,7 @@
|
||||||
#define ASM
|
#define ASM
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "cpu.h"
|
#include "cpu.h"
|
||||||
|
#include "crypto-s5l8702.h" /* IM3HDR_SZ */
|
||||||
|
|
||||||
ENTRY(start)
|
ENTRY(start)
|
||||||
#ifdef ROCKBOX_LITTLE_ENDIAN
|
#ifdef ROCKBOX_LITTLE_ENDIAN
|
||||||
|
@ -13,42 +14,25 @@ STARTUP(target/arm/s5l8702/crt0.o)
|
||||||
|
|
||||||
#define MAX_LOADSIZE 8M /* reserved for loading Rockbox binary */
|
#define MAX_LOADSIZE 8M /* reserved for loading Rockbox binary */
|
||||||
|
|
||||||
#ifdef IPOD_NANO2G
|
#if defined(IPOD_6G) || defined(IPOD_NANO3G) || defined(IPOD_NANO4G)
|
||||||
#define DRAMORIG 0x08000000 + ((MEMORYSIZE - 1) * 0x100000)
|
|
||||||
#define DRAMSIZE 0x00100000
|
|
||||||
|
|
||||||
#define IRAMORIG 0x22000000
|
|
||||||
#define IRAMSIZE 256K
|
|
||||||
|
|
||||||
MEMORY
|
|
||||||
{
|
|
||||||
DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE
|
|
||||||
IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE
|
|
||||||
}
|
|
||||||
#define LOAD_AREA IRAM
|
|
||||||
#define VECT_AREA IRAM
|
|
||||||
#define BSS_AREA DRAM
|
|
||||||
|
|
||||||
#elif defined(IPOD_6G)
|
|
||||||
MEMORY
|
MEMORY
|
||||||
{
|
{
|
||||||
DRAM : ORIGIN = DRAM_ORIG, LENGTH = DRAM_SIZE
|
DRAM : ORIGIN = DRAM_ORIG, LENGTH = DRAM_SIZE
|
||||||
IRAM : ORIGIN = IRAM_ORIG, LENGTH = IRAM_SIZE
|
IRAM : ORIGIN = IRAM_ORIG, LENGTH = IRAM_SIZE
|
||||||
|
|
||||||
/* s5l8702 maps address 0 to ROM, IRAM or DRAM */
|
/* s5l8702/s5l8720 maps address 0 to ROM, IRAM or DRAM */
|
||||||
VECT_AREA : ORIGIN = 0, LENGTH = 1K
|
VECT_AREA : ORIGIN = 0, LENGTH = 1K
|
||||||
|
|
||||||
/* IRAM region where loaded IM3 body will be moved and executed,
|
/* IRAM region where loaded IM3 body will be moved and executed,
|
||||||
preserving the loaded IM3 header (0x800 bytes) at IRAM1_ORIG */
|
preserving the loaded IM3 header (0x600 or 0x800 bytes) at IRAM1_ORIG */
|
||||||
MOVE_AREA : ORIGIN = IRAM1_ORIG + 0x800,
|
MOVE_AREA : ORIGIN = IRAM1_ORIG + IM3HDR_SZ,
|
||||||
LENGTH = IRAM1_SIZE - 0x800
|
LENGTH = IRAM1_SIZE - IM3HDR_SZ
|
||||||
|
|
||||||
/* DRAM region for BSS */
|
/* DRAM region for BSS */
|
||||||
BSS_AREA : ORIGIN = DRAM_ORIG + MAX_LOADSIZE,
|
BSS_AREA : ORIGIN = DRAM_ORIG + MAX_LOADSIZE,
|
||||||
LENGTH = DRAM_SIZE - MAX_LOADSIZE - TTB_SIZE
|
LENGTH = DRAM_SIZE - MAX_LOADSIZE - TTB_SIZE
|
||||||
}
|
}
|
||||||
#define LOAD_AREA MOVE_AREA
|
#define LOAD_AREA MOVE_AREA
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#error No target defined!
|
#error No target defined!
|
||||||
#endif
|
#endif
|
||||||
|
@ -56,7 +40,6 @@ MEMORY
|
||||||
|
|
||||||
SECTIONS
|
SECTIONS
|
||||||
{
|
{
|
||||||
_dfuloadaddr = IRAM0_ORIG ;
|
|
||||||
_movestart = LOADADDR(.text) ;
|
_movestart = LOADADDR(.text) ;
|
||||||
_moveend = LOADADDR(.data) + SIZEOF(.data) ;
|
_moveend = LOADADDR(.data) + SIZEOF(.data) ;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue