[PATCH] Use Normal uncached memory rather than Strongly Ordered on ARMv6+
Russell King - ARM Linux
linux at arm.linux.org.uk
Fri Oct 23 06:06:39 EDT 2009
On Fri, Oct 23, 2009 at 10:41:21AM +0100, Catalin Marinas wrote:
> ARMv6 onwards requires that there are no aliases to the same physical
> location using different memory types (i.e. Normal vs Strongly Ordered).
> Access to SO mappings when the unaligned accesses are handled in
> hardware is also Unpredictable (pgprot_noncached() mappings in user
> space).
>
> The patch modifies the pgprot_noncached() for ARMv6+ architecture
> versions to generate Normal uncached memory attributes rather than
> Strongly Ordered. The patch also modifies the mandatory barriers to use
> dmb() rather than being simple compiler barriers.
It's not this simple - pgprot_noncached() is used for /dev/mem O_SYNC
mappings, which are used for device mappings. This means you still
end up with the unpredictable issue.
More information about the linux-arm-kernel
mailing list