2 * vmlinux.lds.S -- master linker script for m68knommu arch
4 * (C) Copyright 2002-2006, Greg Ungerer <gerg@snapgear.com>
6 * This ends up looking compilcated, because of the number of
7 * address variations for ram and rom/flash layouts. The real
8 * work of the linker script is all at the end, and reasonably
12 #include <linux/config.h>
13 #include <asm-generic/vmlinux.lds.h>
16 * Original Palm pilot (same for Xcopilot).
17 * There is really only a rom target for this.
20 #define ROMVEC_START 0x10c00000
21 #define ROMVEC_LENGTH 0x10400
22 #define ROM_START 0x10c10400
23 #define ROM_LENGTH 0xfec00
24 #define ROM_END 0x10d00000
25 #define DATA_ADDR CONFIG_KERNELBASE
29 * Same setup on both the uCsimm and uCdimm.
31 #if defined(CONFIG_UCSIMM) || defined(CONFIG_UCDIMM)
32 #ifdef CONFIG_RAMKERNEL
33 #define ROMVEC_START 0x10c10000
34 #define ROMVEC_LENGTH 0x400
35 #define ROM_START 0x10c10400
36 #define ROM_LENGTH 0x1efc00
37 #define ROM_END 0x10e00000
39 #ifdef CONFIG_ROMKERNEL
40 #define ROMVEC_START 0x10c10000
41 #define ROMVEC_LENGTH 0x400
42 #define ROM_START 0x10c10400
43 #define ROM_LENGTH 0x1efc00
44 #define ROM_END 0x10e00000
46 #ifdef CONFIG_HIMEMKERNEL
47 #define ROMVEC_START 0x00600000
48 #define ROMVEC_LENGTH 0x400
49 #define ROM_START 0x00600400
50 #define ROM_LENGTH 0x1efc00
51 #define ROM_END 0x007f0000
56 #define ROMVEC_START 0x00000000
57 #define ROMVEC_LENGTH 0x404
58 #define ROM_START 0x00000404
59 #define ROM_LENGTH 0x1ff6fc
60 #define ROM_END 0x00200000
63 #if defined(CONFIG_RAMKERNEL)
64 #define RAM_START CONFIG_KERNELBASE
65 #define RAM_LENGTH (CONFIG_RAMBASE + CONFIG_RAMSIZE - CONFIG_KERNELBASE)
71 #if defined(CONFIG_ROMKERNEL) || defined(CONFIG_HIMEMKERNEL)
72 #define RAM_START CONFIG_RAMBASE
73 #define RAM_LENGTH CONFIG_RAMSIZE
89 ram : ORIGIN = RAM_START, LENGTH = RAM_LENGTH
91 romvec : ORIGIN = ROMVEC_START, LENGTH = ROMVEC_LENGTH
92 rom : ORIGIN = ROM_START, LENGTH = ROM_LENGTH
93 erom : ORIGIN = ROM_END, LENGTH = 0
97 jiffies = jiffies_64 + 4;
116 . = ALIGN(16); /* Exception table */
117 __start___ex_table = .;
119 __stop___ex_table = .;
121 *(.rodata) *(.rodata.*)
122 *(__vermagic) /* Kernel version magic */
126 /* Kernel symbol table: Normal symbols */
128 __start___ksymtab = .;
130 __stop___ksymtab = .;
132 /* Kernel symbol table: GPL-only symbols */
133 __start___ksymtab_gpl = .;
135 __stop___ksymtab_gpl = .;
137 /* Kernel symbol table: GPL-future symbols */
138 __start___ksymtab_gpl_future = .;
139 *(__ksymtab_gpl_future)
140 __stop___ksymtab_gpl_future = .;
142 /* Kernel symbol table: Normal symbols */
143 __start___kcrctab = .;
145 __stop___kcrctab = .;
147 /* Kernel symbol table: GPL-only symbols */
148 __start___kcrctab_gpl = .;
150 __stop___kcrctab_gpl = .;
152 /* Kernel symbol table: GPL-future symbols */
153 __start___kcrctab_gpl_future = .;
154 *(__kcrctab_gpl_future)
155 __stop___kcrctab_gpl_future = .;
157 /* Kernel symbol table: strings */
160 /* Built-in module parameters */
197 __initcall_start = .;
206 __con_initcall_start = .;
207 *(.con_initcall.init)
208 __con_initcall_end = .;
209 __security_initcall_start = .;
210 *(.security_initcall.init)
211 __security_initcall_end = .;
213 __initramfs_start = .;