aboutsummaryrefslogtreecommitdiffstats
path: root/arch/blackfin/kernel
diff options
context:
space:
mode:
authorTim Abbott <tabbott@ksplice.com>2009-09-24 10:36:23 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2009-09-24 20:16:22 -0400
commit4a5e35135d1ffcf14ebb2bb3c730b92c18ae9657 (patch)
tree318b2fda0411fe28984bf9b1ac7a68570e53e0d6 /arch/blackfin/kernel
parent4295f8b318b424be0f87c9fd9aa1eb35c9585faf (diff)
blackfin: Cleanup linker script using new linker script macros.
Signed-off-by: Tim Abbott <tabbott@ksplice.com> Cc: Bryan Wu <cooloney@kernel.org> Cc: uclinux-dist-devel@blackfin.uclinux.org Acked-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/blackfin/kernel')
-rw-r--r--arch/blackfin/kernel/vmlinux.lds.S56
1 files changed, 6 insertions, 50 deletions
diff --git a/arch/blackfin/kernel/vmlinux.lds.S b/arch/blackfin/kernel/vmlinux.lds.S
index 21ac7c26079e..ffd90fbbc8f9 100644
--- a/arch/blackfin/kernel/vmlinux.lds.S
+++ b/arch/blackfin/kernel/vmlinux.lds.S
@@ -96,8 +96,7 @@ SECTIONS
96 { 96 {
97 __sdata = .; 97 __sdata = .;
98 /* This gets done first, so the glob doesn't suck it in */ 98 /* This gets done first, so the glob doesn't suck it in */
99 . = ALIGN(32); 99 CACHELINE_ALIGNED_DATA(32)
100 *(.data.cacheline_aligned)
101 100
102#if !L1_DATA_A_LENGTH 101#if !L1_DATA_A_LENGTH
103 . = ALIGN(32); 102 . = ALIGN(32);
@@ -116,12 +115,7 @@ SECTIONS
116 DATA_DATA 115 DATA_DATA
117 CONSTRUCTORS 116 CONSTRUCTORS
118 117
119 /* make sure the init_task is aligned to the 118 INIT_TASK_DATA(THREAD_SIZE)
120 * kernel thread size so we can locate the kernel
121 * stack properly and quickly.
122 */
123 . = ALIGN(THREAD_SIZE);
124 *(.init_task.data)
125 119
126 __edata = .; 120 __edata = .;
127 } 121 }
@@ -134,39 +128,10 @@ SECTIONS
134 . = ALIGN(PAGE_SIZE); 128 . = ALIGN(PAGE_SIZE);
135 ___init_begin = .; 129 ___init_begin = .;
136 130
137 .init.text : 131 INIT_TEXT_SECTION(PAGE_SIZE)
138 { 132 . = ALIGN(16);
139 . = ALIGN(PAGE_SIZE); 133 INIT_DATA_SECTION(16)
140 __sinittext = .;
141 INIT_TEXT
142 __einittext = .;
143 }
144 .init.data :
145 {
146 . = ALIGN(16);
147 INIT_DATA
148 }
149 .init.setup :
150 {
151 . = ALIGN(16);
152 ___setup_start = .;
153 *(.init.setup)
154 ___setup_end = .;
155 }
156 .initcall.init :
157 {
158 ___initcall_start = .;
159 INITCALLS
160 ___initcall_end = .;
161 }
162 .con_initcall.init :
163 {
164 ___con_initcall_start = .;
165 *(.con_initcall.init)
166 ___con_initcall_end = .;
167 }
168 PERCPU(4) 134 PERCPU(4)
169 SECURITY_INIT
170 135
171 /* we have to discard exit text and such at runtime, not link time, to 136 /* we have to discard exit text and such at runtime, not link time, to
172 * handle embedded cross-section references (alt instructions, bug 137 * handle embedded cross-section references (alt instructions, bug
@@ -181,18 +146,9 @@ SECTIONS
181 EXIT_DATA 146 EXIT_DATA
182 } 147 }
183 148
184 .init.ramfs :
185 {
186 . = ALIGN(4);
187 ___initramfs_start = .;
188 *(.init.ramfs)
189 . = ALIGN(4);
190 ___initramfs_end = .;
191 }
192
193 __l1_lma_start = .; 149 __l1_lma_start = .;
194 150
195 .text_l1 L1_CODE_START : AT(LOADADDR(.init.ramfs) + SIZEOF(.init.ramfs)) 151 .text_l1 L1_CODE_START : AT(LOADADDR(.exit.data) + SIZEOF(.exit.data))
196 { 152 {
197 . = ALIGN(4); 153 . = ALIGN(4);
198 __stext_l1 = .; 154 __stext_l1 = .;