summaryrefslogtreecommitdiff
path: root/firmware/target/coldfire/iriver
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2009-02-20 02:33:40 +0000
committerMichael Sevakis <jethead71@rockbox.org>2009-02-20 02:33:40 +0000
commitec67912b638e0fae3cae7b4182d23db6d36c5135 (patch)
tree8101f45d02947a828d20174a45d1a6d19fafa3b2 /firmware/target/coldfire/iriver
parent07ae1e4fb9a1fd9d6ce9c48c5300b53e87303937 (diff)
downloadrockbox-ec67912b638e0fae3cae7b4182d23db6d36c5135.tar.gz
rockbox-ec67912b638e0fae3cae7b4182d23db6d36c5135.zip
Reclaim .iram areas in DRAM by overlapping their load addresses with the uninitialized data sections. I did what I could test out-- not any flash image linker scripts or other target processors. Move any .iram copies in crt0.S's to be the first operation even if not _strictly_ necessary to be emphatic (aka. 'beware').
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20061 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/coldfire/iriver')
-rw-r--r--firmware/target/coldfire/iriver/app.lds14
1 files changed, 8 insertions, 6 deletions
diff --git a/firmware/target/coldfire/iriver/app.lds b/firmware/target/coldfire/iriver/app.lds
index ae21ecd9de..d087f997c8 100644
--- a/firmware/target/coldfire/iriver/app.lds
+++ b/firmware/target/coldfire/iriver/app.lds
@@ -90,6 +90,7 @@ SECTIONS
90 } > IRAM AT> DRAM 90 } > IRAM AT> DRAM
91 91
92 _iramcopy = LOADADDR(.iram); 92 _iramcopy = LOADADDR(.iram);
93 _noloaddram = LOADADDR(.iram);
93 94
94 .ibss (NOLOAD) : 95 .ibss (NOLOAD) :
95 { 96 {
@@ -99,7 +100,7 @@ SECTIONS
99 _iend = .; 100 _iend = .;
100 } > IRAM 101 } > IRAM
101 102
102 .stack : 103 .stack (NOLOAD) :
103 { 104 {
104 *(.stack) 105 *(.stack)
105 stackbegin = .; 106 stackbegin = .;
@@ -107,7 +108,7 @@ SECTIONS
107 stackend = .; 108 stackend = .;
108 } > IRAM 109 } > IRAM
109 110
110 .bss ADDR(.data) + SIZEOF(.data) + SIZEOF(.iram): 111 .bss _noloaddram (NOLOAD) :
111 { 112 {
112 _edata = .; 113 _edata = .;
113 *(.bss*) 114 *(.bss*)
@@ -116,25 +117,26 @@ SECTIONS
116 _end = .; 117 _end = .;
117 } > DRAM 118 } > DRAM
118 119
119 .audiobuf ALIGN(4) : 120 .audiobuf (NOLOAD) :
120 { 121 {
122 . = ALIGN(4);
121 _audiobuffer = .; 123 _audiobuffer = .;
122 audiobuffer = .; 124 audiobuffer = .;
123 } > DRAM 125 } > DRAM
124 126
125 .audiobufend ENDAUDIOADDR: 127 .audiobufend ENDAUDIOADDR (NOLOAD) :
126 { 128 {
127 audiobufend = .; 129 audiobufend = .;
128 _audiobufend = .; 130 _audiobufend = .;
129 } > DRAM 131 } > DRAM
130 132
131 .codec ENDAUDIOADDR: 133 .codec ENDAUDIOADDR (NOLOAD) :
132 { 134 {
133 codecbuf = .; 135 codecbuf = .;
134 _codecbuf = .; 136 _codecbuf = .;
135 } 137 }
136 138
137 .plugin ENDADDR: 139 .plugin ENDADDR (NOLOAD) :
138 { 140 {
139 _pluginbuf = .; 141 _pluginbuf = .;
140 pluginbuf = .; 142 pluginbuf = .;