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