diff options
author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2006-06-29 13:24:21 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2006-06-29 13:24:21 -0400 |
commit | 8799ee9f49f6171fd58f4d64f8c067ca49006a5d (patch) | |
tree | b746b8800bc99633f31505d151624c8ccd75cd47 /arch | |
parent | 326764a85b7676388db3ebad6488f312631d7661 (diff) |
[ARM] Set bit 4 on section mappings correctly depending on CPU
On some CPUs, bit 4 of section mappings means "update the
cache when written to". On others, this bit is required to
be one, and others it's required to be zero. Finally, on
ARMv6 and above, setting it turns on "no execute" and prevents
speculative prefetches.
With all these combinations, no one value fits all CPUs, so we
have to pick a value depending on the CPU type, and the area
we're mapping.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/kernel/asm-offsets.c | 3 | ||||
-rw-r--r-- | arch/arm/kernel/head.S | 5 | ||||
-rw-r--r-- | arch/arm/mm/mm-armv.c | 37 | ||||
-rw-r--r-- | arch/arm/mm/proc-arm1020.S | 3 | ||||
-rw-r--r-- | arch/arm/mm/proc-arm1020e.S | 4 | ||||
-rw-r--r-- | arch/arm/mm/proc-arm1022.S | 4 | ||||
-rw-r--r-- | arch/arm/mm/proc-arm1026.S | 4 | ||||
-rw-r--r-- | arch/arm/mm/proc-arm6_7.S | 16 | ||||
-rw-r--r-- | arch/arm/mm/proc-arm720.S | 8 | ||||
-rw-r--r-- | arch/arm/mm/proc-arm920.S | 4 | ||||
-rw-r--r-- | arch/arm/mm/proc-arm922.S | 4 | ||||
-rw-r--r-- | arch/arm/mm/proc-arm925.S | 8 | ||||
-rw-r--r-- | arch/arm/mm/proc-arm926.S | 4 | ||||
-rw-r--r-- | arch/arm/mm/proc-sa110.S | 3 | ||||
-rw-r--r-- | arch/arm/mm/proc-sa1100.S | 6 | ||||
-rw-r--r-- | arch/arm/mm/proc-v6.S | 4 | ||||
-rw-r--r-- | arch/arm/mm/proc-xsc3.S | 9 | ||||
-rw-r--r-- | arch/arm/mm/proc-xscale.S | 39 |
18 files changed, 144 insertions, 21 deletions
diff --git a/arch/arm/kernel/asm-offsets.c b/arch/arm/kernel/asm-offsets.c index 447ede5143a8..cc2d58d028e1 100644 --- a/arch/arm/kernel/asm-offsets.c +++ b/arch/arm/kernel/asm-offsets.c | |||
@@ -105,6 +105,7 @@ int main(void) | |||
105 | BLANK(); | 105 | BLANK(); |
106 | DEFINE(PROC_INFO_SZ, sizeof(struct proc_info_list)); | 106 | DEFINE(PROC_INFO_SZ, sizeof(struct proc_info_list)); |
107 | DEFINE(PROCINFO_INITFUNC, offsetof(struct proc_info_list, __cpu_flush)); | 107 | DEFINE(PROCINFO_INITFUNC, offsetof(struct proc_info_list, __cpu_flush)); |
108 | DEFINE(PROCINFO_MMUFLAGS, offsetof(struct proc_info_list, __cpu_mmu_flags)); | 108 | DEFINE(PROCINFO_MM_MMUFLAGS, offsetof(struct proc_info_list, __cpu_mm_mmu_flags)); |
109 | DEFINE(PROCINFO_IO_MMUFLAGS, offsetof(struct proc_info_list, __cpu_io_mmu_flags)); | ||
109 | return 0; | 110 | return 0; |
110 | } | 111 | } |
diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S index 330b9476c398..81cb902c487c 100644 --- a/arch/arm/kernel/head.S +++ b/arch/arm/kernel/head.S | |||
@@ -221,7 +221,7 @@ __create_page_tables: | |||
221 | teq r0, r6 | 221 | teq r0, r6 |
222 | bne 1b | 222 | bne 1b |
223 | 223 | ||
224 | ldr r7, [r10, #PROCINFO_MMUFLAGS] @ mmuflags | 224 | ldr r7, [r10, #PROCINFO_MM_MMUFLAGS] @ mm_mmuflags |
225 | 225 | ||
226 | /* | 226 | /* |
227 | * Create identity mapping for first MB of kernel to | 227 | * Create identity mapping for first MB of kernel to |
@@ -272,8 +272,7 @@ __create_page_tables: | |||
272 | #endif | 272 | #endif |
273 | 273 | ||
274 | #ifdef CONFIG_DEBUG_LL | 274 | #ifdef CONFIG_DEBUG_LL |
275 | bic r7, r7, #0x0c @ turn off cacheable | 275 | ldr r7, [r10, #PROCINFO_IO_MMUFLAGS] @ io_mmuflags |
276 | @ and bufferable bits | ||
277 | /* | 276 | /* |
278 | * Map in IO space for serial debugging. | 277 | * Map in IO space for serial debugging. |
279 | * This allows debug messages to be output | 278 | * This allows debug messages to be output |
diff --git a/arch/arm/mm/mm-armv.c b/arch/arm/mm/mm-armv.c index 95273de4f772..d06440cc4e8f 100644 --- a/arch/arm/mm/mm-armv.c +++ b/arch/arm/mm/mm-armv.c | |||
@@ -303,16 +303,16 @@ static struct mem_types mem_types[] __initdata = { | |||
303 | .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY | | 303 | .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY | |
304 | L_PTE_WRITE, | 304 | L_PTE_WRITE, |
305 | .prot_l1 = PMD_TYPE_TABLE, | 305 | .prot_l1 = PMD_TYPE_TABLE, |
306 | .prot_sect = PMD_TYPE_SECT | PMD_SECT_UNCACHED | | 306 | .prot_sect = PMD_TYPE_SECT | PMD_BIT4 | PMD_SECT_UNCACHED | |
307 | PMD_SECT_AP_WRITE, | 307 | PMD_SECT_AP_WRITE, |
308 | .domain = DOMAIN_IO, | 308 | .domain = DOMAIN_IO, |
309 | }, | 309 | }, |
310 | [MT_CACHECLEAN] = { | 310 | [MT_CACHECLEAN] = { |
311 | .prot_sect = PMD_TYPE_SECT, | 311 | .prot_sect = PMD_TYPE_SECT | PMD_BIT4, |
312 | .domain = DOMAIN_KERNEL, | 312 | .domain = DOMAIN_KERNEL, |
313 | }, | 313 | }, |
314 | [MT_MINICLEAN] = { | 314 | [MT_MINICLEAN] = { |
315 | .prot_sect = PMD_TYPE_SECT | PMD_SECT_MINICACHE, | 315 | .prot_sect = PMD_TYPE_SECT | PMD_BIT4 | PMD_SECT_MINICACHE, |
316 | .domain = DOMAIN_KERNEL, | 316 | .domain = DOMAIN_KERNEL, |
317 | }, | 317 | }, |
318 | [MT_LOW_VECTORS] = { | 318 | [MT_LOW_VECTORS] = { |
@@ -328,25 +328,25 @@ static struct mem_types mem_types[] __initdata = { | |||
328 | .domain = DOMAIN_USER, | 328 | .domain = DOMAIN_USER, |
329 | }, | 329 | }, |
330 | [MT_MEMORY] = { | 330 | [MT_MEMORY] = { |
331 | .prot_sect = PMD_TYPE_SECT | PMD_SECT_AP_WRITE, | 331 | .prot_sect = PMD_TYPE_SECT | PMD_BIT4 | PMD_SECT_AP_WRITE, |
332 | .domain = DOMAIN_KERNEL, | 332 | .domain = DOMAIN_KERNEL, |
333 | }, | 333 | }, |
334 | [MT_ROM] = { | 334 | [MT_ROM] = { |
335 | .prot_sect = PMD_TYPE_SECT, | 335 | .prot_sect = PMD_TYPE_SECT | PMD_BIT4, |
336 | .domain = DOMAIN_KERNEL, | 336 | .domain = DOMAIN_KERNEL, |
337 | }, | 337 | }, |
338 | [MT_IXP2000_DEVICE] = { /* IXP2400 requires XCB=101 for on-chip I/O */ | 338 | [MT_IXP2000_DEVICE] = { /* IXP2400 requires XCB=101 for on-chip I/O */ |
339 | .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY | | 339 | .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY | |
340 | L_PTE_WRITE, | 340 | L_PTE_WRITE, |
341 | .prot_l1 = PMD_TYPE_TABLE, | 341 | .prot_l1 = PMD_TYPE_TABLE, |
342 | .prot_sect = PMD_TYPE_SECT | PMD_SECT_UNCACHED | | 342 | .prot_sect = PMD_TYPE_SECT | PMD_BIT4 | PMD_SECT_UNCACHED | |
343 | PMD_SECT_AP_WRITE | PMD_SECT_BUFFERABLE | | 343 | PMD_SECT_AP_WRITE | PMD_SECT_BUFFERABLE | |
344 | PMD_SECT_TEX(1), | 344 | PMD_SECT_TEX(1), |
345 | .domain = DOMAIN_IO, | 345 | .domain = DOMAIN_IO, |
346 | }, | 346 | }, |
347 | [MT_NONSHARED_DEVICE] = { | 347 | [MT_NONSHARED_DEVICE] = { |
348 | .prot_l1 = PMD_TYPE_TABLE, | 348 | .prot_l1 = PMD_TYPE_TABLE, |
349 | .prot_sect = PMD_TYPE_SECT | PMD_SECT_NONSHARED_DEV | | 349 | .prot_sect = PMD_TYPE_SECT | PMD_BIT4 | PMD_SECT_NONSHARED_DEV | |
350 | PMD_SECT_AP_WRITE, | 350 | PMD_SECT_AP_WRITE, |
351 | .domain = DOMAIN_IO, | 351 | .domain = DOMAIN_IO, |
352 | } | 352 | } |
@@ -376,14 +376,21 @@ void __init build_mem_type_table(void) | |||
376 | ecc_mask = 0; | 376 | ecc_mask = 0; |
377 | } | 377 | } |
378 | 378 | ||
379 | if (cpu_arch <= CPU_ARCH_ARMv5TEJ && !cpu_is_xscale()) { | 379 | /* |
380 | for (i = 0; i < ARRAY_SIZE(mem_types); i++) { | 380 | * Xscale must not have PMD bit 4 set for section mappings. |
381 | */ | ||
382 | if (cpu_is_xscale()) | ||
383 | for (i = 0; i < ARRAY_SIZE(mem_types); i++) | ||
384 | mem_types[i].prot_sect &= ~PMD_BIT4; | ||
385 | |||
386 | /* | ||
387 | * ARMv5 and lower, excluding Xscale, bit 4 must be set for | ||
388 | * page tables. | ||
389 | */ | ||
390 | if (cpu_arch < CPU_ARCH_ARMv6 && !cpu_is_xscale()) | ||
391 | for (i = 0; i < ARRAY_SIZE(mem_types); i++) | ||
381 | if (mem_types[i].prot_l1) | 392 | if (mem_types[i].prot_l1) |
382 | mem_types[i].prot_l1 |= PMD_BIT4; | 393 | mem_types[i].prot_l1 |= PMD_BIT4; |
383 | if (mem_types[i].prot_sect) | ||
384 | mem_types[i].prot_sect |= PMD_BIT4; | ||
385 | } | ||
386 | } | ||
387 | 394 | ||
388 | cp = &cache_policies[cachepolicy]; | 395 | cp = &cache_policies[cachepolicy]; |
389 | kern_pgprot = user_pgprot = cp->pte; | 396 | kern_pgprot = user_pgprot = cp->pte; |
@@ -407,8 +414,8 @@ void __init build_mem_type_table(void) | |||
407 | * bit 4 becomes XN which we must clear for the | 414 | * bit 4 becomes XN which we must clear for the |
408 | * kernel memory mapping. | 415 | * kernel memory mapping. |
409 | */ | 416 | */ |
410 | mem_types[MT_MEMORY].prot_sect &= ~PMD_BIT4; | 417 | mem_types[MT_MEMORY].prot_sect &= ~PMD_SECT_XN; |
411 | mem_types[MT_ROM].prot_sect &= ~PMD_BIT4; | 418 | mem_types[MT_ROM].prot_sect &= ~PMD_SECT_XN; |
412 | 419 | ||
413 | /* | 420 | /* |
414 | * Mark cache clean areas and XIP ROM read only | 421 | * Mark cache clean areas and XIP ROM read only |
diff --git a/arch/arm/mm/proc-arm1020.S b/arch/arm/mm/proc-arm1020.S index b9abbafca812..efeebe77891f 100644 --- a/arch/arm/mm/proc-arm1020.S +++ b/arch/arm/mm/proc-arm1020.S | |||
@@ -527,6 +527,9 @@ __arm1020_proc_info: | |||
527 | .long PMD_TYPE_SECT | \ | 527 | .long PMD_TYPE_SECT | \ |
528 | PMD_SECT_AP_WRITE | \ | 528 | PMD_SECT_AP_WRITE | \ |
529 | PMD_SECT_AP_READ | 529 | PMD_SECT_AP_READ |
530 | .long PMD_TYPE_SECT | \ | ||
531 | PMD_SECT_AP_WRITE | \ | ||
532 | PMD_SECT_AP_READ | ||
530 | b __arm1020_setup | 533 | b __arm1020_setup |
531 | .long cpu_arch_name | 534 | .long cpu_arch_name |
532 | .long cpu_elf_name | 535 | .long cpu_elf_name |
diff --git a/arch/arm/mm/proc-arm1020e.S b/arch/arm/mm/proc-arm1020e.S index 8c7e25f4b7e7..78622ac1e732 100644 --- a/arch/arm/mm/proc-arm1020e.S +++ b/arch/arm/mm/proc-arm1020e.S | |||
@@ -492,6 +492,10 @@ __arm1020e_proc_info: | |||
492 | PMD_BIT4 | \ | 492 | PMD_BIT4 | \ |
493 | PMD_SECT_AP_WRITE | \ | 493 | PMD_SECT_AP_WRITE | \ |
494 | PMD_SECT_AP_READ | 494 | PMD_SECT_AP_READ |
495 | .long PMD_TYPE_SECT | \ | ||
496 | PMD_BIT4 | \ | ||
497 | PMD_SECT_AP_WRITE | \ | ||
498 | PMD_SECT_AP_READ | ||
495 | b __arm1020e_setup | 499 | b __arm1020e_setup |
496 | .long cpu_arch_name | 500 | .long cpu_arch_name |
497 | .long cpu_elf_name | 501 | .long cpu_elf_name |
diff --git a/arch/arm/mm/proc-arm1022.S b/arch/arm/mm/proc-arm1022.S index 92218e6b3906..840dfc85ba6d 100644 --- a/arch/arm/mm/proc-arm1022.S +++ b/arch/arm/mm/proc-arm1022.S | |||
@@ -475,6 +475,10 @@ __arm1022_proc_info: | |||
475 | PMD_BIT4 | \ | 475 | PMD_BIT4 | \ |
476 | PMD_SECT_AP_WRITE | \ | 476 | PMD_SECT_AP_WRITE | \ |
477 | PMD_SECT_AP_READ | 477 | PMD_SECT_AP_READ |
478 | .long PMD_TYPE_SECT | \ | ||
479 | PMD_BIT4 | \ | ||
480 | PMD_SECT_AP_WRITE | \ | ||
481 | PMD_SECT_AP_READ | ||
478 | b __arm1022_setup | 482 | b __arm1022_setup |
479 | .long cpu_arch_name | 483 | .long cpu_arch_name |
480 | .long cpu_elf_name | 484 | .long cpu_elf_name |
diff --git a/arch/arm/mm/proc-arm1026.S b/arch/arm/mm/proc-arm1026.S index 2796c8e0ddf3..72b75d9c712a 100644 --- a/arch/arm/mm/proc-arm1026.S +++ b/arch/arm/mm/proc-arm1026.S | |||
@@ -471,6 +471,10 @@ __arm1026_proc_info: | |||
471 | PMD_BIT4 | \ | 471 | PMD_BIT4 | \ |
472 | PMD_SECT_AP_WRITE | \ | 472 | PMD_SECT_AP_WRITE | \ |
473 | PMD_SECT_AP_READ | 473 | PMD_SECT_AP_READ |
474 | .long PMD_TYPE_SECT | \ | ||
475 | PMD_BIT4 | \ | ||
476 | PMD_SECT_AP_WRITE | \ | ||
477 | PMD_SECT_AP_READ | ||
474 | b __arm1026_setup | 478 | b __arm1026_setup |
475 | .long cpu_arch_name | 479 | .long cpu_arch_name |
476 | .long cpu_elf_name | 480 | .long cpu_elf_name |
diff --git a/arch/arm/mm/proc-arm6_7.S b/arch/arm/mm/proc-arm6_7.S index 7a705edfa4b2..0432e4806888 100644 --- a/arch/arm/mm/proc-arm6_7.S +++ b/arch/arm/mm/proc-arm6_7.S | |||
@@ -355,6 +355,10 @@ __arm6_proc_info: | |||
355 | .long 0x41560600 | 355 | .long 0x41560600 |
356 | .long 0xfffffff0 | 356 | .long 0xfffffff0 |
357 | .long 0x00000c1e | 357 | .long 0x00000c1e |
358 | .long PMD_TYPE_SECT | \ | ||
359 | PMD_BIT4 | \ | ||
360 | PMD_SECT_AP_WRITE | \ | ||
361 | PMD_SECT_AP_READ | ||
358 | b __arm6_setup | 362 | b __arm6_setup |
359 | .long cpu_arch_name | 363 | .long cpu_arch_name |
360 | .long cpu_elf_name | 364 | .long cpu_elf_name |
@@ -371,6 +375,10 @@ __arm610_proc_info: | |||
371 | .long 0x41560610 | 375 | .long 0x41560610 |
372 | .long 0xfffffff0 | 376 | .long 0xfffffff0 |
373 | .long 0x00000c1e | 377 | .long 0x00000c1e |
378 | .long PMD_TYPE_SECT | \ | ||
379 | PMD_BIT4 | \ | ||
380 | PMD_SECT_AP_WRITE | \ | ||
381 | PMD_SECT_AP_READ | ||
374 | b __arm6_setup | 382 | b __arm6_setup |
375 | .long cpu_arch_name | 383 | .long cpu_arch_name |
376 | .long cpu_elf_name | 384 | .long cpu_elf_name |
@@ -387,6 +395,10 @@ __arm7_proc_info: | |||
387 | .long 0x41007000 | 395 | .long 0x41007000 |
388 | .long 0xffffff00 | 396 | .long 0xffffff00 |
389 | .long 0x00000c1e | 397 | .long 0x00000c1e |
398 | .long PMD_TYPE_SECT | \ | ||
399 | PMD_BIT4 | \ | ||
400 | PMD_SECT_AP_WRITE | \ | ||
401 | PMD_SECT_AP_READ | ||
390 | b __arm7_setup | 402 | b __arm7_setup |
391 | .long cpu_arch_name | 403 | .long cpu_arch_name |
392 | .long cpu_elf_name | 404 | .long cpu_elf_name |
@@ -408,6 +420,10 @@ __arm710_proc_info: | |||
408 | PMD_BIT4 | \ | 420 | PMD_BIT4 | \ |
409 | PMD_SECT_AP_WRITE | \ | 421 | PMD_SECT_AP_WRITE | \ |
410 | PMD_SECT_AP_READ | 422 | PMD_SECT_AP_READ |
423 | .long PMD_TYPE_SECT | \ | ||
424 | PMD_BIT4 | \ | ||
425 | PMD_SECT_AP_WRITE | \ | ||
426 | PMD_SECT_AP_READ | ||
411 | b __arm7_setup | 427 | b __arm7_setup |
412 | .long cpu_arch_name | 428 | .long cpu_arch_name |
413 | .long cpu_elf_name | 429 | .long cpu_elf_name |
diff --git a/arch/arm/mm/proc-arm720.S b/arch/arm/mm/proc-arm720.S index 86102467d37f..fb4110a9db6f 100644 --- a/arch/arm/mm/proc-arm720.S +++ b/arch/arm/mm/proc-arm720.S | |||
@@ -246,6 +246,10 @@ __arm710_proc_info: | |||
246 | PMD_BIT4 | \ | 246 | PMD_BIT4 | \ |
247 | PMD_SECT_AP_WRITE | \ | 247 | PMD_SECT_AP_WRITE | \ |
248 | PMD_SECT_AP_READ | 248 | PMD_SECT_AP_READ |
249 | .long PMD_TYPE_SECT | \ | ||
250 | PMD_BIT4 | \ | ||
251 | PMD_SECT_AP_WRITE | \ | ||
252 | PMD_SECT_AP_READ | ||
249 | b __arm710_setup @ cpu_flush | 253 | b __arm710_setup @ cpu_flush |
250 | .long cpu_arch_name @ arch_name | 254 | .long cpu_arch_name @ arch_name |
251 | .long cpu_elf_name @ elf_name | 255 | .long cpu_elf_name @ elf_name |
@@ -267,6 +271,10 @@ __arm720_proc_info: | |||
267 | PMD_BIT4 | \ | 271 | PMD_BIT4 | \ |
268 | PMD_SECT_AP_WRITE | \ | 272 | PMD_SECT_AP_WRITE | \ |
269 | PMD_SECT_AP_READ | 273 | PMD_SECT_AP_READ |
274 | .long PMD_TYPE_SECT | \ | ||
275 | PMD_BIT4 | \ | ||
276 | PMD_SECT_AP_WRITE | \ | ||
277 | PMD_SECT_AP_READ | ||
270 | b __arm720_setup @ cpu_flush | 278 | b __arm720_setup @ cpu_flush |
271 | .long cpu_arch_name @ arch_name | 279 | .long cpu_arch_name @ arch_name |
272 | .long cpu_elf_name @ elf_name | 280 | .long cpu_elf_name @ elf_name |
diff --git a/arch/arm/mm/proc-arm920.S b/arch/arm/mm/proc-arm920.S index 02af3e2a8247..b9f1bd11bc62 100644 --- a/arch/arm/mm/proc-arm920.S +++ b/arch/arm/mm/proc-arm920.S | |||
@@ -461,6 +461,10 @@ __arm920_proc_info: | |||
461 | PMD_BIT4 | \ | 461 | PMD_BIT4 | \ |
462 | PMD_SECT_AP_WRITE | \ | 462 | PMD_SECT_AP_WRITE | \ |
463 | PMD_SECT_AP_READ | 463 | PMD_SECT_AP_READ |
464 | .long PMD_TYPE_SECT | \ | ||
465 | PMD_BIT4 | \ | ||
466 | PMD_SECT_AP_WRITE | \ | ||
467 | PMD_SECT_AP_READ | ||
464 | b __arm920_setup | 468 | b __arm920_setup |
465 | .long cpu_arch_name | 469 | .long cpu_arch_name |
466 | .long cpu_elf_name | 470 | .long cpu_elf_name |
diff --git a/arch/arm/mm/proc-arm922.S b/arch/arm/mm/proc-arm922.S index 33dae4929f09..bda0aea4ce82 100644 --- a/arch/arm/mm/proc-arm922.S +++ b/arch/arm/mm/proc-arm922.S | |||
@@ -465,6 +465,10 @@ __arm922_proc_info: | |||
465 | PMD_BIT4 | \ | 465 | PMD_BIT4 | \ |
466 | PMD_SECT_AP_WRITE | \ | 466 | PMD_SECT_AP_WRITE | \ |
467 | PMD_SECT_AP_READ | 467 | PMD_SECT_AP_READ |
468 | .long PMD_TYPE_SECT | \ | ||
469 | PMD_BIT4 | \ | ||
470 | PMD_SECT_AP_WRITE | \ | ||
471 | PMD_SECT_AP_READ | ||
468 | b __arm922_setup | 472 | b __arm922_setup |
469 | .long cpu_arch_name | 473 | .long cpu_arch_name |
470 | .long cpu_elf_name | 474 | .long cpu_elf_name |
diff --git a/arch/arm/mm/proc-arm925.S b/arch/arm/mm/proc-arm925.S index aaa9f985b246..a28da8f0578f 100644 --- a/arch/arm/mm/proc-arm925.S +++ b/arch/arm/mm/proc-arm925.S | |||
@@ -526,6 +526,10 @@ __arm925_proc_info: | |||
526 | PMD_BIT4 | \ | 526 | PMD_BIT4 | \ |
527 | PMD_SECT_AP_WRITE | \ | 527 | PMD_SECT_AP_WRITE | \ |
528 | PMD_SECT_AP_READ | 528 | PMD_SECT_AP_READ |
529 | .long PMD_TYPE_SECT | \ | ||
530 | PMD_BIT4 | \ | ||
531 | PMD_SECT_AP_WRITE | \ | ||
532 | PMD_SECT_AP_READ | ||
529 | b __arm925_setup | 533 | b __arm925_setup |
530 | .long cpu_arch_name | 534 | .long cpu_arch_name |
531 | .long cpu_elf_name | 535 | .long cpu_elf_name |
@@ -545,6 +549,10 @@ __arm915_proc_info: | |||
545 | PMD_BIT4 | \ | 549 | PMD_BIT4 | \ |
546 | PMD_SECT_AP_WRITE | \ | 550 | PMD_SECT_AP_WRITE | \ |
547 | PMD_SECT_AP_READ | 551 | PMD_SECT_AP_READ |
552 | .long PMD_TYPE_SECT | \ | ||
553 | PMD_BIT4 | \ | ||
554 | PMD_SECT_AP_WRITE | \ | ||
555 | PMD_SECT_AP_READ | ||
548 | b __arm925_setup | 556 | b __arm925_setup |
549 | .long cpu_arch_name | 557 | .long cpu_arch_name |
550 | .long cpu_elf_name | 558 | .long cpu_elf_name |
diff --git a/arch/arm/mm/proc-arm926.S b/arch/arm/mm/proc-arm926.S index ce246dd7b407..496a2335d69e 100644 --- a/arch/arm/mm/proc-arm926.S +++ b/arch/arm/mm/proc-arm926.S | |||
@@ -477,6 +477,10 @@ __arm926_proc_info: | |||
477 | PMD_BIT4 | \ | 477 | PMD_BIT4 | \ |
478 | PMD_SECT_AP_WRITE | \ | 478 | PMD_SECT_AP_WRITE | \ |
479 | PMD_SECT_AP_READ | 479 | PMD_SECT_AP_READ |
480 | .long PMD_TYPE_SECT | \ | ||
481 | PMD_BIT4 | \ | ||
482 | PMD_SECT_AP_WRITE | \ | ||
483 | PMD_SECT_AP_READ | ||
480 | b __arm926_setup | 484 | b __arm926_setup |
481 | .long cpu_arch_name | 485 | .long cpu_arch_name |
482 | .long cpu_elf_name | 486 | .long cpu_elf_name |
diff --git a/arch/arm/mm/proc-sa110.S b/arch/arm/mm/proc-sa110.S index 5a760a2c629c..31a09087865d 100644 --- a/arch/arm/mm/proc-sa110.S +++ b/arch/arm/mm/proc-sa110.S | |||
@@ -255,6 +255,9 @@ __sa110_proc_info: | |||
255 | PMD_SECT_CACHEABLE | \ | 255 | PMD_SECT_CACHEABLE | \ |
256 | PMD_SECT_AP_WRITE | \ | 256 | PMD_SECT_AP_WRITE | \ |
257 | PMD_SECT_AP_READ | 257 | PMD_SECT_AP_READ |
258 | .long PMD_TYPE_SECT | \ | ||
259 | PMD_SECT_AP_WRITE | \ | ||
260 | PMD_SECT_AP_READ | ||
258 | b __sa110_setup | 261 | b __sa110_setup |
259 | .long cpu_arch_name | 262 | .long cpu_arch_name |
260 | .long cpu_elf_name | 263 | .long cpu_elf_name |
diff --git a/arch/arm/mm/proc-sa1100.S b/arch/arm/mm/proc-sa1100.S index 0a2107ad4c32..4e2489c3e1cc 100644 --- a/arch/arm/mm/proc-sa1100.S +++ b/arch/arm/mm/proc-sa1100.S | |||
@@ -276,6 +276,9 @@ __sa1100_proc_info: | |||
276 | PMD_SECT_CACHEABLE | \ | 276 | PMD_SECT_CACHEABLE | \ |
277 | PMD_SECT_AP_WRITE | \ | 277 | PMD_SECT_AP_WRITE | \ |
278 | PMD_SECT_AP_READ | 278 | PMD_SECT_AP_READ |
279 | .long PMD_TYPE_SECT | \ | ||
280 | PMD_SECT_AP_WRITE | \ | ||
281 | PMD_SECT_AP_READ | ||
279 | b __sa1100_setup | 282 | b __sa1100_setup |
280 | .long cpu_arch_name | 283 | .long cpu_arch_name |
281 | .long cpu_elf_name | 284 | .long cpu_elf_name |
@@ -296,6 +299,9 @@ __sa1110_proc_info: | |||
296 | PMD_SECT_CACHEABLE | \ | 299 | PMD_SECT_CACHEABLE | \ |
297 | PMD_SECT_AP_WRITE | \ | 300 | PMD_SECT_AP_WRITE | \ |
298 | PMD_SECT_AP_READ | 301 | PMD_SECT_AP_READ |
302 | .long PMD_TYPE_SECT | \ | ||
303 | PMD_SECT_AP_WRITE | \ | ||
304 | PMD_SECT_AP_READ | ||
299 | b __sa1100_setup | 305 | b __sa1100_setup |
300 | .long cpu_arch_name | 306 | .long cpu_arch_name |
301 | .long cpu_elf_name | 307 | .long cpu_elf_name |
diff --git a/arch/arm/mm/proc-v6.S b/arch/arm/mm/proc-v6.S index ca13d4d05f65..ff778967a005 100644 --- a/arch/arm/mm/proc-v6.S +++ b/arch/arm/mm/proc-v6.S | |||
@@ -269,6 +269,10 @@ __v6_proc_info: | |||
269 | PMD_SECT_CACHEABLE | \ | 269 | PMD_SECT_CACHEABLE | \ |
270 | PMD_SECT_AP_WRITE | \ | 270 | PMD_SECT_AP_WRITE | \ |
271 | PMD_SECT_AP_READ | 271 | PMD_SECT_AP_READ |
272 | .long PMD_TYPE_SECT | \ | ||
273 | PMD_SECT_XN | \ | ||
274 | PMD_SECT_AP_WRITE | \ | ||
275 | PMD_SECT_AP_READ | ||
272 | b __v6_setup | 276 | b __v6_setup |
273 | .long cpu_arch_name | 277 | .long cpu_arch_name |
274 | .long cpu_elf_name | 278 | .long cpu_elf_name |
diff --git a/arch/arm/mm/proc-xsc3.S b/arch/arm/mm/proc-xsc3.S index 8d32e21fe151..9aea506d3e65 100644 --- a/arch/arm/mm/proc-xsc3.S +++ b/arch/arm/mm/proc-xsc3.S | |||
@@ -487,7 +487,14 @@ cpu_xsc3_name: | |||
487 | __xsc3_proc_info: | 487 | __xsc3_proc_info: |
488 | .long 0x69056000 | 488 | .long 0x69056000 |
489 | .long 0xffffe000 | 489 | .long 0xffffe000 |
490 | .long 0x00000c0e | 490 | .long PMD_TYPE_SECT | \ |
491 | PMD_SECT_BUFFERABLE | \ | ||
492 | PMD_SECT_CACHEABLE | \ | ||
493 | PMD_SECT_AP_WRITE | \ | ||
494 | PMD_SECT_AP_READ | ||
495 | .long PMD_TYPE_SECT | \ | ||
496 | PMD_SECT_AP_WRITE | \ | ||
497 | PMD_SECT_AP_READ | ||
491 | b __xsc3_setup | 498 | b __xsc3_setup |
492 | .long cpu_arch_name | 499 | .long cpu_arch_name |
493 | .long cpu_elf_name | 500 | .long cpu_elf_name |
diff --git a/arch/arm/mm/proc-xscale.S b/arch/arm/mm/proc-xscale.S index 29bcc4dd6517..f4aeb7b06911 100644 --- a/arch/arm/mm/proc-xscale.S +++ b/arch/arm/mm/proc-xscale.S | |||
@@ -595,6 +595,9 @@ __80200_proc_info: | |||
595 | PMD_SECT_CACHEABLE | \ | 595 | PMD_SECT_CACHEABLE | \ |
596 | PMD_SECT_AP_WRITE | \ | 596 | PMD_SECT_AP_WRITE | \ |
597 | PMD_SECT_AP_READ | 597 | PMD_SECT_AP_READ |
598 | .long PMD_TYPE_SECT | \ | ||
599 | PMD_SECT_AP_WRITE | \ | ||
600 | PMD_SECT_AP_READ | ||
598 | b __xscale_setup | 601 | b __xscale_setup |
599 | .long cpu_arch_name | 602 | .long cpu_arch_name |
600 | .long cpu_elf_name | 603 | .long cpu_elf_name |
@@ -615,6 +618,9 @@ __8032x_proc_info: | |||
615 | PMD_SECT_CACHEABLE | \ | 618 | PMD_SECT_CACHEABLE | \ |
616 | PMD_SECT_AP_WRITE | \ | 619 | PMD_SECT_AP_WRITE | \ |
617 | PMD_SECT_AP_READ | 620 | PMD_SECT_AP_READ |
621 | .long PMD_TYPE_SECT | \ | ||
622 | PMD_SECT_AP_WRITE | \ | ||
623 | PMD_SECT_AP_READ | ||
618 | b __xscale_setup | 624 | b __xscale_setup |
619 | .long cpu_arch_name | 625 | .long cpu_arch_name |
620 | .long cpu_elf_name | 626 | .long cpu_elf_name |
@@ -635,6 +641,9 @@ __8033x_proc_info: | |||
635 | PMD_SECT_CACHEABLE | \ | 641 | PMD_SECT_CACHEABLE | \ |
636 | PMD_SECT_AP_WRITE | \ | 642 | PMD_SECT_AP_WRITE | \ |
637 | PMD_SECT_AP_READ | 643 | PMD_SECT_AP_READ |
644 | .long PMD_TYPE_SECT | \ | ||
645 | PMD_SECT_AP_WRITE | \ | ||
646 | PMD_SECT_AP_READ | ||
638 | b __xscale_setup | 647 | b __xscale_setup |
639 | .long cpu_arch_name | 648 | .long cpu_arch_name |
640 | .long cpu_elf_name | 649 | .long cpu_elf_name |
@@ -655,6 +664,9 @@ __pxa250_proc_info: | |||
655 | PMD_SECT_CACHEABLE | \ | 664 | PMD_SECT_CACHEABLE | \ |
656 | PMD_SECT_AP_WRITE | \ | 665 | PMD_SECT_AP_WRITE | \ |
657 | PMD_SECT_AP_READ | 666 | PMD_SECT_AP_READ |
667 | .long PMD_TYPE_SECT | \ | ||
668 | PMD_SECT_AP_WRITE | \ | ||
669 | PMD_SECT_AP_READ | ||
658 | b __xscale_setup | 670 | b __xscale_setup |
659 | .long cpu_arch_name | 671 | .long cpu_arch_name |
660 | .long cpu_elf_name | 672 | .long cpu_elf_name |
@@ -675,6 +687,9 @@ __pxa210_proc_info: | |||
675 | PMD_SECT_CACHEABLE | \ | 687 | PMD_SECT_CACHEABLE | \ |
676 | PMD_SECT_AP_WRITE | \ | 688 | PMD_SECT_AP_WRITE | \ |
677 | PMD_SECT_AP_READ | 689 | PMD_SECT_AP_READ |
690 | .long PMD_TYPE_SECT | \ | ||
691 | PMD_SECT_AP_WRITE | \ | ||
692 | PMD_SECT_AP_READ | ||
678 | b __xscale_setup | 693 | b __xscale_setup |
679 | .long cpu_arch_name | 694 | .long cpu_arch_name |
680 | .long cpu_elf_name | 695 | .long cpu_elf_name |
@@ -695,6 +710,9 @@ __ixp2400_proc_info: | |||
695 | PMD_SECT_CACHEABLE | \ | 710 | PMD_SECT_CACHEABLE | \ |
696 | PMD_SECT_AP_WRITE | \ | 711 | PMD_SECT_AP_WRITE | \ |
697 | PMD_SECT_AP_READ | 712 | PMD_SECT_AP_READ |
713 | .long PMD_TYPE_SECT | \ | ||
714 | PMD_SECT_AP_WRITE | \ | ||
715 | PMD_SECT_AP_READ | ||
698 | b __xscale_setup | 716 | b __xscale_setup |
699 | .long cpu_arch_name | 717 | .long cpu_arch_name |
700 | .long cpu_elf_name | 718 | .long cpu_elf_name |
@@ -715,6 +733,9 @@ __ixp2800_proc_info: | |||
715 | PMD_SECT_CACHEABLE | \ | 733 | PMD_SECT_CACHEABLE | \ |
716 | PMD_SECT_AP_WRITE | \ | 734 | PMD_SECT_AP_WRITE | \ |
717 | PMD_SECT_AP_READ | 735 | PMD_SECT_AP_READ |
736 | .long PMD_TYPE_SECT | \ | ||
737 | PMD_SECT_AP_WRITE | \ | ||
738 | PMD_SECT_AP_READ | ||
718 | b __xscale_setup | 739 | b __xscale_setup |
719 | .long cpu_arch_name | 740 | .long cpu_arch_name |
720 | .long cpu_elf_name | 741 | .long cpu_elf_name |
@@ -735,6 +756,9 @@ __ixp42x_proc_info: | |||
735 | PMD_SECT_CACHEABLE | \ | 756 | PMD_SECT_CACHEABLE | \ |
736 | PMD_SECT_AP_WRITE | \ | 757 | PMD_SECT_AP_WRITE | \ |
737 | PMD_SECT_AP_READ | 758 | PMD_SECT_AP_READ |
759 | .long PMD_TYPE_SECT | \ | ||
760 | PMD_SECT_AP_WRITE | \ | ||
761 | PMD_SECT_AP_READ | ||
738 | b __xscale_setup | 762 | b __xscale_setup |
739 | .long cpu_arch_name | 763 | .long cpu_arch_name |
740 | .long cpu_elf_name | 764 | .long cpu_elf_name |
@@ -750,7 +774,14 @@ __ixp42x_proc_info: | |||
750 | __ixp46x_proc_info: | 774 | __ixp46x_proc_info: |
751 | .long 0x69054200 | 775 | .long 0x69054200 |
752 | .long 0xffffff00 | 776 | .long 0xffffff00 |
753 | .long 0x00000c0e | 777 | .long PMD_TYPE_SECT | \ |
778 | PMD_SECT_BUFFERABLE | \ | ||
779 | PMD_SECT_CACHEABLE | \ | ||
780 | PMD_SECT_AP_WRITE | \ | ||
781 | PMD_SECT_AP_READ | ||
782 | .long PMD_TYPE_SECT | \ | ||
783 | PMD_SECT_AP_WRITE | \ | ||
784 | PMD_SECT_AP_READ | ||
754 | b __xscale_setup | 785 | b __xscale_setup |
755 | .long cpu_arch_name | 786 | .long cpu_arch_name |
756 | .long cpu_elf_name | 787 | .long cpu_elf_name |
@@ -771,6 +802,9 @@ __pxa255_proc_info: | |||
771 | PMD_SECT_CACHEABLE | \ | 802 | PMD_SECT_CACHEABLE | \ |
772 | PMD_SECT_AP_WRITE | \ | 803 | PMD_SECT_AP_WRITE | \ |
773 | PMD_SECT_AP_READ | 804 | PMD_SECT_AP_READ |
805 | .long PMD_TYPE_SECT | \ | ||
806 | PMD_SECT_AP_WRITE | \ | ||
807 | PMD_SECT_AP_READ | ||
774 | b __xscale_setup | 808 | b __xscale_setup |
775 | .long cpu_arch_name | 809 | .long cpu_arch_name |
776 | .long cpu_elf_name | 810 | .long cpu_elf_name |
@@ -791,6 +825,9 @@ __pxa270_proc_info: | |||
791 | PMD_SECT_CACHEABLE | \ | 825 | PMD_SECT_CACHEABLE | \ |
792 | PMD_SECT_AP_WRITE | \ | 826 | PMD_SECT_AP_WRITE | \ |
793 | PMD_SECT_AP_READ | 827 | PMD_SECT_AP_READ |
828 | .long PMD_TYPE_SECT | \ | ||
829 | PMD_SECT_AP_WRITE | \ | ||
830 | PMD_SECT_AP_READ | ||
794 | b __xscale_setup | 831 | b __xscale_setup |
795 | .long cpu_arch_name | 832 | .long cpu_arch_name |
796 | .long cpu_elf_name | 833 | .long cpu_elf_name |