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 | |
| 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>
| -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: |
