diff options
Diffstat (limited to 'arch/m68knommu/kernel')
-rw-r--r-- | arch/m68knommu/kernel/vmlinux.lds.S | 160 |
1 files changed, 6 insertions, 154 deletions
diff --git a/arch/m68knommu/kernel/vmlinux.lds.S b/arch/m68knommu/kernel/vmlinux.lds.S index a331cc90797c..6a2f0c693254 100644 --- a/arch/m68knommu/kernel/vmlinux.lds.S +++ b/arch/m68knommu/kernel/vmlinux.lds.S | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * vmlinux.lds.S -- master linker script for m68knommu arch | 2 | * vmlinux.lds.S -- master linker script for m68knommu arch |
3 | * | 3 | * |
4 | * (C) Copyright 2002-2004, Greg Ungerer <gerg@snapgear.com> | 4 | * (C) Copyright 2002-2006, Greg Ungerer <gerg@snapgear.com> |
5 | * | 5 | * |
6 | * This ends up looking compilcated, because of the number of | 6 | * This ends up looking compilcated, because of the number of |
7 | * address variations for ram and rom/flash layouts. The real | 7 | * address variations for ram and rom/flash layouts. The real |
@@ -22,13 +22,7 @@ | |||
22 | #define ROM_START 0x10c10400 | 22 | #define ROM_START 0x10c10400 |
23 | #define ROM_LENGTH 0xfec00 | 23 | #define ROM_LENGTH 0xfec00 |
24 | #define ROM_END 0x10d00000 | 24 | #define ROM_END 0x10d00000 |
25 | #define RAMVEC_START 0x00000000 | 25 | #define DATA_ADDR CONFIG_KERNELBASE |
26 | #define RAMVEC_LENGTH 0x400 | ||
27 | #define RAM_START 0x10000400 | ||
28 | #define RAM_LENGTH 0xffc00 | ||
29 | #define RAM_END 0x10100000 | ||
30 | #define _ramend _ram_end_notused | ||
31 | #define DATA_ADDR RAM_START | ||
32 | #endif | 26 | #endif |
33 | 27 | ||
34 | /* | 28 | /* |
@@ -41,11 +35,6 @@ | |||
41 | #define ROM_START 0x10c10400 | 35 | #define ROM_START 0x10c10400 |
42 | #define ROM_LENGTH 0x1efc00 | 36 | #define ROM_LENGTH 0x1efc00 |
43 | #define ROM_END 0x10e00000 | 37 | #define ROM_END 0x10e00000 |
44 | #define RAMVEC_START 0x00000000 | ||
45 | #define RAMVEC_LENGTH 0x400 | ||
46 | #define RAM_START 0x00020400 | ||
47 | #define RAM_LENGTH 0x7dfc00 | ||
48 | #define RAM_END 0x00800000 | ||
49 | #endif | 38 | #endif |
50 | #ifdef CONFIG_ROMKERNEL | 39 | #ifdef CONFIG_ROMKERNEL |
51 | #define ROMVEC_START 0x10c10000 | 40 | #define ROMVEC_START 0x10c10000 |
@@ -53,11 +42,6 @@ | |||
53 | #define ROM_START 0x10c10400 | 42 | #define ROM_START 0x10c10400 |
54 | #define ROM_LENGTH 0x1efc00 | 43 | #define ROM_LENGTH 0x1efc00 |
55 | #define ROM_END 0x10e00000 | 44 | #define ROM_END 0x10e00000 |
56 | #define RAMVEC_START 0x00000000 | ||
57 | #define RAMVEC_LENGTH 0x400 | ||
58 | #define RAM_START 0x00020000 | ||
59 | #define RAM_LENGTH 0x600000 | ||
60 | #define RAM_END 0x00800000 | ||
61 | #endif | 45 | #endif |
62 | #ifdef CONFIG_HIMEMKERNEL | 46 | #ifdef CONFIG_HIMEMKERNEL |
63 | #define ROMVEC_START 0x00600000 | 47 | #define ROMVEC_START 0x00600000 |
@@ -65,141 +49,28 @@ | |||
65 | #define ROM_START 0x00600400 | 49 | #define ROM_START 0x00600400 |
66 | #define ROM_LENGTH 0x1efc00 | 50 | #define ROM_LENGTH 0x1efc00 |
67 | #define ROM_END 0x007f0000 | 51 | #define ROM_END 0x007f0000 |
68 | #define RAMVEC_START 0x00000000 | ||
69 | #define RAMVEC_LENGTH 0x400 | ||
70 | #define RAM_START 0x00020000 | ||
71 | #define RAM_LENGTH 0x5e0000 | ||
72 | #define RAM_END 0x00600000 | ||
73 | #endif | 52 | #endif |
74 | #endif | 53 | #endif |
75 | 54 | ||
76 | #ifdef CONFIG_DRAGEN2 | ||
77 | #define RAM_START 0x10000 | ||
78 | #define RAM_LENGTH 0x7f0000 | ||
79 | #endif | ||
80 | |||
81 | #ifdef CONFIG_UCQUICC | 55 | #ifdef CONFIG_UCQUICC |
82 | #define ROMVEC_START 0x00000000 | 56 | #define ROMVEC_START 0x00000000 |
83 | #define ROMVEC_LENGTH 0x404 | 57 | #define ROMVEC_LENGTH 0x404 |
84 | #define ROM_START 0x00000404 | 58 | #define ROM_START 0x00000404 |
85 | #define ROM_LENGTH 0x1ff6fc | 59 | #define ROM_LENGTH 0x1ff6fc |
86 | #define ROM_END 0x00200000 | 60 | #define ROM_END 0x00200000 |
87 | #define RAMVEC_START 0x00200000 | ||
88 | #define RAMVEC_LENGTH 0x404 | ||
89 | #define RAM_START 0x00200404 | ||
90 | #define RAM_LENGTH 0x1ff6fc | ||
91 | #define RAM_END 0x00400000 | ||
92 | #endif | ||
93 | |||
94 | /* | ||
95 | * The standard Arnewsh 5206 board only has 1MiB of ram. Not normally | ||
96 | * enough to be useful. Assume the user has fitted something larger, | ||
97 | * at least 4MiB in size. No point in not letting the kernel completely | ||
98 | * link, it will be obvious if it is too big when they go to load it. | ||
99 | */ | ||
100 | #if defined(CONFIG_ARN5206) | ||
101 | #define RAM_START 0x10000 | ||
102 | #define RAM_LENGTH 0x3f0000 | ||
103 | #endif | ||
104 | |||
105 | /* | ||
106 | * The Motorola 5206eLITE board only has 1MiB of static RAM. | ||
107 | */ | ||
108 | #if defined(CONFIG_ELITE) | ||
109 | #define RAM_START 0x30020000 | ||
110 | #define RAM_LENGTH 0xe0000 | ||
111 | #endif | ||
112 | |||
113 | /* | ||
114 | * All the Motorola eval boards have the same basic arrangement. | ||
115 | * The end of RAM will vary depending on how much ram is fitted, | ||
116 | * but this isn't important here, we assume at least 4MiB. | ||
117 | */ | ||
118 | #if defined(CONFIG_M5206eC3) || defined(CONFIG_M5249C3) || \ | ||
119 | defined(CONFIG_M5272C3) || defined(CONFIG_M5307C3) || \ | ||
120 | defined(CONFIG_ARN5307) || defined(CONFIG_M5407C3) || \ | ||
121 | defined(CONFIG_M5271EVB) || defined(CONFIG_M5275EVB) || \ | ||
122 | defined(CONFIG_M5235EVB) | ||
123 | #define RAM_START 0x20000 | ||
124 | #define RAM_LENGTH 0x3e0000 | ||
125 | #endif | ||
126 | |||
127 | /* | ||
128 | * The Freescale 5208EVB board has 32MB of RAM. | ||
129 | */ | ||
130 | #if defined(CONFIG_M5208EVB) | ||
131 | #define RAM_START 0x40020000 | ||
132 | #define RAM_LENGTH 0x01fe0000 | ||
133 | #endif | ||
134 | |||
135 | /* | ||
136 | * The senTec COBRA5272 board has nearly the same memory layout as | ||
137 | * the M5272C3. We assume 16MiB ram. | ||
138 | */ | ||
139 | #if defined(CONFIG_COBRA5272) | ||
140 | #define RAM_START 0x20000 | ||
141 | #define RAM_LENGTH 0xfe0000 | ||
142 | #endif | ||
143 | |||
144 | #if defined(CONFIG_M5282EVB) | ||
145 | #define RAM_START 0x10000 | ||
146 | #define RAM_LENGTH 0x3f0000 | ||
147 | #endif | ||
148 | |||
149 | /* | ||
150 | * The senTec COBRA5282 board has the same memory layout as the M5282EVB. | ||
151 | */ | ||
152 | #if defined(CONFIG_COBRA5282) | ||
153 | #define RAM_START 0x10000 | ||
154 | #define RAM_LENGTH 0x3f0000 | ||
155 | #endif | ||
156 | |||
157 | |||
158 | /* | ||
159 | * The EMAC SoM-5282EM module. | ||
160 | */ | ||
161 | #if defined(CONFIG_SOM5282EM) | ||
162 | #define RAM_START 0x10000 | ||
163 | #define RAM_LENGTH 0xff0000 | ||
164 | #endif | ||
165 | |||
166 | |||
167 | /* | ||
168 | * These flash boot boards use all of ram for operation. Again the | ||
169 | * actual memory size is not important here, assume at least 4MiB. | ||
170 | * They currently have no support for running in flash. | ||
171 | */ | ||
172 | #if defined(CONFIG_NETtel) || defined(CONFIG_eLIA) || \ | ||
173 | defined(CONFIG_DISKtel) || defined(CONFIG_SECUREEDGEMP3) || \ | ||
174 | defined(CONFIG_HW_FEITH) | ||
175 | #define RAM_START 0x400 | ||
176 | #define RAM_LENGTH 0x3ffc00 | ||
177 | #endif | ||
178 | |||
179 | /* | ||
180 | * Sneha Boards mimimun memory | ||
181 | * The end of RAM will vary depending on how much ram is fitted, | ||
182 | * but this isn't important here, we assume at least 4MiB. | ||
183 | */ | ||
184 | #if defined(CONFIG_CPU16B) | ||
185 | #define RAM_START 0x20000 | ||
186 | #define RAM_LENGTH 0x3e0000 | ||
187 | #endif | ||
188 | |||
189 | #if defined(CONFIG_MOD5272) | ||
190 | #define RAM_START 0x02000000 | ||
191 | #define RAM_LENGTH 0x00800000 | ||
192 | #define RAMVEC_START 0x20000000 | ||
193 | #define RAMVEC_LENGTH 0x00000400 | ||
194 | #endif | 61 | #endif |
195 | 62 | ||
196 | #if defined(CONFIG_RAMKERNEL) | 63 | #if defined(CONFIG_RAMKERNEL) |
64 | #define RAM_START CONFIG_KERNELBASE | ||
65 | #define RAM_LENGTH (CONFIG_RAMBASE + CONFIG_RAMSIZE - CONFIG_KERNELBASE) | ||
197 | #define TEXT ram | 66 | #define TEXT ram |
198 | #define DATA ram | 67 | #define DATA ram |
199 | #define INIT ram | 68 | #define INIT ram |
200 | #define BSS ram | 69 | #define BSS ram |
201 | #endif | 70 | #endif |
202 | #if defined(CONFIG_ROMKERNEL) || defined(CONFIG_HIMEMKERNEL) | 71 | #if defined(CONFIG_ROMKERNEL) || defined(CONFIG_HIMEMKERNEL) |
72 | #define RAM_START CONFIG_RAMBASE | ||
73 | #define RAM_LENGTH CONFIG_RAMSIZE | ||
203 | #define TEXT rom | 74 | #define TEXT rom |
204 | #define DATA ram | 75 | #define DATA ram |
205 | #define INIT ram | 76 | #define INIT ram |
@@ -215,13 +86,7 @@ OUTPUT_ARCH(m68k) | |||
215 | ENTRY(_start) | 86 | ENTRY(_start) |
216 | 87 | ||
217 | MEMORY { | 88 | MEMORY { |
218 | #ifdef RAMVEC_START | ||
219 | ramvec : ORIGIN = RAMVEC_START, LENGTH = RAMVEC_LENGTH | ||
220 | #endif | ||
221 | ram : ORIGIN = RAM_START, LENGTH = RAM_LENGTH | 89 | ram : ORIGIN = RAM_START, LENGTH = RAM_LENGTH |
222 | #ifdef RAM_END | ||
223 | eram : ORIGIN = RAM_END, LENGTH = 0 | ||
224 | #endif | ||
225 | #ifdef ROM_START | 90 | #ifdef ROM_START |
226 | romvec : ORIGIN = ROMVEC_START, LENGTH = ROMVEC_LENGTH | 91 | romvec : ORIGIN = ROMVEC_START, LENGTH = ROMVEC_LENGTH |
227 | rom : ORIGIN = ROM_START, LENGTH = ROM_LENGTH | 92 | rom : ORIGIN = ROM_START, LENGTH = ROM_LENGTH |
@@ -308,12 +173,6 @@ SECTIONS { | |||
308 | __rom_end = . ; | 173 | __rom_end = . ; |
309 | } > erom | 174 | } > erom |
310 | #endif | 175 | #endif |
311 | #ifdef RAMVEC_START | ||
312 | . = RAMVEC_START ; | ||
313 | .ramvec : { | ||
314 | __ramvec = .; | ||
315 | } > ramvec | ||
316 | #endif | ||
317 | 176 | ||
318 | .data DATA_ADDR : { | 177 | .data DATA_ADDR : { |
319 | . = ALIGN(4); | 178 | . = ALIGN(4); |
@@ -373,12 +232,5 @@ SECTIONS { | |||
373 | _ebss = . ; | 232 | _ebss = . ; |
374 | } > BSS | 233 | } > BSS |
375 | 234 | ||
376 | #ifdef RAM_END | ||
377 | . = RAM_END ; | ||
378 | .eram : { | ||
379 | __ramend = . ; | ||
380 | _ramend = . ; | ||
381 | } > eram | ||
382 | #endif | ||
383 | } | 235 | } |
384 | 236 | ||