diff options
author | David Gibson <david@gibson.dropbear.id.au> | 2012-06-27 14:50:46 +1000 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2012-06-27 16:33:26 -0500 |
commit | edded454067bd9bda8a4a2a3ef54ae19474407da (patch) | |
tree | 2d04e553becebb144efeb0ca85b53ba45c249bd3 /hw/spapr.h | |
parent | 5fa45de5623abd3a6d0b9575a4f014cbfe886b36 (diff) | |
download | qemu-edded454067bd9bda8a4a2a3ef54ae19474407da.zip qemu-edded454067bd9bda8a4a2a3ef54ae19474407da.tar.gz qemu-edded454067bd9bda8a4a2a3ef54ae19474407da.tar.bz2 |
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>
Diffstat (limited to 'hw/spapr.h')
-rw-r--r-- | hw/spapr.h | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -330,6 +330,7 @@ typedef struct sPAPRTCE { } sPAPRTCE; #define SPAPR_VIO_BASE_LIOBN 0x00000000 +#define SPAPR_PCI_BASE_LIOBN 0x80000000 void spapr_iommu_init(void); DMAContext *spapr_tce_new_dma_context(uint32_t liobn, size_t window_size); |