summaryrefslogtreecommitdiff
path: root/firmware/target
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2008-05-05 13:30:29 +0000
committerMichael Sevakis <jethead71@rockbox.org>2008-05-05 13:30:29 +0000
commit0218397cf4f0420a258a8ff6d87cc630cb3bada6 (patch)
treebdbb8dc54258e5aa23ede898e2bca90b8a459206 /firmware/target
parent9a54d9645df4b08789dcf5a7a74e60bf84e407be (diff)
Gigabeat S bootloader: 1) Switch order of .vectors to be contiguous with initialized sections. 2) Clean all caches in main before doing anything else because vector copying counts as self-modifying code. Up to v.00000012.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17381 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target')
-rw-r--r--firmware/target/arm/imx31/boot.lds24
1 files changed, 12 insertions, 12 deletions
diff --git a/firmware/target/arm/imx31/boot.lds b/firmware/target/arm/imx31/boot.lds
index d8bb2fc3d1..a7570c1cf0 100644
--- a/firmware/target/arm/imx31/boot.lds
+++ b/firmware/target/arm/imx31/boot.lds
@@ -56,8 +56,17 @@ SECTIONS
. = ALIGN(0x4);
_dataend = . ;
} > DRAM
+
+ .vectors 0x0 :
+ {
+ _vectorsstart = .;
+ *(.vectors);
+ KEEP(*(.vectors));
+ _vectorsend = .;
+ } AT > DRAM
+ _vectorscopy = LOADADDR(.vectors);
- .stack :
+ .stack (NOLOAD) :
{
*(.stack)
_stackbegin = .;
@@ -67,7 +76,7 @@ SECTIONS
stackend = .;
} > IRAM
- .bss :
+ .bss (NOLOAD) :
{
_edata = .;
*(.bss*);
@@ -75,16 +84,7 @@ SECTIONS
*(COMMON)
_end = .;
} > DRAM
-
- .vectors 0x0 :
- {
- _vectorsstart = .;
- *(.vectors);
- KEEP(*(.vectors));
- _vectorsend = .;
- } AT > DRAM
- _vectorscopy = LOADADDR(.vectors);
-
+
.devbss (NOLOAD) :
{
_devbssdata = .;