Hi, Please have a look at these and merge if you wish. I hope I've addressed the issues people have raised. Some changes from the previous RFC: - included and updated the other two device patches - moved map registration and invalidation management into PCI code - AMD IOMMU emulation is always enabled (no more configure options) - cleaned up code, I now use typedefs as suggested - event logging cleanups BTW, the change to pci_regs.h is properly aligned but the original file contains tabs. Cheers, Eduard Eduard - Gabriel Munteanu (7): pci: add range_covers_range() pci: memory access API and IOMMU support AMD IOMMU emulation ide: use the PCI memory access interface rtl8139: use the PCI memory access interface eepro100: use the PCI memory access interface ac97: use the PCI memory access interface Makefile.target | 2 + dma-helpers.c | 46 ++++- dma.h | 21 ++- hw/ac97.c | 6 +- hw/amd_iommu.c | 688 +++++++++++++++++++++++++++++++++++++++++++++++++++++ hw/eepro100.c | 78 ++++--- hw/ide/core.c | 15 +- hw/ide/internal.h | 39 +++ hw/ide/pci.c | 7 + hw/pc.c | 2 + hw/pci.c | 197 +++++++++++++++- hw/pci.h | 84 +++++++ hw/pci_ids.h | 2 + hw/pci_regs.h | 1 + hw/rtl8139.c | 99 +++++---- qemu-common.h | 1 + 16 files changed, 1191 insertions(+), 97 deletions(-) create mode 100644 hw/amd_iommu.c -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html