Hard-coded virtual address used by dma_alloc_coherent

Scott Wood scottwood at freescale.com
Fri Jul 25 05:29:12 EST 2008


Remi Machet wrote:
> I have noticed that the DMA allocation for non-coherent PowerPC
> architecture is using a hard coded virtual memory address for its memory
> pool. This address is typically 0xFF100000 (set by
> CONFIG_CONSISTENT_START) and can conflict with early ioremap in systems
> that enable HIGHMEM.
> 
> Is there any reason why we have to use an arbitrary virtual address ? If
> the virtual address must be known at compile time, can't we use fixmap ?

The hardcoded address predates when fixmap was added to powerpc.  It 
should be updated to use fixmap.

> I also can't figure out why we need to use a virtual address known at
> compilation time and cannot just allocate pages using get_free_pages and
> mark them as non cacheable and non swappable.

We probably don't need a compile-time address, though we can't just 
change the page attributes in-place as the pages will often covered by 
large TLB entries.

-Scott



More information about the Linuxppc-dev mailing list