Linux Cache Operation & Address Conversion ====== Linux Cache Operation ====== | opt | Term | API | | Invalidate | stale data problem | **dma_cache_inv**(unsigned long address unsigned long size) | | Flush/write back | any dirty cache | dma_cache_wback/**dma_cache_wback_inv**(unsigned long address, unsigned long size) | Note: For dma_cache_wback, in theory, for write back caches an invalidate kills the cache line only without actually writing the data out, thus destroying the data in the cache. A safer thing to do in this case is issue a flush and invalidate instruction ====== Address Conversion ====== | CPHYSADDR | get its physical address | |