Thread (5 messages) flat view 5 messages, 2 authors, 2011-06-07
STALE5569d

[PATCH] ARM: fix ioremap to allow mapping some specific RAM areas

From: Russell King - ARM Linux <hidden>
Date: 2011-06-07 08:05:41

On Tue, Jun 07, 2011 at 09:12:25AM +0200, Marek Szyprowski wrote:
Creating more than one mapping on ARMv6+ might cause unspecified behavior,
so ioremap() should fail if it was called with area that matches low memory.
However if the board code removes the specific area from low memory
mapping on boot (for example by calling memblock_remove()), then creating
a mapping with ioremap might be desired.

This patch enables creating mapping for RAM by ioremap call, but only if
the target area has no low memory mapping yet. This enables board code to
reserve particular memory areas with memblock_remove() and provide them to
device drivers with a declare_coherent_memory() call.
NAK.  pfn_valid is already defined like this:

int pfn_valid(unsigned long pfn)
{
        return memblock_is_memory(pfn << PAGE_SHIFT);
}

provided you enable ARCH_HAS_HOLES_MEMORYMODEL, which you must do if
you're punching holes in the memory map.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help