From 93b8a076ec61c92e4fc996fb04bab4e7aa22da10 Mon Sep 17 00:00:00 2001 From: Barry Wardell Date: Thu, 1 May 2008 17:13:33 +0000 Subject: Make the linker complain if the bootloader isn't going to fit into IRAM on PP devices. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17298 a1c6a512-1295-4272-9138-f99709370657 --- firmware/target/arm/ipod/boot.lds | 22 +++++++++++++++------- firmware/target/arm/iriver/boot.lds | 22 +++++++++++++++------- firmware/target/arm/olympus/boot.lds | 20 ++++++++++++++------ firmware/target/arm/sandisk/boot.lds | 19 +++++++++++++------ 4 files changed, 57 insertions(+), 26 deletions(-) (limited to 'firmware') diff --git a/firmware/target/arm/ipod/boot.lds b/firmware/target/arm/ipod/boot.lds index 5c80f1fbc3..69a89cd5f5 100644 --- a/firmware/target/arm/ipod/boot.lds +++ b/firmware/target/arm/ipod/boot.lds @@ -29,6 +29,12 @@ STARTUP(target/arm/crt0-pp-bl.o) #define FLASHSIZE 2M #endif +MEMORY +{ + DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE + IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE +} + SECTIONS { . = IRAMORIG; @@ -36,26 +42,28 @@ SECTIONS .text : { *(.init.text) *(.text*) - } + *(.glue_7) + *(.glue_7t) + } > IRAM .data : { *(.icode) *(.irodata) *(.idata) *(.data*) - *(.ncdata*); + *(.ncdata*) + *(.rodata*) _dataend = . ; - } + } > IRAM - .stack : - { + .stack : { *(.stack) _stackbegin = .; stackbegin = .; . += 0x2000; _stackend = .; stackend = .; - } + } > IRAM /* The bss section is too large for IRAM - we just move it 16MB into the DRAM */ @@ -67,5 +75,5 @@ SECTIONS *(.ibss); *(.ncbss*); _end = .; - } + } > DRAM } diff --git a/firmware/target/arm/iriver/boot.lds b/firmware/target/arm/iriver/boot.lds index 77e661f608..ab6a576078 100644 --- a/firmware/target/arm/iriver/boot.lds +++ b/firmware/target/arm/iriver/boot.lds @@ -13,6 +13,12 @@ STARTUP(target/arm/crt0-pp-bl.o) #define FLASHORIG 0x001f0000 #define FLASHSIZE 2M +MEMORY +{ + DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE + IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE +} + SECTIONS { . = IRAMORIG; @@ -20,26 +26,28 @@ SECTIONS .text : { *(.init.text) *(.text*) - } + *(.glue_7) + *(.glue_7t) + } > IRAM .data : { *(.icode) *(.irodata) *(.idata) *(.data*) - *(.ncdata*); + *(.ncdata*) + *(.rodata*) _dataend = . ; - } + } > IRAM - .stack : - { + .stack : { *(.stack) _stackbegin = .; stackbegin = .; . += 0x2000; _stackend = .; stackend = .; - } + } > IRAM /* The bss section is too large for IRAM - we just move it 16MB into the DRAM */ @@ -51,5 +59,5 @@ SECTIONS *(.ibss); *(.ncbss*); _end = .; - } + } > DRAM } diff --git a/firmware/target/arm/olympus/boot.lds b/firmware/target/arm/olympus/boot.lds index 7b86ad29bc..e083aa4a08 100644 --- a/firmware/target/arm/olympus/boot.lds +++ b/firmware/target/arm/olympus/boot.lds @@ -13,6 +13,12 @@ STARTUP(target/arm/crt0-pp-bl.o) #define FLASHORIG 0x001f0000 #define FLASHSIZE 2M +MEMORY +{ + DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE + IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE +} + SECTIONS { . = IRAMORIG; @@ -20,7 +26,9 @@ SECTIONS .text : { *(.init.text) *(.text*) - } + *(.glue_7) + *(.glue_7t) + } > IRAM .data : { *(.icode) @@ -28,18 +36,18 @@ SECTIONS *(.idata) *(.data*) *(.ncdata*) + *(.rodata*) _dataend = . ; - } + } > IRAM - .stack : - { + .stack : { *(.stack) _stackbegin = .; stackbegin = .; . += 0x2000; _stackend = .; stackend = .; - } + } > IRAM /* The bss section is too large for IRAM - we just move it 16MB into the DRAM */ @@ -51,5 +59,5 @@ SECTIONS *(.ibss); *(.ncbss*); _end = .; - } + } > DRAM } diff --git a/firmware/target/arm/sandisk/boot.lds b/firmware/target/arm/sandisk/boot.lds index f829076b12..1eeda06340 100644 --- a/firmware/target/arm/sandisk/boot.lds +++ b/firmware/target/arm/sandisk/boot.lds @@ -15,6 +15,11 @@ STARTUP(target/arm/crt0-pp-bl.o) #define FLASHORIG 0x001f0000 #define FLASHSIZE 2M +MEMORY +{ + DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE + IRAM : ORIGIN = IRAMORIG, LENGTH = IRAMSIZE +} SECTIONS { @@ -23,7 +28,9 @@ SECTIONS .text : { *(.init.text) *(.text*) - } + *(.glue_7) + *(.glue_7t) + } > IRAM .data : { *(.icode) @@ -31,18 +38,18 @@ SECTIONS *(.idata) *(.data*) *(.ncdata*) + *(.rodata*) _dataend = . ; - } + } > IRAM - .stack : - { + .stack : { *(.stack) _stackbegin = .; stackbegin = .; . += 0x2000; _stackend = .; stackend = .; - } + } > IRAM /* The bss section is too large for IRAM - we just move it 16MB into the DRAM */ @@ -54,5 +61,5 @@ SECTIONS *(.ibss); *(.ncbss*); _end = .; - } + } > DRAM } -- cgit v1.2.3