[<prev] [next>] [day] [month] [year] [list]
Message-ID: <CA+zQFfmZ49Z-jRCVWcErMTNusqqOGoiMm6JCAK1EpoioBMZmgA@mail.gmail.com>
Date: Fri, 1 Mar 2013 12:58:51 +0800
From: 杨可亲 <itrifler@...il.com>
To: lkml <linux-kernel@...r.kernel.org>
Subject: [QUESTION] How can I understand ARM_DMA_MEM_BUFFERABLE?
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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists