aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel/vmlinux.lds.S
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2009-12-08 11:12:43 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2009-12-08 11:12:43 -0500
commit79c9601c2e0dbbe69895d302de4d19f3a31fbd30 (patch)
tree78d4be2df851b2b4106adcfd736622a90cecf9e9 /arch/arm/kernel/vmlinux.lds.S
parent41440ffe21f29bdb985cab76b2d0b06d83e63b19 (diff)
parent3d14b5beba35250c548d3851a2b84fce742d8311 (diff)
Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm
* 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm: (272 commits) Fix soc_common PCMCIA configuration ARM: 5827/1: SA1100: h3100/h3600: emit messages on failed gpio_request ARM: 5826/1: SA1100: h3100/h3600: always build htc-egpio driver ARM: 5825/1: SA1100: h3600: update defconfig ARM: 5824/1: SA1100: reuse h3600 PCMCIA driver on h3100 ARM: 5823/1: SA1100: h3100/h3600: add support for gpio-keys ARM: 5822/1: SA1100: h3100/h3600: clean up #includes ARM: 5821/1: SA1100: h3100/h3600: revise copyright boilerplates ARM: 5820/1: SA1100: h3100/h3600: split h3600.c ARM: 5819/1: SA1100: h3100/h3600: merge h3600.h and h3600_gpio.h into h3xxx.h ARM: 5818/1: SA1100: h3100/h3600: drop old GPIO definitions ARM: 5817/1: SA1100: h3100/h3600: configure all unused gpios as inputs ARM: 5816/1: SA1100: h3600: remove IRQ_GPIO_* definitions ARM: 5815/1: SA1100: h3100/h3600: remove now unused assign_h3600_egpio handlers ARM: 5814/1: SA1100: h3100/h3600: convert all users of assign_h3600_egpio to gpiolib ARM: 5813/1: SA1100: h3100/h3600: add htc-egpio driver ARM: 5812/1: SA1100: h3100/h3600: separate machine-specific LCD helpers ARM: 5811/2: pcmcia: convert sa1100_h3600 driver to gpiolib ARM: 5799/1: SA1100: h3600: stop setting direction for LCD pins ARM: 5798/1: SA1100: h3600: remove unused cruft from h3600.h ...
Diffstat (limited to 'arch/arm/kernel/vmlinux.lds.S')
-rw-r--r--arch/arm/kernel/vmlinux.lds.S85
1 files changed, 26 insertions, 59 deletions
diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S
index aecf87dfbaec..71151bd87a36 100644
--- a/arch/arm/kernel/vmlinux.lds.S
+++ b/arch/arm/kernel/vmlinux.lds.S
@@ -24,13 +24,11 @@ SECTIONS
24#else 24#else
25 . = PAGE_OFFSET + TEXT_OFFSET; 25 . = PAGE_OFFSET + TEXT_OFFSET;
26#endif 26#endif
27 .text.head : {
28 _stext = .;
29 _sinittext = .;
30 *(.text.head)
31 }
32 27
33 .init : { /* Init code and data */ 28 .init : { /* Init code and data */
29 _stext = .;
30 _sinittext = .;
31 HEAD_TEXT
34 INIT_TEXT 32 INIT_TEXT
35 _einittext = .; 33 _einittext = .;
36 __proc_info_begin = .; 34 __proc_info_begin = .;
@@ -42,43 +40,31 @@ SECTIONS
42 __tagtable_begin = .; 40 __tagtable_begin = .;
43 *(.taglist.init) 41 *(.taglist.init)
44 __tagtable_end = .; 42 __tagtable_end = .;
45 . = ALIGN(16); 43
46 __setup_start = .; 44 INIT_SETUP(16)
47 *(.init.setup) 45
48 __setup_end = .;
49 __early_begin = .; 46 __early_begin = .;
50 *(.early_param.init) 47 *(.early_param.init)
51 __early_end = .; 48 __early_end = .;
52 __initcall_start = .; 49
53 INITCALLS 50 INIT_CALLS
54 __initcall_end = .; 51 CON_INITCALL
55 __con_initcall_start = .; 52 SECURITY_INITCALL
56 *(.con_initcall.init) 53 INIT_RAM_FS
57 __con_initcall_end = .; 54
58 __security_initcall_start = .;
59 *(.security_initcall.init)
60 __security_initcall_end = .;
61#ifdef CONFIG_BLK_DEV_INITRD
62 . = ALIGN(32);
63 __initramfs_start = .;
64 usr/built-in.o(.init.ramfs)
65 __initramfs_end = .;
66#endif
67 . = ALIGN(PAGE_SIZE);
68 __per_cpu_load = .;
69 __per_cpu_start = .;
70 *(.data.percpu.page_aligned)
71 *(.data.percpu)
72 *(.data.percpu.shared_aligned)
73 __per_cpu_end = .;
74#ifndef CONFIG_XIP_KERNEL 55#ifndef CONFIG_XIP_KERNEL
75 __init_begin = _stext; 56 __init_begin = _stext;
76 INIT_DATA 57 INIT_DATA
77 . = ALIGN(PAGE_SIZE);
78 __init_end = .;
79#endif 58#endif
80 } 59 }
81 60
61 PERCPU(PAGE_SIZE)
62
63#ifndef CONFIG_XIP_KERNEL
64 . = ALIGN(PAGE_SIZE);
65 __init_end = .;
66#endif
67
82 /DISCARD/ : { /* Exit code and data */ 68 /DISCARD/ : { /* Exit code and data */
83 EXIT_TEXT 69 EXIT_TEXT
84 EXIT_DATA 70 EXIT_DATA
@@ -157,7 +143,7 @@ SECTIONS
157 * first, the init task union, aligned 143 * first, the init task union, aligned
158 * to an 8192 byte boundary. 144 * to an 8192 byte boundary.
159 */ 145 */
160 *(.data.init_task) 146 INIT_TASK_DATA(THREAD_SIZE)
161 147
162#ifdef CONFIG_XIP_KERNEL 148#ifdef CONFIG_XIP_KERNEL
163 . = ALIGN(PAGE_SIZE); 149 . = ALIGN(PAGE_SIZE);
@@ -167,17 +153,8 @@ SECTIONS
167 __init_end = .; 153 __init_end = .;
168#endif 154#endif
169 155
170 . = ALIGN(PAGE_SIZE); 156 NOSAVE_DATA
171 __nosave_begin = .; 157 CACHELINE_ALIGNED_DATA(32)
172 *(.data.nosave)
173 . = ALIGN(PAGE_SIZE);
174 __nosave_end = .;
175
176 /*
177 * then the cacheline aligned data
178 */
179 . = ALIGN(32);
180 *(.data.cacheline_aligned)
181 158
182 /* 159 /*
183 * The exception fixup table (might need resorting at runtime) 160 * The exception fixup table (might need resorting at runtime)
@@ -256,20 +233,10 @@ SECTIONS
256 } 233 }
257#endif 234#endif
258 235
259 .bss : { 236 BSS_SECTION(0, 0, 0)
260 __bss_start = .; /* BSS */ 237 _end = .;
261 *(.bss) 238
262 *(COMMON) 239 STABS_DEBUG
263 __bss_stop = .;
264 _end = .;
265 }
266 /* Stabs debugging sections. */
267 .stab 0 : { *(.stab) }
268 .stabstr 0 : { *(.stabstr) }
269 .stab.excl 0 : { *(.stab.excl) }
270 .stab.exclstr 0 : { *(.stab.exclstr) }
271 .stab.index 0 : { *(.stab.index) }
272 .stab.indexstr 0 : { *(.stab.indexstr) }
273 .comment 0 : { *(.comment) } 240 .comment 0 : { *(.comment) }
274} 241}
275 242