[RFC PATCH 00/13] AMD IOMMU emulation patches, another try

Eduard - Gabriel Munteanu
2011-06-01T01:38:48Z

Hi,

Again, sorry for taking so long, but I just don't send stuff without looking
through it. This is meant to go into Michael's PCI branch, if it does.

Some of the changes include:
- some fixes (one thanks to David Gibson) and cleanups
- macro magic for exporting clones of the DMA interface (e.g.
pci_memory_read()); I hope it isn't too much a stretch
- we use pci_memory_*() in most places where PCI devices are involved now
- luckily we don't need unaligned accesses anymore
- some attempt at signaling target aborts, but it doesn't seem like that
stuff is completely implemented in the PCI layer / devices
- PCI ids are defined in hw/amd_iommu.c until they get merged into Linux

Also, I can't answer every request that the API is extended for doing this and
that more comfortably. I understand there may be corner cases, but may I
suggest merging it (maybe into a separate branch related to mst's pci) so that
everybody can deal with it? This is still labeled RFC, but if you think it's
ready it can be merged.

I hope most of the important issues have been dealt with. I'll post the SeaBIOS
patches soon (though I think you can give it a spin with the old ones, if you
need). I'll also take care of submitting PCI ids to be merged into Linux.

In any case, let me know what you think. I hope I didn't forget to Cc someone.

Cheers,
Eduard

Eduard - Gabriel Munteanu (13):
Generic DMA memory access interface
pci: add IOMMU support via the generic DMA layer
AMD IOMMU emulation
ide: use the DMA memory access interface for PCI IDE controllers
rtl8139: use the DMA memory access interface
eepro100: use the DMA memory access interface
ac97: use the DMA memory access interface
es1370: use the DMA memory access interface
e1000: use the DMA memory access interface
lsi53c895a: use the DMA memory access interface
pcnet: use the DMA memory access interface
usb-uhci: use the DMA memory access interface
usb-ohci: use the DMA memory access interface

Makefile.target | 2 +-
dma-helpers.c | 23 ++-
dma.h | 4 +-
hw/ac97.c | 6 +-
hw/amd_iommu.c | 712 ++++++++++++++++++++++++++++++++++++++++++++++++++++
hw/dma_rw.c | 155 ++++++++++++
hw/dma_rw.h | 217 ++++++++++++++++
hw/e1000.c | 27 ++-
hw/eepro100.c | 95 ++++----
hw/es1370.c | 4 +-
hw/ide/ahci.c | 3 +-
hw/ide/internal.h | 1 +
hw/ide/macio.c | 4 +-
hw/ide/pci.c | 18 +-
hw/lsi53c895a.c | 24 +-
hw/pc.c | 2 +
hw/pci.c | 7 +
hw/pci.h | 9 +
hw/pci_internals.h | 1 +
hw/pcnet-pci.c | 5 +-
hw/rtl8139.c | 98 ++++----
hw/usb-ohci.c | 46 +++--
hw/usb-uhci.c | 26 +-
23 files changed, 1324 insertions(+), 165 deletions(-)
create mode 100644 hw/amd_iommu.c
create mode 100644 hw/dma_rw.c
create mode 100644 hw/dma_rw.h

--
1.7.3.4