pseries: Implement IOMMU and DMA for PAPR PCI devices
commitedded454067bd9bda8a4a2a3ef54ae19474407da
authorDavid Gibson <david@gibson.dropbear.id.au>
Wed, 27 Jun 2012 04:50:46 +0000 (27 14:50 +1000)
committerAnthony Liguori <aliguori@us.ibm.com>
Wed, 27 Jun 2012 21:33:26 +0000 (27 16:33 -0500)
tree2d04e553becebb144efeb0ca85b53ba45c249bd3
parent5fa45de5623abd3a6d0b9575a4f014cbfe886b36
pseries: Implement IOMMU and DMA for PAPR PCI devices

Currently the pseries machine emulation does not support DMA for emulated
PCI devices, because the PAPR spec always requires a (guest visible,
paravirtualized) IOMMU which was not implemented.  Now that we have
infrastructure for IOMMU emulation, we can correct this and allow PCI DMA
for pseries.

With the existing PAPR IOMMU code used for VIO devices, this is almost
trivial. We use a single DMAContext for each (virtual) PCI host bridge,
which is the usual configuration on real PAPR machines (which often have
_many_ PCI host bridges).

Cc: Alex Graf <agraf@suse.de>
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
hw/spapr.h
hw/spapr_iommu.c
hw/spapr_pci.c
hw/spapr_pci.h