From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:58421) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S5rxw-0008CZ-55 for qemu-devel@nongnu.org; Fri, 09 Mar 2012 00:02:12 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1S5rxu-0000FE-CC for qemu-devel@nongnu.org; Fri, 09 Mar 2012 00:02:07 -0500 Received: from ozlabs.org ([203.10.76.45]:43277) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S5rxt-0000F6-TI for qemu-devel@nongnu.org; Fri, 09 Mar 2012 00:02:06 -0500 From: David Gibson Date: Fri, 9 Mar 2012 16:01:35 +1100 Message-Id: <1331269308-22372-1-git-send-email-david@gibson.dropbear.id.au> Subject: [Qemu-devel] [0/13] Implement support for guest visible IOMMUs List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: rth@twiddle.net, mst@redhat.com, agraf@suse.de, eduard.munteanu@linux360.ro This patch series introduces a general DMA infrastructure which allows the emulation of guest-visible IOMMUs. That is, it provides a framework by which an IOMMU device can be implemented, such that DMA from other device emulations will be translated according to the mappings provided by the IOMMU. One example IOMMU implementation is included, for the para-virtualized TCE tables specified by PAPR and used in the pseries machine for both virtual IO and PCI devices. This series is an updated and cleaned-up version of patches posted by Eduard - Gabriel Munteanu some time ago. Those prompted some discussion at the time, but no resolution was reached. The series also converts a number of existing device models to use the new DMA infrastructure, so they can be used with IOMMUs. Along with the pci_dma_*() wrapper functions which are already in, this means that with this series applied, essentially all PCI devices should work with an emulated IOMMU, as well as pseries VIO devices. Other types of devices would need some further conversion to work with the new framework, but that should be quite straightforward. This new version of the series has incorporated feedback from the last RFC round. I think it's ready to be considered for merge.