diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2010-10-01 10:37:05 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2010-10-08 05:07:32 -0400 |
commit | 5085f3ff458521045f7e43da62b8c30ea7df2e82 (patch) | |
tree | 3820362ac7e1a52ba398909fa1bd024ba4fc552d /arch | |
parent | 37b05b63754e995b8cb76f4fbe7ed7219b3ca896 (diff) |
ARM: hotplug cpu: Keep processor information, startup code & __lookup_processor_type
When hotplug CPU is enabled, we need to keep the list of supported CPUs,
their setup functions, and __lookup_processor_type in place so that we
can find and initialize secondary CPUs. Move these into the __CPUINIT
section.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/kernel/head-common.S | 81 | ||||
-rw-r--r-- | arch/arm/kernel/vmlinux.lds.S | 24 | ||||
-rw-r--r-- | arch/arm/mm/proc-arm1020.S | 2 | ||||
-rw-r--r-- | arch/arm/mm/proc-arm1020e.S | 2 | ||||
-rw-r--r-- | arch/arm/mm/proc-arm1022.S | 2 | ||||
-rw-r--r-- | arch/arm/mm/proc-arm1026.S | 2 | ||||
-rw-r--r-- | arch/arm/mm/proc-arm6_7.S | 2 | ||||
-rw-r--r-- | arch/arm/mm/proc-arm720.S | 2 | ||||
-rw-r--r-- | arch/arm/mm/proc-arm740.S | 2 | ||||
-rw-r--r-- | arch/arm/mm/proc-arm7tdmi.S | 2 | ||||
-rw-r--r-- | arch/arm/mm/proc-arm920.S | 2 | ||||
-rw-r--r-- | arch/arm/mm/proc-arm922.S | 2 | ||||
-rw-r--r-- | arch/arm/mm/proc-arm925.S | 2 | ||||
-rw-r--r-- | arch/arm/mm/proc-arm926.S | 2 | ||||
-rw-r--r-- | arch/arm/mm/proc-arm940.S | 2 | ||||
-rw-r--r-- | arch/arm/mm/proc-arm946.S | 2 | ||||
-rw-r--r-- | arch/arm/mm/proc-arm9tdmi.S | 2 | ||||
-rw-r--r-- | arch/arm/mm/proc-fa526.S | 2 | ||||
-rw-r--r-- | arch/arm/mm/proc-feroceon.S | 2 | ||||
-rw-r--r-- | arch/arm/mm/proc-mohawk.S | 2 | ||||
-rw-r--r-- | arch/arm/mm/proc-sa110.S | 2 | ||||
-rw-r--r-- | arch/arm/mm/proc-sa1100.S | 2 | ||||
-rw-r--r-- | arch/arm/mm/proc-v6.S | 6 | ||||
-rw-r--r-- | arch/arm/mm/proc-v7.S | 6 | ||||
-rw-r--r-- | arch/arm/mm/proc-xsc3.S | 2 | ||||
-rw-r--r-- | arch/arm/mm/proc-xscale.S | 2 |
26 files changed, 94 insertions, 67 deletions
diff --git a/arch/arm/kernel/head-common.S b/arch/arm/kernel/head-common.S index b9505aa267c0..6ad24d2cb14b 100644 --- a/arch/arm/kernel/head-common.S +++ b/arch/arm/kernel/head-common.S | |||
@@ -145,45 +145,14 @@ ENDPROC(__error) | |||
145 | 145 | ||
146 | 146 | ||
147 | /* | 147 | /* |
148 | * Read processor ID register (CP#15, CR0), and look up in the linker-built | 148 | * This provides a C-API version of __lookup_processor_type |
149 | * supported processor list. Note that we can't use the absolute addresses | ||
150 | * for the __proc_info lists since we aren't running with the MMU on | ||
151 | * (and therefore, we are not in the correct address space). We have to | ||
152 | * calculate the offset. | ||
153 | * | ||
154 | * r9 = cpuid | ||
155 | * Returns: | ||
156 | * r3, r4, r6 corrupted | ||
157 | * r5 = proc_info pointer in physical address space | ||
158 | * r9 = cpuid (preserved) | ||
159 | */ | ||
160 | __lookup_processor_type: | ||
161 | adr r3, 3f | ||
162 | ldmia r3, {r5 - r7} | ||
163 | add r3, r3, #8 | ||
164 | sub r3, r3, r7 @ get offset between virt&phys | ||
165 | add r5, r5, r3 @ convert virt addresses to | ||
166 | add r6, r6, r3 @ physical address space | ||
167 | 1: ldmia r5, {r3, r4} @ value, mask | ||
168 | and r4, r4, r9 @ mask wanted bits | ||
169 | teq r3, r4 | ||
170 | beq 2f | ||
171 | add r5, r5, #PROC_INFO_SZ @ sizeof(proc_info_list) | ||
172 | cmp r5, r6 | ||
173 | blo 1b | ||
174 | mov r5, #0 @ unknown processor | ||
175 | 2: mov pc, lr | ||
176 | ENDPROC(__lookup_processor_type) | ||
177 | |||
178 | /* | ||
179 | * This provides a C-API version of the above function. | ||
180 | */ | 149 | */ |
181 | ENTRY(lookup_processor_type) | 150 | ENTRY(lookup_processor_type) |
182 | stmfd sp!, {r4 - r7, r9, lr} | 151 | stmfd sp!, {r4 - r6, r9, lr} |
183 | mov r9, r0 | 152 | mov r9, r0 |
184 | bl __lookup_processor_type | 153 | bl __lookup_processor_type |
185 | mov r0, r5 | 154 | mov r0, r5 |
186 | ldmfd sp!, {r4 - r7, r9, pc} | 155 | ldmfd sp!, {r4 - r6, r9, pc} |
187 | ENDPROC(lookup_processor_type) | 156 | ENDPROC(lookup_processor_type) |
188 | 157 | ||
189 | /* | 158 | /* |
@@ -191,8 +160,6 @@ ENDPROC(lookup_processor_type) | |||
191 | * more information about the __proc_info and __arch_info structures. | 160 | * more information about the __proc_info and __arch_info structures. |
192 | */ | 161 | */ |
193 | .align 2 | 162 | .align 2 |
194 | 3: .long __proc_info_begin | ||
195 | .long __proc_info_end | ||
196 | 4: .long . | 163 | 4: .long . |
197 | .long __arch_info_begin | 164 | .long __arch_info_begin |
198 | .long __arch_info_end | 165 | .long __arch_info_end |
@@ -265,3 +232,45 @@ __vet_atags: | |||
265 | 1: mov r2, #0 | 232 | 1: mov r2, #0 |
266 | mov pc, lr | 233 | mov pc, lr |
267 | ENDPROC(__vet_atags) | 234 | ENDPROC(__vet_atags) |
235 | |||
236 | /* | ||
237 | * Read processor ID register (CP#15, CR0), and look up in the linker-built | ||
238 | * supported processor list. Note that we can't use the absolute addresses | ||
239 | * for the __proc_info lists since we aren't running with the MMU on | ||
240 | * (and therefore, we are not in the correct address space). We have to | ||
241 | * calculate the offset. | ||
242 | * | ||
243 | * r9 = cpuid | ||
244 | * Returns: | ||
245 | * r3, r4, r6 corrupted | ||
246 | * r5 = proc_info pointer in physical address space | ||
247 | * r9 = cpuid (preserved) | ||
248 | */ | ||
249 | __CPUINIT | ||
250 | __lookup_processor_type: | ||
251 | adr r3, __lookup_processor_type_data | ||
252 | ldmia r3, {r4 - r6} | ||
253 | sub r3, r3, r4 @ get offset between virt&phys | ||
254 | add r5, r5, r3 @ convert virt addresses to | ||
255 | add r6, r6, r3 @ physical address space | ||
256 | 1: ldmia r5, {r3, r4} @ value, mask | ||
257 | and r4, r4, r9 @ mask wanted bits | ||
258 | teq r3, r4 | ||
259 | beq 2f | ||
260 | add r5, r5, #PROC_INFO_SZ @ sizeof(proc_info_list) | ||
261 | cmp r5, r6 | ||
262 | blo 1b | ||
263 | mov r5, #0 @ unknown processor | ||
264 | 2: mov pc, lr | ||
265 | ENDPROC(__lookup_processor_type) | ||
266 | |||
267 | /* | ||
268 | * Look in <asm/procinfo.h> for information about the __proc_info structure. | ||
269 | */ | ||
270 | .align 2 | ||
271 | .type __lookup_processor_type_data, %object | ||
272 | __lookup_processor_type_data: | ||
273 | .long . | ||
274 | .long __proc_info_begin | ||
275 | .long __proc_info_end | ||
276 | .size __lookup_processor_type_data, . - __lookup_processor_type_data | ||
diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S index b16c07914b55..1630524a3097 100644 --- a/arch/arm/kernel/vmlinux.lds.S +++ b/arch/arm/kernel/vmlinux.lds.S | |||
@@ -8,6 +8,19 @@ | |||
8 | #include <asm/memory.h> | 8 | #include <asm/memory.h> |
9 | #include <asm/page.h> | 9 | #include <asm/page.h> |
10 | 10 | ||
11 | #define PROC_INFO \ | ||
12 | VMLINUX_SYMBOL(__proc_info_begin) = .; \ | ||
13 | *(.proc.info.init) \ | ||
14 | VMLINUX_SYMBOL(__proc_info_end) = .; | ||
15 | |||
16 | #ifdef CONFIG_HOTPLUG_CPU | ||
17 | #define ARM_CPU_DISCARD(x) | ||
18 | #define ARM_CPU_KEEP(x) x | ||
19 | #else | ||
20 | #define ARM_CPU_DISCARD(x) x | ||
21 | #define ARM_CPU_KEEP(x) | ||
22 | #endif | ||
23 | |||
11 | OUTPUT_ARCH(arm) | 24 | OUTPUT_ARCH(arm) |
12 | ENTRY(stext) | 25 | ENTRY(stext) |
13 | 26 | ||
@@ -31,9 +44,7 @@ SECTIONS | |||
31 | HEAD_TEXT | 44 | HEAD_TEXT |
32 | INIT_TEXT | 45 | INIT_TEXT |
33 | _einittext = .; | 46 | _einittext = .; |
34 | __proc_info_begin = .; | 47 | ARM_CPU_DISCARD(PROC_INFO) |
35 | *(.proc.info.init) | ||
36 | __proc_info_end = .; | ||
37 | __arch_info_begin = .; | 48 | __arch_info_begin = .; |
38 | *(.arch.info.init) | 49 | *(.arch.info.init) |
39 | __arch_info_end = .; | 50 | __arch_info_end = .; |
@@ -68,10 +79,8 @@ SECTIONS | |||
68 | /DISCARD/ : { | 79 | /DISCARD/ : { |
69 | *(.ARM.exidx.exit.text) | 80 | *(.ARM.exidx.exit.text) |
70 | *(.ARM.extab.exit.text) | 81 | *(.ARM.extab.exit.text) |
71 | #ifndef CONFIG_HOTPLUG_CPU | 82 | ARM_CPU_DISCARD(*(.ARM.exidx.cpuexit.text)) |
72 | *(.ARM.exidx.cpuexit.text) | 83 | ARM_CPU_DISCARD(*(.ARM.extab.cpuexit.text)) |
73 | *(.ARM.extab.cpuexit.text) | ||
74 | #endif | ||
75 | #ifndef CONFIG_HOTPLUG | 84 | #ifndef CONFIG_HOTPLUG |
76 | *(.ARM.exidx.devexit.text) | 85 | *(.ARM.exidx.devexit.text) |
77 | *(.ARM.extab.devexit.text) | 86 | *(.ARM.extab.devexit.text) |
@@ -100,6 +109,7 @@ SECTIONS | |||
100 | *(.glue_7) | 109 | *(.glue_7) |
101 | *(.glue_7t) | 110 | *(.glue_7t) |
102 | *(.got) /* Global offset table */ | 111 | *(.got) /* Global offset table */ |
112 | ARM_CPU_KEEP(PROC_INFO) | ||
103 | } | 113 | } |
104 | 114 | ||
105 | RO_DATA(PAGE_SIZE) | 115 | RO_DATA(PAGE_SIZE) |
diff --git a/arch/arm/mm/proc-arm1020.S b/arch/arm/mm/proc-arm1020.S index 203a4e944d9e..a6f5f8475b96 100644 --- a/arch/arm/mm/proc-arm1020.S +++ b/arch/arm/mm/proc-arm1020.S | |||
@@ -430,7 +430,7 @@ ENTRY(cpu_arm1020_set_pte_ext) | |||
430 | #endif /* CONFIG_MMU */ | 430 | #endif /* CONFIG_MMU */ |
431 | mov pc, lr | 431 | mov pc, lr |
432 | 432 | ||
433 | __INIT | 433 | __CPUINIT |
434 | 434 | ||
435 | .type __arm1020_setup, #function | 435 | .type __arm1020_setup, #function |
436 | __arm1020_setup: | 436 | __arm1020_setup: |
diff --git a/arch/arm/mm/proc-arm1020e.S b/arch/arm/mm/proc-arm1020e.S index 1a511e765909..afc06b9c3133 100644 --- a/arch/arm/mm/proc-arm1020e.S +++ b/arch/arm/mm/proc-arm1020e.S | |||
@@ -412,7 +412,7 @@ ENTRY(cpu_arm1020e_set_pte_ext) | |||
412 | #endif /* CONFIG_MMU */ | 412 | #endif /* CONFIG_MMU */ |
413 | mov pc, lr | 413 | mov pc, lr |
414 | 414 | ||
415 | __INIT | 415 | __CPUINIT |
416 | 416 | ||
417 | .type __arm1020e_setup, #function | 417 | .type __arm1020e_setup, #function |
418 | __arm1020e_setup: | 418 | __arm1020e_setup: |
diff --git a/arch/arm/mm/proc-arm1022.S b/arch/arm/mm/proc-arm1022.S index 1ffa4eb9c34f..8915e0ba3fe5 100644 --- a/arch/arm/mm/proc-arm1022.S +++ b/arch/arm/mm/proc-arm1022.S | |||
@@ -394,7 +394,7 @@ ENTRY(cpu_arm1022_set_pte_ext) | |||
394 | #endif /* CONFIG_MMU */ | 394 | #endif /* CONFIG_MMU */ |
395 | mov pc, lr | 395 | mov pc, lr |
396 | 396 | ||
397 | __INIT | 397 | __CPUINIT |
398 | 398 | ||
399 | .type __arm1022_setup, #function | 399 | .type __arm1022_setup, #function |
400 | __arm1022_setup: | 400 | __arm1022_setup: |
diff --git a/arch/arm/mm/proc-arm1026.S b/arch/arm/mm/proc-arm1026.S index 5697c34b95b0..ff446c5d476f 100644 --- a/arch/arm/mm/proc-arm1026.S +++ b/arch/arm/mm/proc-arm1026.S | |||
@@ -384,7 +384,7 @@ ENTRY(cpu_arm1026_set_pte_ext) | |||
384 | mov pc, lr | 384 | mov pc, lr |
385 | 385 | ||
386 | 386 | ||
387 | __INIT | 387 | __CPUINIT |
388 | 388 | ||
389 | .type __arm1026_setup, #function | 389 | .type __arm1026_setup, #function |
390 | __arm1026_setup: | 390 | __arm1026_setup: |
diff --git a/arch/arm/mm/proc-arm6_7.S b/arch/arm/mm/proc-arm6_7.S index 64e0b327c7c5..6a7be1863edd 100644 --- a/arch/arm/mm/proc-arm6_7.S +++ b/arch/arm/mm/proc-arm6_7.S | |||
@@ -238,7 +238,7 @@ ENTRY(cpu_arm7_reset) | |||
238 | mcr p15, 0, r1, c1, c0, 0 @ turn off MMU etc | 238 | mcr p15, 0, r1, c1, c0, 0 @ turn off MMU etc |
239 | mov pc, r0 | 239 | mov pc, r0 |
240 | 240 | ||
241 | __INIT | 241 | __CPUINIT |
242 | 242 | ||
243 | .type __arm6_setup, #function | 243 | .type __arm6_setup, #function |
244 | __arm6_setup: mov r0, #0 | 244 | __arm6_setup: mov r0, #0 |
diff --git a/arch/arm/mm/proc-arm720.S b/arch/arm/mm/proc-arm720.S index 9d96824134fc..c285395f44b2 100644 --- a/arch/arm/mm/proc-arm720.S +++ b/arch/arm/mm/proc-arm720.S | |||
@@ -113,7 +113,7 @@ ENTRY(cpu_arm720_reset) | |||
113 | mcr p15, 0, ip, c1, c0, 0 @ ctrl register | 113 | mcr p15, 0, ip, c1, c0, 0 @ ctrl register |
114 | mov pc, r0 | 114 | mov pc, r0 |
115 | 115 | ||
116 | __INIT | 116 | __CPUINIT |
117 | 117 | ||
118 | .type __arm710_setup, #function | 118 | .type __arm710_setup, #function |
119 | __arm710_setup: | 119 | __arm710_setup: |
diff --git a/arch/arm/mm/proc-arm740.S b/arch/arm/mm/proc-arm740.S index 6c1a9ab059ae..38b27dcba727 100644 --- a/arch/arm/mm/proc-arm740.S +++ b/arch/arm/mm/proc-arm740.S | |||
@@ -55,7 +55,7 @@ ENTRY(cpu_arm740_reset) | |||
55 | mcr p15, 0, ip, c1, c0, 0 @ ctrl register | 55 | mcr p15, 0, ip, c1, c0, 0 @ ctrl register |
56 | mov pc, r0 | 56 | mov pc, r0 |
57 | 57 | ||
58 | __INIT | 58 | __CPUINIT |
59 | 59 | ||
60 | .type __arm740_setup, #function | 60 | .type __arm740_setup, #function |
61 | __arm740_setup: | 61 | __arm740_setup: |
diff --git a/arch/arm/mm/proc-arm7tdmi.S b/arch/arm/mm/proc-arm7tdmi.S index 6a850dbba22e..0c9786de20af 100644 --- a/arch/arm/mm/proc-arm7tdmi.S +++ b/arch/arm/mm/proc-arm7tdmi.S | |||
@@ -46,7 +46,7 @@ ENTRY(cpu_arm7tdmi_proc_fin) | |||
46 | ENTRY(cpu_arm7tdmi_reset) | 46 | ENTRY(cpu_arm7tdmi_reset) |
47 | mov pc, r0 | 47 | mov pc, r0 |
48 | 48 | ||
49 | __INIT | 49 | __CPUINIT |
50 | 50 | ||
51 | .type __arm7tdmi_setup, #function | 51 | .type __arm7tdmi_setup, #function |
52 | __arm7tdmi_setup: | 52 | __arm7tdmi_setup: |
diff --git a/arch/arm/mm/proc-arm920.S b/arch/arm/mm/proc-arm920.S index 86f80aa56216..fecf570939f3 100644 --- a/arch/arm/mm/proc-arm920.S +++ b/arch/arm/mm/proc-arm920.S | |||
@@ -375,7 +375,7 @@ ENTRY(cpu_arm920_set_pte_ext) | |||
375 | #endif | 375 | #endif |
376 | mov pc, lr | 376 | mov pc, lr |
377 | 377 | ||
378 | __INIT | 378 | __CPUINIT |
379 | 379 | ||
380 | .type __arm920_setup, #function | 380 | .type __arm920_setup, #function |
381 | __arm920_setup: | 381 | __arm920_setup: |
diff --git a/arch/arm/mm/proc-arm922.S b/arch/arm/mm/proc-arm922.S index f76ce9b62883..e3cbf87c9480 100644 --- a/arch/arm/mm/proc-arm922.S +++ b/arch/arm/mm/proc-arm922.S | |||
@@ -379,7 +379,7 @@ ENTRY(cpu_arm922_set_pte_ext) | |||
379 | #endif /* CONFIG_MMU */ | 379 | #endif /* CONFIG_MMU */ |
380 | mov pc, lr | 380 | mov pc, lr |
381 | 381 | ||
382 | __INIT | 382 | __CPUINIT |
383 | 383 | ||
384 | .type __arm922_setup, #function | 384 | .type __arm922_setup, #function |
385 | __arm922_setup: | 385 | __arm922_setup: |
diff --git a/arch/arm/mm/proc-arm925.S b/arch/arm/mm/proc-arm925.S index 657bd3f7c153..572424c867b5 100644 --- a/arch/arm/mm/proc-arm925.S +++ b/arch/arm/mm/proc-arm925.S | |||
@@ -428,7 +428,7 @@ ENTRY(cpu_arm925_set_pte_ext) | |||
428 | #endif /* CONFIG_MMU */ | 428 | #endif /* CONFIG_MMU */ |
429 | mov pc, lr | 429 | mov pc, lr |
430 | 430 | ||
431 | __INIT | 431 | __CPUINIT |
432 | 432 | ||
433 | .type __arm925_setup, #function | 433 | .type __arm925_setup, #function |
434 | __arm925_setup: | 434 | __arm925_setup: |
diff --git a/arch/arm/mm/proc-arm926.S b/arch/arm/mm/proc-arm926.S index 73f1f3c68910..63d168b4ebe6 100644 --- a/arch/arm/mm/proc-arm926.S +++ b/arch/arm/mm/proc-arm926.S | |||
@@ -389,7 +389,7 @@ ENTRY(cpu_arm926_set_pte_ext) | |||
389 | #endif | 389 | #endif |
390 | mov pc, lr | 390 | mov pc, lr |
391 | 391 | ||
392 | __INIT | 392 | __CPUINIT |
393 | 393 | ||
394 | .type __arm926_setup, #function | 394 | .type __arm926_setup, #function |
395 | __arm926_setup: | 395 | __arm926_setup: |
diff --git a/arch/arm/mm/proc-arm940.S b/arch/arm/mm/proc-arm940.S index fffb061a45a5..f6a62822418e 100644 --- a/arch/arm/mm/proc-arm940.S +++ b/arch/arm/mm/proc-arm940.S | |||
@@ -264,7 +264,7 @@ ENTRY(arm940_cache_fns) | |||
264 | .long arm940_dma_unmap_area | 264 | .long arm940_dma_unmap_area |
265 | .long arm940_dma_flush_range | 265 | .long arm940_dma_flush_range |
266 | 266 | ||
267 | __INIT | 267 | __CPUINIT |
268 | 268 | ||
269 | .type __arm940_setup, #function | 269 | .type __arm940_setup, #function |
270 | __arm940_setup: | 270 | __arm940_setup: |
diff --git a/arch/arm/mm/proc-arm946.S b/arch/arm/mm/proc-arm946.S index 249a6053760a..ea2e7f2eb95b 100644 --- a/arch/arm/mm/proc-arm946.S +++ b/arch/arm/mm/proc-arm946.S | |||
@@ -317,7 +317,7 @@ ENTRY(cpu_arm946_dcache_clean_area) | |||
317 | mcr p15, 0, r0, c7, c10, 4 @ drain WB | 317 | mcr p15, 0, r0, c7, c10, 4 @ drain WB |
318 | mov pc, lr | 318 | mov pc, lr |
319 | 319 | ||
320 | __INIT | 320 | __CPUINIT |
321 | 321 | ||
322 | .type __arm946_setup, #function | 322 | .type __arm946_setup, #function |
323 | __arm946_setup: | 323 | __arm946_setup: |
diff --git a/arch/arm/mm/proc-arm9tdmi.S b/arch/arm/mm/proc-arm9tdmi.S index db475667fac2..db67e3134d7a 100644 --- a/arch/arm/mm/proc-arm9tdmi.S +++ b/arch/arm/mm/proc-arm9tdmi.S | |||
@@ -46,7 +46,7 @@ ENTRY(cpu_arm9tdmi_proc_fin) | |||
46 | ENTRY(cpu_arm9tdmi_reset) | 46 | ENTRY(cpu_arm9tdmi_reset) |
47 | mov pc, r0 | 47 | mov pc, r0 |
48 | 48 | ||
49 | __INIT | 49 | __CPUINIT |
50 | 50 | ||
51 | .type __arm9tdmi_setup, #function | 51 | .type __arm9tdmi_setup, #function |
52 | __arm9tdmi_setup: | 52 | __arm9tdmi_setup: |
diff --git a/arch/arm/mm/proc-fa526.S b/arch/arm/mm/proc-fa526.S index 7803fdf70029..7c9ad621f0e6 100644 --- a/arch/arm/mm/proc-fa526.S +++ b/arch/arm/mm/proc-fa526.S | |||
@@ -134,7 +134,7 @@ ENTRY(cpu_fa526_set_pte_ext) | |||
134 | #endif | 134 | #endif |
135 | mov pc, lr | 135 | mov pc, lr |
136 | 136 | ||
137 | __INIT | 137 | __CPUINIT |
138 | 138 | ||
139 | .type __fa526_setup, #function | 139 | .type __fa526_setup, #function |
140 | __fa526_setup: | 140 | __fa526_setup: |
diff --git a/arch/arm/mm/proc-feroceon.S b/arch/arm/mm/proc-feroceon.S index b304d0104a4e..578da69200cf 100644 --- a/arch/arm/mm/proc-feroceon.S +++ b/arch/arm/mm/proc-feroceon.S | |||
@@ -494,7 +494,7 @@ ENTRY(cpu_feroceon_set_pte_ext) | |||
494 | #endif | 494 | #endif |
495 | mov pc, lr | 495 | mov pc, lr |
496 | 496 | ||
497 | __INIT | 497 | __CPUINIT |
498 | 498 | ||
499 | .type __feroceon_setup, #function | 499 | .type __feroceon_setup, #function |
500 | __feroceon_setup: | 500 | __feroceon_setup: |
diff --git a/arch/arm/mm/proc-mohawk.S b/arch/arm/mm/proc-mohawk.S index 5f6892fcc167..4458ee6aa713 100644 --- a/arch/arm/mm/proc-mohawk.S +++ b/arch/arm/mm/proc-mohawk.S | |||
@@ -338,7 +338,7 @@ ENTRY(cpu_mohawk_set_pte_ext) | |||
338 | mcr p15, 0, r0, c7, c10, 4 @ drain WB | 338 | mcr p15, 0, r0, c7, c10, 4 @ drain WB |
339 | mov pc, lr | 339 | mov pc, lr |
340 | 340 | ||
341 | __INIT | 341 | __CPUINIT |
342 | 342 | ||
343 | .type __mohawk_setup, #function | 343 | .type __mohawk_setup, #function |
344 | __mohawk_setup: | 344 | __mohawk_setup: |
diff --git a/arch/arm/mm/proc-sa110.S b/arch/arm/mm/proc-sa110.S index a201eb04b5e1..5aa8d59c2e85 100644 --- a/arch/arm/mm/proc-sa110.S +++ b/arch/arm/mm/proc-sa110.S | |||
@@ -156,7 +156,7 @@ ENTRY(cpu_sa110_set_pte_ext) | |||
156 | #endif | 156 | #endif |
157 | mov pc, lr | 157 | mov pc, lr |
158 | 158 | ||
159 | __INIT | 159 | __CPUINIT |
160 | 160 | ||
161 | .type __sa110_setup, #function | 161 | .type __sa110_setup, #function |
162 | __sa110_setup: | 162 | __sa110_setup: |
diff --git a/arch/arm/mm/proc-sa1100.S b/arch/arm/mm/proc-sa1100.S index 7ddc4805bf97..2ac4e6f10713 100644 --- a/arch/arm/mm/proc-sa1100.S +++ b/arch/arm/mm/proc-sa1100.S | |||
@@ -169,7 +169,7 @@ ENTRY(cpu_sa1100_set_pte_ext) | |||
169 | #endif | 169 | #endif |
170 | mov pc, lr | 170 | mov pc, lr |
171 | 171 | ||
172 | __INIT | 172 | __CPUINIT |
173 | 173 | ||
174 | .type __sa1100_setup, #function | 174 | .type __sa1100_setup, #function |
175 | __sa1100_setup: | 175 | __sa1100_setup: |
diff --git a/arch/arm/mm/proc-v6.S b/arch/arm/mm/proc-v6.S index 22aac8515196..037d1a47ea98 100644 --- a/arch/arm/mm/proc-v6.S +++ b/arch/arm/mm/proc-v6.S | |||
@@ -137,7 +137,7 @@ cpu_pj4_name: | |||
137 | 137 | ||
138 | .align | 138 | .align |
139 | 139 | ||
140 | __INIT | 140 | __CPUINIT |
141 | 141 | ||
142 | /* | 142 | /* |
143 | * __v6_setup | 143 | * __v6_setup |
@@ -192,6 +192,8 @@ __v6_setup: | |||
192 | v6_crval: | 192 | v6_crval: |
193 | crval clear=0x01e0fb7f, mmuset=0x00c0387d, ucset=0x00c0187c | 193 | crval clear=0x01e0fb7f, mmuset=0x00c0387d, ucset=0x00c0187c |
194 | 194 | ||
195 | __INITDATA | ||
196 | |||
195 | .type v6_processor_functions, #object | 197 | .type v6_processor_functions, #object |
196 | ENTRY(v6_processor_functions) | 198 | ENTRY(v6_processor_functions) |
197 | .word v6_early_abort | 199 | .word v6_early_abort |
@@ -205,6 +207,8 @@ ENTRY(v6_processor_functions) | |||
205 | .word cpu_v6_set_pte_ext | 207 | .word cpu_v6_set_pte_ext |
206 | .size v6_processor_functions, . - v6_processor_functions | 208 | .size v6_processor_functions, . - v6_processor_functions |
207 | 209 | ||
210 | .section ".rodata" | ||
211 | |||
208 | .type cpu_arch_name, #object | 212 | .type cpu_arch_name, #object |
209 | cpu_arch_name: | 213 | cpu_arch_name: |
210 | .asciz "armv6" | 214 | .asciz "armv6" |
diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S index 6a8506d99ee9..cd15adb9b2e4 100644 --- a/arch/arm/mm/proc-v7.S +++ b/arch/arm/mm/proc-v7.S | |||
@@ -169,7 +169,7 @@ cpu_v7_name: | |||
169 | .ascii "ARMv7 Processor" | 169 | .ascii "ARMv7 Processor" |
170 | .align | 170 | .align |
171 | 171 | ||
172 | __INIT | 172 | __CPUINIT |
173 | 173 | ||
174 | /* | 174 | /* |
175 | * __v7_setup | 175 | * __v7_setup |
@@ -297,6 +297,8 @@ v7_crval: | |||
297 | __v7_setup_stack: | 297 | __v7_setup_stack: |
298 | .space 4 * 11 @ 11 registers | 298 | .space 4 * 11 @ 11 registers |
299 | 299 | ||
300 | __INITDATA | ||
301 | |||
300 | .type v7_processor_functions, #object | 302 | .type v7_processor_functions, #object |
301 | ENTRY(v7_processor_functions) | 303 | ENTRY(v7_processor_functions) |
302 | .word v7_early_abort | 304 | .word v7_early_abort |
@@ -310,6 +312,8 @@ ENTRY(v7_processor_functions) | |||
310 | .word cpu_v7_set_pte_ext | 312 | .word cpu_v7_set_pte_ext |
311 | .size v7_processor_functions, . - v7_processor_functions | 313 | .size v7_processor_functions, . - v7_processor_functions |
312 | 314 | ||
315 | .section ".rodata" | ||
316 | |||
313 | .type cpu_arch_name, #object | 317 | .type cpu_arch_name, #object |
314 | cpu_arch_name: | 318 | cpu_arch_name: |
315 | .asciz "armv7" | 319 | .asciz "armv7" |
diff --git a/arch/arm/mm/proc-xsc3.S b/arch/arm/mm/proc-xsc3.S index 361a51e49030..cad07e403044 100644 --- a/arch/arm/mm/proc-xsc3.S +++ b/arch/arm/mm/proc-xsc3.S | |||
@@ -404,7 +404,7 @@ ENTRY(cpu_xsc3_set_pte_ext) | |||
404 | 404 | ||
405 | .align | 405 | .align |
406 | 406 | ||
407 | __INIT | 407 | __CPUINIT |
408 | 408 | ||
409 | .type __xsc3_setup, #function | 409 | .type __xsc3_setup, #function |
410 | __xsc3_setup: | 410 | __xsc3_setup: |
diff --git a/arch/arm/mm/proc-xscale.S b/arch/arm/mm/proc-xscale.S index 14075979bcba..cb245edb2c2b 100644 --- a/arch/arm/mm/proc-xscale.S +++ b/arch/arm/mm/proc-xscale.S | |||
@@ -506,7 +506,7 @@ ENTRY(cpu_xscale_set_pte_ext) | |||
506 | 506 | ||
507 | .align | 507 | .align |
508 | 508 | ||
509 | __INIT | 509 | __CPUINIT |
510 | 510 | ||
511 | .type __xscale_setup, #function | 511 | .type __xscale_setup, #function |
512 | __xscale_setup: | 512 | __xscale_setup: |