summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBarry Wardell <rockbox@barrywardell.net>2008-05-01 17:13:33 +0000
committerBarry Wardell <rockbox@barrywardell.net>2008-05-01 17:13:33 +0000
commit93b8a076ec61c92e4fc996fb04bab4e7aa22da10 (patch)
treebbce700344ad60d5b3c5dfd2c2781e1b3a704efd
parenta1fa57fc01232c027e01417180989f36e76367bf (diff)
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
-rw-r--r--firmware/target/arm/ipod/boot.lds22
-rw-r--r--firmware/target/arm/iriver/boot.lds22
-rw-r--r--firmware/target/arm/olympus/boot.lds20
-rw-r--r--firmware/target/arm/sandisk/boot.lds19
4 files changed, 57 insertions, 26 deletions
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
}