qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [V11 0/4] AMD IOMMU


From: David Kiarie
Subject: [Qemu-devel] [V11 0/4] AMD IOMMU
Date: Sun, 22 May 2016 13:21:50 +0300

Hi all,

This patches series adds basic AMD IOMMU emulation support to Qemu. It's
currently in it's 11th version.

Michael(or any other person who can merge this patchset) can you please look at 
the possibility of merging this patches ?Are there more issues with these 
patches since the last version barely attracted any comments ?

Changes since V10 include
 
   -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 which is still subject discussion. I will 
    make any necessary changes based on discusion outcome.[Jan]
   -An issue with the emulate IOMMU defaulting to AMD_IOMMU has be fixed[Marcel]
   
You can test this patches by starting with parameters 
    qemu-system-x86_64 -M q35,iommu=on,x-iommu-type=amd -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/i386: Introduce AMD IOMMU
  hw/i386: ACPI IVRS table
  hw/core: provision for overriding emulated IOMMU
  hw/pci-host: Emulate AMD IOMMU

 hw/acpi/aml-build.c           |    2 +-
 hw/core/machine.c             |   29 +-
 hw/i386/Makefile.objs         |    1 +
 hw/i386/acpi-build.c          |   93 ++-
 hw/i386/amd_iommu.c           | 1401 +++++++++++++++++++++++++++++++++++++++++
 hw/i386/amd_iommu.h           |  340 ++++++++++
 hw/pci-host/q35.c             |   25 +-
 include/hw/acpi/acpi-defs.h   |   13 +
 include/hw/acpi/aml-build.h   |    1 +
 include/hw/boards.h           |    7 +
 include/hw/i386/intel_iommu.h |    1 +
 include/hw/pci/pci.h          |    2 +
 qemu-options.hx               |    7 +-
 util/qemu-config.c            |    8 +-
 14 files changed, 1908 insertions(+), 22 deletions(-)
 create mode 100644 hw/i386/amd_iommu.c
 create mode 100644 hw/i386/amd_iommu.h

-- 
2.1.4




reply via email to

[Prev in Thread] Current Thread [Next in Thread]