diff options
Diffstat (limited to 'arch/arm/mm/Kconfig')
| -rw-r--r-- | arch/arm/mm/Kconfig | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig index 346ae14824a5..101105e52610 100644 --- a/arch/arm/mm/Kconfig +++ b/arch/arm/mm/Kconfig | |||
| @@ -735,6 +735,25 @@ config NEEDS_SYSCALL_FOR_CMPXCHG | |||
| 735 | Forget about fast user space cmpxchg support. | 735 | Forget about fast user space cmpxchg support. |
| 736 | It is just not possible. | 736 | It is just not possible. |
| 737 | 737 | ||
| 738 | config DMA_CACHE_RWFO | ||
| 739 | bool "Enable read/write for ownership DMA cache maintenance" | ||
| 740 | depends on CPU_V6 && SMP | ||
| 741 | default y | ||
| 742 | help | ||
| 743 | The Snoop Control Unit on ARM11MPCore does not detect the | ||
| 744 | cache maintenance operations and the dma_{map,unmap}_area() | ||
| 745 | functions may leave stale cache entries on other CPUs. By | ||
| 746 | enabling this option, Read or Write For Ownership in the ARMv6 | ||
| 747 | DMA cache maintenance functions is performed. These LDR/STR | ||
| 748 | instructions change the cache line state to shared or modified | ||
| 749 | so that the cache operation has the desired effect. | ||
| 750 | |||
| 751 | Note that the workaround is only valid on processors that do | ||
| 752 | not perform speculative loads into the D-cache. For such | ||
| 753 | processors, if cache maintenance operations are not broadcast | ||
| 754 | in hardware, other workarounds are needed (e.g. cache | ||
| 755 | maintenance broadcasting in software via FIQ). | ||
| 756 | |||
| 738 | config OUTER_CACHE | 757 | config OUTER_CACHE |
| 739 | bool | 758 | bool |
| 740 | 759 | ||
| @@ -794,6 +813,8 @@ config ARM_L1_CACHE_SHIFT | |||
| 794 | 813 | ||
| 795 | config ARM_DMA_MEM_BUFFERABLE | 814 | config ARM_DMA_MEM_BUFFERABLE |
| 796 | bool "Use non-cacheable memory for DMA" if CPU_V6 && !CPU_V7 | 815 | bool "Use non-cacheable memory for DMA" if CPU_V6 && !CPU_V7 |
| 816 | depends on !(MACH_REALVIEW_PB1176 || REALVIEW_EB_ARM11MP || \ | ||
| 817 | MACH_REALVIEW_PB11MP) | ||
| 797 | default y if CPU_V6 || CPU_V7 | 818 | default y if CPU_V6 || CPU_V7 |
| 798 | help | 819 | help |
| 799 | Historically, the kernel has used strongly ordered mappings to | 820 | Historically, the kernel has used strongly ordered mappings to |
