On May 10, 2005, at 9:14 AM, Pantelis Antoniou wrote: > What's the recommended function to call to go from a > virtual -> physical address, but without doing a cache > flush/invalidate?
It doesn't have anything to do with cache flush/invalidate, it has to do with the way the memory is mapped to a different VM space. You do not (and in some cases can't) perform invalidate/flush on uncached addresses. What we need to do is fix up the CPM allocation functions, so when it does the dma_alloc_consistent (or whatever the name is today) it keeps both the physical and virtual addresses. When we call cpm_hostalloc(), it has to return both the physical and virtual addresses, and the driver must take note of them. I had this in the drivers at one time in 2.4, I don't know where it went ...... The drivers themselves must do the dma_consistent_alloc on large buffers, and also keep track of both physical and virtual addresses. Again, this was done once before .... Thanks. -- Dan