[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [V13 0/4] AMD IOMMU
From: |
David Kiarie |
Subject: |
[Qemu-devel] [V13 0/4] AMD IOMMU |
Date: |
Fri, 8 Jul 2016 11:18:19 +0300 |
Hi all,
This patchset adds basic AMD IOMMU emulation support to Qemu.
Changes since v12
-Coding style fixes [Jan, Michael]
-Error logging fix to avoid using a macro[Jan]
-moved some PCI macros to PCI header[Jan]
-Use a lookup table for MMIO register names when tracing[Jan]
Changes since V11
-AMD IOMMU is not started with -device amd-iommu (with a dependency on
Marcel's patches).
-IOMMU commands are represented using bitfields which is less error prone
and more readable[Peter]
-Changed from debug fprintfs to tracing[Jan]
Changes since V10
-Support for huge pages including some obscure AMD IOMMU feature that allows
default page size override[Jan].
-Fixed an issue with generation of interrupts. We noted that AMD IOMMU has
BusMaster- and is therefore not able to generate interrupts like any other PCI
device. We have resulted in writing directly to system address but this could
be fixed by some patches which have not been merged yet.
Changes since v9
-amd_iommu prefixes have been renamed to a shorter 'amdvi' both in the macros
and in the functions/code. The register macros have not been moved to the
implementation file since almost the macros there are basically macros and
I
reckoned renaming them should suffice.
-taken care of byte order in the use of 'dma_memory_read'[Michael]
-Taken care of invalid DTE entries to ensure no DMA unless a device is
configured to allow it.
-An issue with the emulate IOMMU defaulting to AMD_IOMMU has been
fixed[Marcel]
You can test[1] this patches by starting with parameters
qemu-system-x86_64 -M -device amd-iommu -m 2G -enable-kvm -smp 4 -cpu host
-hda file.img -soundhw ac97
emulating whatever devices you want.
Not passing any command line parameters to linux should be enough to test this
patches since the devices are basically
passes-through but to the 'host' (l1 guest). You can still go ahead pass
command line parameter 'iommu=pt iommu=1'
and try to pass a device to L2 guest. This can also done without passing any
iommu related parameters to the kernel.
David Kiarie (4):
hw/pci: Prepare for AMD IOMMU
hw/i386/trace-events: Add AMD IOMMU trace events
hw/i386: Introduce AMD IOMMU
hw/i386: AMD IOMMU IVRS table
hw/acpi/aml-build.c | 2 +-
hw/i386/Makefile.objs | 1 +
hw/i386/acpi-build.c | 102 +++-
hw/i386/amd_iommu.c | 1384 +++++++++++++++++++++++++++++++++++++++++++
hw/i386/amd_iommu.h | 285 +++++++++
hw/i386/trace-events | 29 +
include/hw/acpi/aml-build.h | 1 +
include/hw/pci/pci.h | 5 +-
8 files changed, 1796 insertions(+), 13 deletions(-)
create mode 100644 hw/i386/amd_iommu.c
create mode 100644 hw/i386/amd_iommu.h
--
2.1.4
- [Qemu-devel] [V13 0/4] AMD IOMMU,
David Kiarie <=