aboutsummaryrefslogtreecommitdiffstats
path: root/arch/xtensa/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'arch/xtensa/kernel')
-rw-r--r--arch/xtensa/kernel/setup.c1
-rw-r--r--arch/xtensa/kernel/vmlinux.lds.S78
2 files changed, 32 insertions, 47 deletions
diff --git a/arch/xtensa/kernel/setup.c b/arch/xtensa/kernel/setup.c
index 1ecf6716c327..2e8d398cf196 100644
--- a/arch/xtensa/kernel/setup.c
+++ b/arch/xtensa/kernel/setup.c
@@ -41,6 +41,7 @@
41#include <asm/platform.h> 41#include <asm/platform.h>
42#include <asm/page.h> 42#include <asm/page.h>
43#include <asm/setup.h> 43#include <asm/setup.h>
44#include <asm/param.h>
44 45
45#if defined(CONFIG_VGA_CONSOLE) || defined(CONFIG_DUMMY_CONSOLE) 46#if defined(CONFIG_VGA_CONSOLE) || defined(CONFIG_DUMMY_CONSOLE)
46struct screen_info screen_info = { 0, 24, 0, 0, 0, 80, 0, 0, 0, 24, 1, 16}; 47struct screen_info screen_info = { 0, 24, 0, 0, 0, 80, 0, 0, 0, 24, 1, 16};
diff --git a/arch/xtensa/kernel/vmlinux.lds.S b/arch/xtensa/kernel/vmlinux.lds.S
index 4b7b4ff79973..b0582c3c5f8d 100644
--- a/arch/xtensa/kernel/vmlinux.lds.S
+++ b/arch/xtensa/kernel/vmlinux.lds.S
@@ -84,9 +84,7 @@ SECTIONS
84 { 84 {
85 /* The .head.text section must be the first section! */ 85 /* The .head.text section must be the first section! */
86 *(.head.text) 86 *(.head.text)
87 *(.literal) 87 *(.literal .text)
88 TEXT_TEXT
89 *(.srom.text)
90 VMLINUX_SYMBOL(__sched_text_start) = .; 88 VMLINUX_SYMBOL(__sched_text_start) = .;
91 *(.sched.literal .sched.text) 89 *(.sched.literal .sched.text)
92 VMLINUX_SYMBOL(__sched_text_end) = .; 90 VMLINUX_SYMBOL(__sched_text_end) = .;
@@ -96,6 +94,7 @@ SECTIONS
96 94
97 } 95 }
98 _etext = .; 96 _etext = .;
97 PROVIDE (etext = .);
99 98
100 . = ALIGN(16); 99 . = ALIGN(16);
101 100
@@ -103,32 +102,6 @@ SECTIONS
103 102
104 /* Relocation table */ 103 /* Relocation table */
105 104
106 . = ALIGN(16);
107 __boot_reloc_table_start = ABSOLUTE(.);
108
109 __relocate : {
110
111 RELOCATE_ENTRY(_WindowVectors_text,
112 .WindowVectors.text);
113#if 0
114 RELOCATE_ENTRY(_KernelExceptionVector_literal,
115 .KernelExceptionVector.literal);
116#endif
117 RELOCATE_ENTRY(_KernelExceptionVector_text,
118 .KernelExceptionVector.text);
119#if 0
120 RELOCATE_ENTRY(_UserExceptionVector_literal,
121 .UserExceptionVector.literal);
122#endif
123 RELOCATE_ENTRY(_UserExceptionVector_text,
124 .UserExceptionVector.text);
125 RELOCATE_ENTRY(_DoubleExceptionVector_literal,
126 .DoubleExceptionVector.literal);
127 RELOCATE_ENTRY(_DoubleExceptionVector_text,
128 .DoubleExceptionVector.text);
129 }
130 __boot_reloc_table_end = ABSOLUTE(.) ;
131
132 .fixup : { *(.fixup) } 105 .fixup : { *(.fixup) }
133 106
134 . = ALIGN(16); 107 . = ALIGN(16);
@@ -145,8 +118,7 @@ SECTIONS
145 _fdata = .; 118 _fdata = .;
146 .data : 119 .data :
147 { 120 {
148 DATA_DATA 121 *(.data) CONSTRUCTORS
149 CONSTRUCTORS
150 . = ALIGN(XCHAL_ICACHE_LINESIZE); 122 . = ALIGN(XCHAL_ICACHE_LINESIZE);
151 *(.data.cacheline_aligned) 123 *(.data.cacheline_aligned)
152 } 124 }
@@ -174,6 +146,22 @@ SECTIONS
174 __tagtable_begin = .; 146 __tagtable_begin = .;
175 *(.taglist) 147 *(.taglist)
176 __tagtable_end = .; 148 __tagtable_end = .;
149
150 . = ALIGN(16);
151 __boot_reloc_table_start = ABSOLUTE(.);
152
153 RELOCATE_ENTRY(_WindowVectors_text,
154 .WindowVectors.text);
155 RELOCATE_ENTRY(_KernelExceptionVector_text,
156 .KernelExceptionVector.text);
157 RELOCATE_ENTRY(_UserExceptionVector_text,
158 .UserExceptionVector.text);
159 RELOCATE_ENTRY(_DoubleExceptionVector_literal,
160 .DoubleExceptionVector.literal);
161 RELOCATE_ENTRY(_DoubleExceptionVector_text,
162 .DoubleExceptionVector.text);
163
164 __boot_reloc_table_end = ABSOLUTE(.) ;
177 } 165 }
178 166
179 . = ALIGN(XCHAL_ICACHE_LINESIZE); 167 . = ALIGN(XCHAL_ICACHE_LINESIZE);
@@ -194,16 +182,6 @@ SECTIONS
194 182
195 SECURITY_INIT 183 SECURITY_INIT
196 184
197 . = ALIGN(4);
198
199 __start___ftr_fixup = .;
200 __ftr_fixup : { *(__ftr_fixup) }
201 __stop___ftr_fixup = .;
202
203 . = ALIGN(4096);
204 __per_cpu_start = .;
205 .data.percpu : { *(.data.percpu) }
206 __per_cpu_end = .;
207 185
208#ifdef CONFIG_BLK_DEV_INITRD 186#ifdef CONFIG_BLK_DEV_INITRD
209 . = ALIGN(4096); 187 . = ALIGN(4096);
@@ -212,6 +190,12 @@ SECTIONS
212 __initramfs_end = .; 190 __initramfs_end = .;
213#endif 191#endif
214 192
193 . = ALIGN(4096);
194 __per_cpu_start = .;
195 .data.percpu : { *(.data.percpu) }
196 __per_cpu_end = .;
197
198
215 /* We need this dummy segment here */ 199 /* We need this dummy segment here */
216 200
217 . = ALIGN(4); 201 . = ALIGN(4);
@@ -273,9 +257,9 @@ SECTIONS
273 257
274 /* BSS section */ 258 /* BSS section */
275 _bss_start = .; 259 _bss_start = .;
276 .sbss : { *(.sbss) *(.scommon) } 260 .bss : { *(.bss.page_aligned) *(.bss) }
277 .bss : { *(COMMON) *(.bss) }
278 _bss_end = .; 261 _bss_end = .;
262
279 _end = .; 263 _end = .;
280 264
281 /* only used by the boot loader */ 265 /* only used by the boot loader */
@@ -293,16 +277,16 @@ SECTIONS
293 *(.ResetVector.text) 277 *(.ResetVector.text)
294 } 278 }
295 279
296
297 /* Sections to be discarded */ 280 /* Sections to be discarded */
298 /DISCARD/ : 281 /DISCARD/ :
299 { 282 {
300 *(.text.exit) 283 *(.exit.literal .exit.text)
301 *(.text.exit.literal) 284 *(.exit.data)
302 *(.data.exit)
303 *(.exitcall.exit) 285 *(.exitcall.exit)
304 } 286 }
305 287
288 .xt.lit : { *(.xt.lit) }
289 .xt.prop : { *(.xt.prop) }
306 290
307 .debug 0 : { *(.debug) } 291 .debug 0 : { *(.debug) }
308 .line 0 : { *(.line) } 292 .line 0 : { *(.line) }