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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/