On Tue, May 20, 2014 at 11:24:29AM +0500, Ayaz Akram wrote: > Can e1000 driver in linux be used without DMA involvement? Actually I am > trying to use e1000 network driver on octeon linux( to be run on QEMU), and > I have not emulated any DMA controller, so I was wondering if I can be able > to run networking without DMA's involvement?
I'm not sure about Octeon Linux (MIPS64?) but PCI doesn't use a dedicated DMA controller that is programmed by the CPU. Instead, the PCI controller forwards requests to the memory bus automatically. If you have doubts, check the Linux PCI controller code for your Octeon hardware. Linux APIs like dma_map_single()/dma_unmap_single() should call down into the Octeon PCI controller code and do whatever is necessary to ensure the device or CPU see the current state of memory. https://en.wikipedia.org/wiki/Direct_memory_access#PCI Stefan