On Thu, 2008-07-24 at 14:29 -0500, Scott Wood wrote: > 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. Ok, I will look into that.
> > 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. If we use alloc_pages to allocate the physical memory and get_vm_area to get a virtual address (and its associated PTE), wouldn't map_vm_area take care of breaking the TLB into smaller chunks if necessary ? Remi _______________________________________________ Linuxppc-dev mailing list [email protected] https://ozlabs.org/mailman/listinfo/linuxppc-dev
