Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/m68k/kernel/vmlinux.lds_no.S
10820 views
1
/*
2
* vmlinux.lds.S -- master linker script for m68knommu arch
3
*
4
* (C) Copyright 2002-2006, Greg Ungerer <[email protected]>
5
*
6
* This linker script is equipped to build either ROM loaded or RAM
7
* run kernels.
8
*/
9
10
#include <asm-generic/vmlinux.lds.h>
11
#include <asm/page.h>
12
#include <asm/thread_info.h>
13
14
#if defined(CONFIG_RAMKERNEL)
15
#define RAM_START CONFIG_KERNELBASE
16
#define RAM_LENGTH (CONFIG_RAMBASE + CONFIG_RAMSIZE - CONFIG_KERNELBASE)
17
#define TEXT ram
18
#define DATA ram
19
#define INIT ram
20
#define BSSS ram
21
#endif
22
#if defined(CONFIG_ROMKERNEL) || defined(CONFIG_HIMEMKERNEL)
23
#define RAM_START CONFIG_RAMBASE
24
#define RAM_LENGTH CONFIG_RAMSIZE
25
#define ROMVEC_START CONFIG_ROMVEC
26
#define ROMVEC_LENGTH CONFIG_ROMVECSIZE
27
#define ROM_START CONFIG_ROMSTART
28
#define ROM_LENGTH CONFIG_ROMSIZE
29
#define TEXT rom
30
#define DATA ram
31
#define INIT ram
32
#define BSSS ram
33
#endif
34
35
#ifndef DATA_ADDR
36
#define DATA_ADDR
37
#endif
38
39
40
OUTPUT_ARCH(m68k)
41
ENTRY(_start)
42
43
MEMORY {
44
ram : ORIGIN = RAM_START, LENGTH = RAM_LENGTH
45
#ifdef ROM_START
46
romvec : ORIGIN = ROMVEC_START, LENGTH = ROMVEC_LENGTH
47
rom : ORIGIN = ROM_START, LENGTH = ROM_LENGTH
48
#endif
49
}
50
51
jiffies = jiffies_64 + 4;
52
53
SECTIONS {
54
55
#ifdef ROMVEC_START
56
. = ROMVEC_START ;
57
.romvec : {
58
__rom_start = . ;
59
_romvec = .;
60
*(.data..initvect)
61
} > romvec
62
#endif
63
64
.text : {
65
_text = .;
66
_stext = . ;
67
HEAD_TEXT
68
TEXT_TEXT
69
SCHED_TEXT
70
LOCK_TEXT
71
*(.text..lock)
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 */
80
*(__markers_strings)
81
*(.rodata1)
82
*(.rodata.str1.1)
83
84
/* Kernel symbol table: Normal symbols */
85
. = ALIGN(4);
86
__start___ksymtab = .;
87
*(SORT(___ksymtab+*))
88
__stop___ksymtab = .;
89
90
/* Kernel symbol table: GPL-only symbols */
91
__start___ksymtab_gpl = .;
92
*(SORT(___ksymtab_gpl+*))
93
__stop___ksymtab_gpl = .;
94
95
/* Kernel symbol table: Normal unused symbols */
96
__start___ksymtab_unused = .;
97
*(SORT(___ksymtab_unused+*))
98
__stop___ksymtab_unused = .;
99
100
/* Kernel symbol table: GPL-only unused symbols */
101
__start___ksymtab_unused_gpl = .;
102
*(SORT(___ksymtab_unused_gpl+*))
103
__stop___ksymtab_unused_gpl = .;
104
105
/* Kernel symbol table: GPL-future symbols */
106
__start___ksymtab_gpl_future = .;
107
*(SORT(___ksymtab_gpl_future+*))
108
__stop___ksymtab_gpl_future = .;
109
110
/* Kernel symbol table: Normal symbols */
111
__start___kcrctab = .;
112
*(SORT(___kcrctab+*))
113
__stop___kcrctab = .;
114
115
/* Kernel symbol table: GPL-only symbols */
116
__start___kcrctab_gpl = .;
117
*(SORT(___kcrctab_gpl+*))
118
__stop___kcrctab_gpl = .;
119
120
/* Kernel symbol table: Normal unused symbols */
121
__start___kcrctab_unused = .;
122
*(SORT(___kcrctab_unused+*))
123
__stop___kcrctab_unused = .;
124
125
/* Kernel symbol table: GPL-only unused symbols */
126
__start___kcrctab_unused_gpl = .;
127
*(SORT(___kcrctab_unused_gpl+*))
128
__stop___kcrctab_unused_gpl = .;
129
130
/* Kernel symbol table: GPL-future symbols */
131
__start___kcrctab_gpl_future = .;
132
*(SORT(___kcrctab_gpl_future+*))
133
__stop___kcrctab_gpl_future = .;
134
135
/* Kernel symbol table: strings */
136
*(__ksymtab_strings)
137
138
/* Built-in module parameters */
139
. = ALIGN(4) ;
140
__start___param = .;
141
*(__param)
142
__stop___param = .;
143
144
/* Built-in module versions */
145
. = ALIGN(4) ;
146
__start___modver = .;
147
*(__modver)
148
__stop___modver = .;
149
150
. = ALIGN(4) ;
151
_etext = . ;
152
} > TEXT
153
154
.data DATA_ADDR : {
155
. = ALIGN(4);
156
_sdata = . ;
157
DATA_DATA
158
CACHELINE_ALIGNED_DATA(32)
159
PAGE_ALIGNED_DATA(PAGE_SIZE)
160
*(.data..shared_aligned)
161
INIT_TASK_DATA(THREAD_SIZE)
162
_edata = . ;
163
} > DATA
164
165
.init.text : {
166
. = ALIGN(PAGE_SIZE);
167
__init_begin = .;
168
} > INIT
169
INIT_TEXT_SECTION(PAGE_SIZE) > INIT
170
INIT_DATA_SECTION(16) > INIT
171
.init.data : {
172
. = ALIGN(PAGE_SIZE);
173
__init_end = .;
174
} > INIT
175
176
.bss : {
177
. = ALIGN(4);
178
_sbss = . ;
179
*(.bss)
180
*(COMMON)
181
. = ALIGN(4) ;
182
_ebss = . ;
183
_end = . ;
184
} > BSSS
185
186
DISCARDS
187
}
188
189
190