Messages in this thread | | | Date | Fri, 1 Mar 2013 12:58:51 +0800 | Subject | [QUESTION] How can I understand ARM_DMA_MEM_BUFFERABLE? | From | 杨可亲 <> |
| |
Hi everyone:
In the newest linux kernel version3.8, arch/arm/mm/Kconfig, there are some menu like this:
872 *config ARM_DMA_MEM_BUFFERABLE*
873 *bool "Use non-cacheable memory for DMA" if (CPU_V6 || CPU_V6K) && !CPU_V7*
874 depends on !(MACH_REALVIEW_PB1176 || REALVIEW_EB_ARM11MP || \
875 MACH_REALVIEW_PB11MP)
876 default y if CPU_V6 || CPU_V6K || CPU_V7
877 help
878 Historically, the kernel has used strongly ordered mappings to
879 provide DMA coherent memory. With the advent of ARMv7, mapping
880 memory with differing types results in unpredictable behaviour,
881 so on these CPUs, this option is forced on.
882
883 Multiple mappings with differing attributes is also unpredictable
884 on ARMv6 CPUs, but since they do not have aggressive speculative
885 prefetch, no harm appears to occur.
886 887 However, drivers may be missing the necessary barriers for ARMv6,
888 and therefore turning this on may result in unpredictable driver
889 behaviour. Therefore, we offer this as an option.
890 891 You are recommended say 'Y' here and debug any affected drivers.
I have three questions:
1)Does this mean that I cann't get unbuffered DMA buffer on ARM cortex a8(CPU_V7)?
2)How can I allocate unbuffered DMA buffer on linux of cortex a8 platform?
3)In the upper contex,there are: "With the advent of ARMv7, mapping memory with differing types results in unpredictable behaviour" What does "mapping memory with differing types" really mean? -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |