summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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
}