diff options
Diffstat (limited to 'arch/arm/mm/proc-v7.S')
-rw-r--r-- | arch/arm/mm/proc-v7.S | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S index 3a3c015f8d5c..2c73a7301ff7 100644 --- a/arch/arm/mm/proc-v7.S +++ b/arch/arm/mm/proc-v7.S | |||
@@ -75,14 +75,14 @@ ENTRY(cpu_v7_do_idle) | |||
75 | ENDPROC(cpu_v7_do_idle) | 75 | ENDPROC(cpu_v7_do_idle) |
76 | 76 | ||
77 | ENTRY(cpu_v7_dcache_clean_area) | 77 | ENTRY(cpu_v7_dcache_clean_area) |
78 | #ifndef TLB_CAN_READ_FROM_L1_CACHE | 78 | ALT_SMP(mov pc, lr) @ MP extensions imply L1 PTW |
79 | ALT_UP(W(nop)) | ||
79 | dcache_line_size r2, r3 | 80 | dcache_line_size r2, r3 |
80 | 1: mcr p15, 0, r0, c7, c10, 1 @ clean D entry | 81 | 1: mcr p15, 0, r0, c7, c10, 1 @ clean D entry |
81 | add r0, r0, r2 | 82 | add r0, r0, r2 |
82 | subs r1, r1, r2 | 83 | subs r1, r1, r2 |
83 | bhi 1b | 84 | bhi 1b |
84 | dsb | 85 | dsb |
85 | #endif | ||
86 | mov pc, lr | 86 | mov pc, lr |
87 | ENDPROC(cpu_v7_dcache_clean_area) | 87 | ENDPROC(cpu_v7_dcache_clean_area) |
88 | 88 | ||
@@ -402,6 +402,8 @@ __v7_ca9mp_proc_info: | |||
402 | __v7_proc __v7_ca9mp_setup | 402 | __v7_proc __v7_ca9mp_setup |
403 | .size __v7_ca9mp_proc_info, . - __v7_ca9mp_proc_info | 403 | .size __v7_ca9mp_proc_info, . - __v7_ca9mp_proc_info |
404 | 404 | ||
405 | #endif /* CONFIG_ARM_LPAE */ | ||
406 | |||
405 | /* | 407 | /* |
406 | * Marvell PJ4B processor. | 408 | * Marvell PJ4B processor. |
407 | */ | 409 | */ |
@@ -411,7 +413,6 @@ __v7_pj4b_proc_info: | |||
411 | .long 0xfffffff0 | 413 | .long 0xfffffff0 |
412 | __v7_proc __v7_pj4b_setup | 414 | __v7_proc __v7_pj4b_setup |
413 | .size __v7_pj4b_proc_info, . - __v7_pj4b_proc_info | 415 | .size __v7_pj4b_proc_info, . - __v7_pj4b_proc_info |
414 | #endif /* CONFIG_ARM_LPAE */ | ||
415 | 416 | ||
416 | /* | 417 | /* |
417 | * ARM Ltd. Cortex A7 processor. | 418 | * ARM Ltd. Cortex A7 processor. |
@@ -420,7 +421,7 @@ __v7_pj4b_proc_info: | |||
420 | __v7_ca7mp_proc_info: | 421 | __v7_ca7mp_proc_info: |
421 | .long 0x410fc070 | 422 | .long 0x410fc070 |
422 | .long 0xff0ffff0 | 423 | .long 0xff0ffff0 |
423 | __v7_proc __v7_ca7mp_setup, hwcaps = HWCAP_IDIV | 424 | __v7_proc __v7_ca7mp_setup |
424 | .size __v7_ca7mp_proc_info, . - __v7_ca7mp_proc_info | 425 | .size __v7_ca7mp_proc_info, . - __v7_ca7mp_proc_info |
425 | 426 | ||
426 | /* | 427 | /* |
@@ -430,10 +431,25 @@ __v7_ca7mp_proc_info: | |||
430 | __v7_ca15mp_proc_info: | 431 | __v7_ca15mp_proc_info: |
431 | .long 0x410fc0f0 | 432 | .long 0x410fc0f0 |
432 | .long 0xff0ffff0 | 433 | .long 0xff0ffff0 |
433 | __v7_proc __v7_ca15mp_setup, hwcaps = HWCAP_IDIV | 434 | __v7_proc __v7_ca15mp_setup |
434 | .size __v7_ca15mp_proc_info, . - __v7_ca15mp_proc_info | 435 | .size __v7_ca15mp_proc_info, . - __v7_ca15mp_proc_info |
435 | 436 | ||
436 | /* | 437 | /* |
438 | * Qualcomm Inc. Krait processors. | ||
439 | */ | ||
440 | .type __krait_proc_info, #object | ||
441 | __krait_proc_info: | ||
442 | .long 0x510f0400 @ Required ID value | ||
443 | .long 0xff0ffc00 @ Mask for ID | ||
444 | /* | ||
445 | * Some Krait processors don't indicate support for SDIV and UDIV | ||
446 | * instructions in the ARM instruction set, even though they actually | ||
447 | * do support them. | ||
448 | */ | ||
449 | __v7_proc __v7_setup, hwcaps = HWCAP_IDIV | ||
450 | .size __krait_proc_info, . - __krait_proc_info | ||
451 | |||
452 | /* | ||
437 | * Match any ARMv7 processor core. | 453 | * Match any ARMv7 processor core. |
438 | */ | 454 | */ |
439 | .type __v7_proc_info, #object | 455 | .type __v7_proc_info, #object |