[vfio-users] DMA engine in soc

Alex Williamson alex.williamson at redhat.com
Thu Feb 8 17:10:03 UTC 2018


On Thu, 8 Feb 2018 08:41:22 +0200
Ran Shalit <ranshalit at gmail.com> wrote:

> Hello,
> 
> It seems that in most cases PCI drivers use DMA engine in EP.
> Yet, in our case we need to DMA engine in soc (Marvell's armada).
> In kernel it is done using dmaengine.
> 1. Is it supported as part of vfio to use dma engine in soc ?
> 2. As I understand vfio only deals with memory mapping, not on DMA
> triggerting (as done in dmaengine), Yet, is there a way to achieve
> such triggering of DMA engine from userspace (or better is all be done
> in kernel) ?

My understanding of a dma engine is that it general moves memory on
behalf of other devices or as directed by other devices.  Is the dma
engine a PCI or platform device endpoint with iommu grouping?  If not,
then no vfio is not a good target for the device.  Can the user own the
dma engine and all of the devices which will make use of it separate
from all other devices?  If not, then vfio is probably not a good
target.  For (2), vfio is a userspace driver interface, it provides the
mechanisms to configure DMA and interact with the device, it's a
channel for using the device from userspace.  It's up to the userspace
driver itself to provide the device specific glue that makes the
driver.  vfio is not a universal driver, it's a universal interface for
creating userspace drivers.  Thanks,

Alex




More information about the vfio-users mailing list