DMA over USB

Greg KH greg at kroah.com
Wed Jul 2 01:29:39 EDT 2014


On Wed, Jul 02, 2014 at 10:40:21AM +0530, Raghavendra wrote:
> Hello,
> 
> I have a query regarding DMA(Direct Memory Access) for the usb devices.
> 
> The understanding of DMA actions over PCI is straight forward. PCI 
> devices support bus mastering capability, such that the PCI devices 
> could take the ownership of the bus and perform access to the memory 
> directly, and a software support exists for the same in Linux.
> 
> As far as USB devices are concerned, they don’t have the bus mastering 
> capability like the PCI devices.
> But the USB URB structure have a field named 'dma_addr_t transfer_dma', 
> used for DMA access. The USB driver allocate the DMA buffers coherently 
> and pass the DMA address to the URBs during its initialization.
> As far as Linux is concerned, how the DMA action being taking place for 
> USB devices. As per my understanding, the USB host controller is taking 
> care of the DMA operations. But I require a little more insight into it.

Why, what exactly are you concerned about?  What are you trying to do?

> Further more, if it is possible for the USB devices, then can this 
> support be also extended towards low-end protocols such as I2C or SPI?

It depends on your controller chips for those busses, if they support
DMA or not.

greg k-h



More information about the Kernelnewbies mailing list