diff options
Diffstat (limited to 'arch/arm/mm/Kconfig')
-rw-r--r-- | arch/arm/mm/Kconfig | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig index c4ed9f93f646..573528d9c6d8 100644 --- a/arch/arm/mm/Kconfig +++ b/arch/arm/mm/Kconfig | |||
@@ -781,3 +781,22 @@ config ARM_L1_CACHE_SHIFT | |||
781 | int | 781 | int |
782 | default 6 if ARM_L1_CACHE_SHIFT_6 | 782 | default 6 if ARM_L1_CACHE_SHIFT_6 |
783 | default 5 | 783 | default 5 |
784 | |||
785 | config ARM_DMA_MEM_BUFFERABLE | ||
786 | bool "Use non-cacheable memory for DMA" if CPU_V6 && !CPU_V7 | ||
787 | default y if CPU_V6 || CPU_V7 | ||
788 | help | ||
789 | Historically, the kernel has used strongly ordered mappings to | ||
790 | provide DMA coherent memory. With the advent of ARMv7, mapping | ||
791 | memory with differing types results in unpredictable behaviour, | ||
792 | so on these CPUs, this option is forced on. | ||
793 | |||
794 | Multiple mappings with differing attributes is also unpredictable | ||
795 | on ARMv6 CPUs, but since they do not have aggressive speculative | ||
796 | prefetch, no harm appears to occur. | ||
797 | |||
798 | However, drivers may be missing the necessary barriers for ARMv6, | ||
799 | and therefore turning this on may result in unpredictable driver | ||
800 | behaviour. Therefore, we offer this as an option. | ||
801 | |||
802 | You are recommended say 'Y' here and debug any affected drivers. | ||