On Wed, 2005-11-30 at 23:19 +0100, Gerhard Pircher wrote: > > The code in amigaone_dma-mapping.c was directly copied from dma-mapping.c > (in arch/ppc/kernel/). I think the main problem lies in dma-mapping.h, were > I just added some cache flush functions to the DMA allocation functions for > coherent architectures (dma_alloc_coherent, dma_free_coherent). So can > anyone explain me, what the differences between the DMA allocation functions > for coherent and non coherent architectures are? How can the non coherent > DMA memory allocation functions be adapted for the AmigaOne?
You need the consistent memory alloc functions to return uncached memory. The current code for 6xx/7xx/7xxx processors assumes coherency support and thus doesn't have the ability to do that. It shouldn't be too difficult to fix if you kill the BAT mappings of memory (at least the data BATs, you must keep the IBAT). That will affect performances, but will also allow you to have per-page control of the page attributes of the kernel memory. Ben. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]