diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
commit | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (patch) | |
tree | 0bba044c4ce775e45a88a51686b5d9f90697ea9d /arch/v850/kernel/vmlinux.lds.S |
Linux-2.6.12-rc2v2.6.12-rc2
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.
Let it rip!
Diffstat (limited to 'arch/v850/kernel/vmlinux.lds.S')
-rw-r--r-- | arch/v850/kernel/vmlinux.lds.S | 285 |
1 files changed, 285 insertions, 0 deletions
diff --git a/arch/v850/kernel/vmlinux.lds.S b/arch/v850/kernel/vmlinux.lds.S new file mode 100644 index 000000000000..bbd3429bcffc --- /dev/null +++ b/arch/v850/kernel/vmlinux.lds.S | |||
@@ -0,0 +1,285 @@ | |||
1 | /* | ||
2 | * arch/v850/vmlinux.lds.S -- kernel linker script for v850 platforms | ||
3 | * | ||
4 | * Copyright (C) 2002,03,04 NEC Electronics Corporation | ||
5 | * Copyright (C) 2002,03,04 Miles Bader <miles@gnu.org> | ||
6 | * | ||
7 | * This file is subject to the terms and conditions of the GNU General | ||
8 | * Public License. See the file COPYING in the main directory of this | ||
9 | * archive for more details. | ||
10 | * | ||
11 | * Written by Miles Bader <miles@gnu.org> | ||
12 | */ | ||
13 | |||
14 | #include <linux/config.h> | ||
15 | #define VMLINUX_SYMBOL(_sym_) _##_sym_ | ||
16 | #include <asm-generic/vmlinux.lds.h> | ||
17 | |||
18 | /* For most platforms, this will define useful things like RAM addr/size. */ | ||
19 | #include <asm/machdep.h> | ||
20 | |||
21 | |||
22 | /* The following macros contain the usual definitions for various data areas. | ||
23 | The prefix `RAMK_' is used to indicate macros suitable for kernels loaded | ||
24 | into RAM, and similarly `ROMK_' for ROM-resident kernels. Note that all | ||
25 | symbols are prefixed with an extra `_' for compatibility with the v850 | ||
26 | toolchain. */ | ||
27 | |||
28 | |||
29 | /* Interrupt vectors. */ | ||
30 | #define INTV_CONTENTS \ | ||
31 | . = ALIGN (0x10) ; \ | ||
32 | __intv_start = . ; \ | ||
33 | *(.intv.reset) /* Reset vector */ \ | ||
34 | . = __intv_start + 0x10 ; \ | ||
35 | *(.intv.common) /* Vectors common to all v850e proc */\ | ||
36 | . = __intv_start + 0x80 ; \ | ||
37 | *(.intv.mach) /* Machine-specific int. vectors. */ \ | ||
38 | __intv_end = . ; | ||
39 | |||
40 | #define RODATA_CONTENTS \ | ||
41 | . = ALIGN (16) ; \ | ||
42 | *(.rodata) *(.rodata.*) \ | ||
43 | *(__vermagic) /* Kernel version magic */ \ | ||
44 | *(.rodata1) \ | ||
45 | /* Kernel symbol table: Normal symbols */ \ | ||
46 | ___start___ksymtab = .; \ | ||
47 | *(__ksymtab) \ | ||
48 | ___stop___ksymtab = .; \ | ||
49 | /* Kernel symbol table: GPL-only symbols */ \ | ||
50 | ___start___ksymtab_gpl = .; \ | ||
51 | *(__ksymtab_gpl) \ | ||
52 | ___stop___ksymtab_gpl = .; \ | ||
53 | /* Kernel symbol table: strings */ \ | ||
54 | *(__ksymtab_strings) \ | ||
55 | /* Kernel symbol table: Normal symbols */ \ | ||
56 | ___start___kcrctab = .; \ | ||
57 | *(__kcrctab) \ | ||
58 | ___stop___kcrctab = .; \ | ||
59 | /* Kernel symbol table: GPL-only symbols */ \ | ||
60 | ___start___kcrctab_gpl = .; \ | ||
61 | *(__kcrctab_gpl) \ | ||
62 | ___stop___kcrctab_gpl = .; \ | ||
63 | /* Built-in module parameters */ \ | ||
64 | ___start___param = .; \ | ||
65 | *(__param) \ | ||
66 | ___stop___param = .; | ||
67 | |||
68 | |||
69 | /* Kernel text segment, and some constant data areas. */ | ||
70 | #define TEXT_CONTENTS \ | ||
71 | __stext = . ; \ | ||
72 | *(.text) \ | ||
73 | SCHED_TEXT \ | ||
74 | *(.exit.text) /* 2.5 convention */ \ | ||
75 | *(.text.exit) /* 2.4 convention */ \ | ||
76 | *(.text.lock) \ | ||
77 | *(.exitcall.exit) \ | ||
78 | __real_etext = . ; /* There may be data after here. */ \ | ||
79 | RODATA_CONTENTS \ | ||
80 | . = ALIGN (4) ; \ | ||
81 | *(.call_table_data) \ | ||
82 | *(.call_table_text) \ | ||
83 | . = ALIGN (16) ; /* Exception table. */ \ | ||
84 | ___start___ex_table = . ; \ | ||
85 | *(__ex_table) \ | ||
86 | ___stop___ex_table = . ; \ | ||
87 | . = ALIGN (4) ; \ | ||
88 | __etext = . ; | ||
89 | |||
90 | /* Kernel data segment. */ | ||
91 | #define DATA_CONTENTS \ | ||
92 | __sdata = . ; \ | ||
93 | *(.data) \ | ||
94 | *(.exit.data) /* 2.5 convention */ \ | ||
95 | *(.data.exit) /* 2.4 convention */ \ | ||
96 | . = ALIGN (16) ; \ | ||
97 | *(.data.cacheline_aligned) \ | ||
98 | . = ALIGN (0x2000) ; \ | ||
99 | *(.data.init_task) \ | ||
100 | . = ALIGN (0x2000) ; \ | ||
101 | __edata = . ; | ||
102 | |||
103 | /* Kernel BSS segment. */ | ||
104 | #define BSS_CONTENTS \ | ||
105 | __sbss = . ; \ | ||
106 | *(.bss) \ | ||
107 | *(COMMON) \ | ||
108 | . = ALIGN (4) ; \ | ||
109 | __init_stack_end = . ; \ | ||
110 | __ebss = . ; | ||
111 | |||
112 | /* `initcall' tables. */ | ||
113 | #define INITCALL_CONTENTS \ | ||
114 | . = ALIGN (16) ; \ | ||
115 | ___setup_start = . ; \ | ||
116 | *(.init.setup) /* 2.5 convention */ \ | ||
117 | *(.setup.init) /* 2.4 convention */ \ | ||
118 | ___setup_end = . ; \ | ||
119 | ___initcall_start = . ; \ | ||
120 | *(.initcall.init) \ | ||
121 | *(.initcall1.init) \ | ||
122 | *(.initcall2.init) \ | ||
123 | *(.initcall3.init) \ | ||
124 | *(.initcall4.init) \ | ||
125 | *(.initcall5.init) \ | ||
126 | *(.initcall6.init) \ | ||
127 | *(.initcall7.init) \ | ||
128 | . = ALIGN (4) ; \ | ||
129 | ___initcall_end = . ; \ | ||
130 | ___con_initcall_start = .; \ | ||
131 | *(.con_initcall.init) \ | ||
132 | ___con_initcall_end = .; | ||
133 | |||
134 | /* Contents of `init' section for a kernel that's loaded into RAM. */ | ||
135 | #define RAMK_INIT_CONTENTS \ | ||
136 | RAMK_INIT_CONTENTS_NO_END \ | ||
137 | __init_end = . ; | ||
138 | /* Same as RAMK_INIT_CONTENTS, but doesn't define the `__init_end' symbol. */ | ||
139 | #define RAMK_INIT_CONTENTS_NO_END \ | ||
140 | . = ALIGN (4096) ; \ | ||
141 | __init_start = . ; \ | ||
142 | __sinittext = .; \ | ||
143 | *(.init.text) /* 2.5 convention */ \ | ||
144 | __einittext = .; \ | ||
145 | *(.init.data) \ | ||
146 | *(.text.init) /* 2.4 convention */ \ | ||
147 | *(.data.init) \ | ||
148 | INITCALL_CONTENTS \ | ||
149 | INITRAMFS_CONTENTS | ||
150 | |||
151 | /* The contents of `init' section for a ROM-resident kernel which | ||
152 | should go into RAM. */ | ||
153 | #define ROMK_INIT_RAM_CONTENTS \ | ||
154 | . = ALIGN (4096) ; \ | ||
155 | __init_start = . ; \ | ||
156 | *(.init.data) /* 2.5 convention */ \ | ||
157 | *(.data.init) /* 2.4 convention */ \ | ||
158 | __init_end = . ; \ | ||
159 | . = ALIGN (4096) ; | ||
160 | |||
161 | /* The contents of `init' section for a ROM-resident kernel which | ||
162 | should go into ROM. */ | ||
163 | #define ROMK_INIT_ROM_CONTENTS \ | ||
164 | _sinittext = .; \ | ||
165 | *(.init.text) /* 2.5 convention */ \ | ||
166 | _einittext = .; \ | ||
167 | *(.text.init) /* 2.4 convention */ \ | ||
168 | INITCALL_CONTENTS \ | ||
169 | INITRAMFS_CONTENTS | ||
170 | |||
171 | /* A root filesystem image, for kernels with an embedded root filesystem. */ | ||
172 | #define ROOT_FS_CONTENTS \ | ||
173 | __root_fs_image_start = . ; \ | ||
174 | *(.root) \ | ||
175 | __root_fs_image_end = . ; | ||
176 | /* The initramfs archive. */ | ||
177 | #define INITRAMFS_CONTENTS \ | ||
178 | . = ALIGN (4) ; \ | ||
179 | ___initramfs_start = . ; \ | ||
180 | *(.init.ramfs) \ | ||
181 | ___initramfs_end = . ; | ||
182 | /* Where the initial bootmap (bitmap for the boot-time memory allocator) | ||
183 | should be place. */ | ||
184 | #define BOOTMAP_CONTENTS \ | ||
185 | . = ALIGN (4096) ; \ | ||
186 | __bootmap = . ; \ | ||
187 | . = . + 4096 ; /* enough for 128MB. */ | ||
188 | |||
189 | /* The contents of a `typical' kram area for a kernel in RAM. */ | ||
190 | #define RAMK_KRAM_CONTENTS \ | ||
191 | __kram_start = . ; \ | ||
192 | TEXT_CONTENTS \ | ||
193 | DATA_CONTENTS \ | ||
194 | BSS_CONTENTS \ | ||
195 | RAMK_INIT_CONTENTS \ | ||
196 | __kram_end = . ; \ | ||
197 | BOOTMAP_CONTENTS | ||
198 | |||
199 | |||
200 | /* Define output sections normally used for a ROM-resident kernel. | ||
201 | ROM and RAM should be appropriate memory areas to use for kernel | ||
202 | ROM and RAM data. This assumes that ROM starts at 0 (and thus can | ||
203 | hold the interrupt vectors). */ | ||
204 | #define ROMK_SECTIONS(ROM, RAM) \ | ||
205 | .rom : { \ | ||
206 | INTV_CONTENTS \ | ||
207 | TEXT_CONTENTS \ | ||
208 | ROMK_INIT_ROM_CONTENTS \ | ||
209 | ROOT_FS_CONTENTS \ | ||
210 | } > ROM \ | ||
211 | \ | ||
212 | __rom_copy_src_start = . ; \ | ||
213 | \ | ||
214 | .data : { \ | ||
215 | __kram_start = . ; \ | ||
216 | __rom_copy_dst_start = . ; \ | ||
217 | DATA_CONTENTS \ | ||
218 | ROMK_INIT_RAM_CONTENTS \ | ||
219 | __rom_copy_dst_end = . ; \ | ||
220 | } > RAM AT> ROM \ | ||
221 | \ | ||
222 | .bss ALIGN (4) : { \ | ||
223 | BSS_CONTENTS \ | ||
224 | __kram_end = . ; \ | ||
225 | BOOTMAP_CONTENTS \ | ||
226 | } > RAM | ||
227 | |||
228 | |||
229 | /* The 32-bit variable `jiffies' is just the lower 32-bits of `jiffies_64'. */ | ||
230 | _jiffies = _jiffies_64 ; | ||
231 | |||
232 | |||
233 | /* Include an appropriate platform-dependent linker-script (which | ||
234 | usually should use the above macros to do most of the work). */ | ||
235 | |||
236 | #ifdef CONFIG_V850E_SIM | ||
237 | # include "sim.ld" | ||
238 | #endif | ||
239 | |||
240 | #ifdef CONFIG_V850E2_SIM85E2 | ||
241 | # include "sim85e2.ld" | ||
242 | #endif | ||
243 | |||
244 | #ifdef CONFIG_V850E2_FPGA85E2C | ||
245 | # include "fpga85e2c.ld" | ||
246 | #endif | ||
247 | |||
248 | #ifdef CONFIG_V850E2_ANNA | ||
249 | # ifdef CONFIG_ROM_KERNEL | ||
250 | # include "anna-rom.ld" | ||
251 | # else | ||
252 | # include "anna.ld" | ||
253 | # endif | ||
254 | #endif | ||
255 | |||
256 | #ifdef CONFIG_V850E_AS85EP1 | ||
257 | # ifdef CONFIG_ROM_KERNEL | ||
258 | # include "as85ep1-rom.ld" | ||
259 | # else | ||
260 | # include "as85ep1.ld" | ||
261 | # endif | ||
262 | #endif | ||
263 | |||
264 | #ifdef CONFIG_RTE_CB_MA1 | ||
265 | # ifdef CONFIG_ROM_KERNEL | ||
266 | # include "rte_ma1_cb-rom.ld" | ||
267 | # else | ||
268 | # include "rte_ma1_cb.ld" | ||
269 | # endif | ||
270 | #endif | ||
271 | |||
272 | #ifdef CONFIG_RTE_CB_NB85E | ||
273 | # ifdef CONFIG_ROM_KERNEL | ||
274 | # include "rte_nb85e_cb-rom.ld" | ||
275 | # elif defined(CONFIG_RTE_CB_MULTI) | ||
276 | # include "rte_nb85e_cb-multi.ld" | ||
277 | # else | ||
278 | # include "rte_nb85e_cb.ld" | ||
279 | # endif | ||
280 | #endif | ||
281 | |||
282 | #ifdef CONFIG_RTE_CB_ME2 | ||
283 | # include "rte_me2_cb.ld" | ||
284 | #endif | ||
285 | |||