Hard-coded virtual address used by dma_alloc_coherent

Remi Machet rmachet at slac.stanford.edu
Fri Jul 25 05:19:11 EST 2008


Hi,

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 ?

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.

For those of you that want to check it out, the code is in
arch/powerpc/lib/dma-noncoherent.c

Thanks,

Remi




More information about the Linuxppc-dev mailing list