]> bbs.cooldavid.org Git - net-next-2.6.git/blame - arch/m68knommu/kernel/vmlinux.lds.S
Merge branch 'for-rmk' of git://git.pengutronix.de/git/imx/linux-2.6
[net-next-2.6.git] / arch / m68knommu / kernel / vmlinux.lds.S
CommitLineData
1da177e4
LT
1/*
2 * vmlinux.lds.S -- master linker script for m68knommu arch
3 *
73e2fba8 4 * (C) Copyright 2002-2006, Greg Ungerer <gerg@snapgear.com>
1da177e4 5 *
1c952af5
GU
6 * This linker script is equiped to build either ROM loaded or RAM
7 * run kernels.
1da177e4
LT
8 */
9
1da177e4 10#include <asm-generic/vmlinux.lds.h>
f4bed4fb 11#include <asm/page.h>
49612a5f 12#include <asm/thread_info.h>
1da177e4 13
1da177e4 14#if defined(CONFIG_RAMKERNEL)
73e2fba8
GU
15#define RAM_START CONFIG_KERNELBASE
16#define RAM_LENGTH (CONFIG_RAMBASE + CONFIG_RAMSIZE - CONFIG_KERNELBASE)
1da177e4
LT
17#define TEXT ram
18#define DATA ram
19#define INIT ram
10f204e5 20#define BSSS ram
1da177e4
LT
21#endif
22#if defined(CONFIG_ROMKERNEL) || defined(CONFIG_HIMEMKERNEL)
73e2fba8
GU
23#define RAM_START CONFIG_RAMBASE
24#define RAM_LENGTH CONFIG_RAMSIZE
1c952af5
GU
25#define ROMVEC_START CONFIG_ROMVEC
26#define ROMVEC_LENGTH CONFIG_ROMVECSIZE
27#define ROM_START CONFIG_ROMSTART
28#define ROM_LENGTH CONFIG_ROMSIZE
1da177e4
LT
29#define TEXT rom
30#define DATA ram
31#define INIT ram
10f204e5 32#define BSSS ram
1da177e4
LT
33#endif
34
35#ifndef DATA_ADDR
36#define DATA_ADDR
37#endif
38
39
40OUTPUT_ARCH(m68k)
41ENTRY(_start)
42
43MEMORY {
1da177e4 44 ram : ORIGIN = RAM_START, LENGTH = RAM_LENGTH
1da177e4
LT
45#ifdef ROM_START
46 romvec : ORIGIN = ROMVEC_START, LENGTH = ROMVEC_LENGTH
47 rom : ORIGIN = ROM_START, LENGTH = ROM_LENGTH
1da177e4
LT
48#endif
49}
50
51jiffies = jiffies_64 + 4;
52
53SECTIONS {
54
55#ifdef ROMVEC_START
56 . = ROMVEC_START ;
57 .romvec : {
58 __rom_start = . ;
59 _romvec = .;
2c31c341 60 *(.data..initvect)
1da177e4
LT
61 } > romvec
62#endif
63
64 .text : {
fd593d12 65 _text = .;
1da177e4 66 _stext = . ;
9b0e7410 67 HEAD_TEXT
7664709b 68 TEXT_TEXT
1da177e4 69 SCHED_TEXT
779125c2 70 LOCK_TEXT
75ddb0e8 71 *(.text..lock)
1da177e4
LT
72
73 . = ALIGN(16); /* Exception table */
74 __start___ex_table = .;
75 *(__ex_table)
76 __stop___ex_table = .;
77
78 *(.rodata) *(.rodata.*)
79 *(__vermagic) /* Kernel version magic */
779125c2 80 *(__markers_strings)
1da177e4
LT
81 *(.rodata1)
82 *(.rodata.str1.1)
83
84 /* Kernel symbol table: Normal symbols */
85 . = ALIGN(4);
86 __start___ksymtab = .;
87 *(__ksymtab)
88 __stop___ksymtab = .;
89
90 /* Kernel symbol table: GPL-only symbols */
91 __start___ksymtab_gpl = .;
92 *(__ksymtab_gpl)
93 __stop___ksymtab_gpl = .;
94
56591b99
GU
95 /* Kernel symbol table: Normal unused symbols */
96 __start___ksymtab_unused = .;
97 *(__ksymtab_unused)
98 __stop___ksymtab_unused = .;
99
100 /* Kernel symbol table: GPL-only unused symbols */
101 __start___ksymtab_unused_gpl = .;
102 *(__ksymtab_unused_gpl)
103 __stop___ksymtab_unused_gpl = .;
104
9f28bb7e
GKH
105 /* Kernel symbol table: GPL-future symbols */
106 __start___ksymtab_gpl_future = .;
107 *(__ksymtab_gpl_future)
108 __stop___ksymtab_gpl_future = .;
109
1da177e4
LT
110 /* Kernel symbol table: Normal symbols */
111 __start___kcrctab = .;
112 *(__kcrctab)
113 __stop___kcrctab = .;
114
115 /* Kernel symbol table: GPL-only symbols */
116 __start___kcrctab_gpl = .;
117 *(__kcrctab_gpl)
118 __stop___kcrctab_gpl = .;
119
f38c8431
GU
120 /* Kernel symbol table: Normal unused symbols */
121 __start___kcrctab_unused = .;
122 *(__kcrctab_unused)
123 __stop___kcrctab_unused = .;
124
125 /* Kernel symbol table: GPL-only unused symbols */
126 __start___kcrctab_unused_gpl = .;
127 *(__kcrctab_unused_gpl)
128 __stop___kcrctab_unused_gpl = .;
129
9f28bb7e
GKH
130 /* Kernel symbol table: GPL-future symbols */
131 __start___kcrctab_gpl_future = .;
132 *(__kcrctab_gpl_future)
133 __stop___kcrctab_gpl_future = .;
134
1da177e4
LT
135 /* Kernel symbol table: strings */
136 *(__ksymtab_strings)
137
138 /* Built-in module parameters */
124df2df 139 . = ALIGN(4) ;
1da177e4
LT
140 __start___param = .;
141 *(__param)
142 __stop___param = .;
143
144 . = ALIGN(4) ;
145 _etext = . ;
146 } > TEXT
147
1da177e4
LT
148 .data DATA_ADDR : {
149 . = ALIGN(4);
150 _sdata = . ;
ca967258 151 DATA_DATA
49612a5f 152 CACHELINE_ALIGNED_DATA(32)
e6ba59bc
GU
153 PAGE_ALIGNED_DATA(PAGE_SIZE)
154 *(.data..shared_aligned)
49612a5f 155 INIT_TASK_DATA(THREAD_SIZE)
1da177e4
LT
156 _edata = . ;
157 } > DATA
158
53749f73 159 .init.text : {
f4bed4fb 160 . = ALIGN(PAGE_SIZE);
1da177e4 161 __init_begin = .;
a90a44ee 162 } > INIT
53749f73
TA
163 INIT_TEXT_SECTION(PAGE_SIZE) > INIT
164 INIT_DATA_SECTION(16) > INIT
165 .init.data : {
f4bed4fb 166 . = ALIGN(PAGE_SIZE);
1da177e4
LT
167 __init_end = .;
168 } > INIT
169
1da177e4
LT
170 .bss : {
171 . = ALIGN(4);
172 _sbss = . ;
173 *(.bss)
174 *(COMMON)
175 . = ALIGN(4) ;
176 _ebss = . ;
779125c2 177 _end = . ;
10f204e5 178 } > BSSS
1da177e4 179
023bf6f1 180 DISCARDS
1da177e4
LT
181}
182