qemu/hw/i386
Peter Xu ccc23bb08a intel_iommu: dma read/write draining support
Support DMA read/write draining should be easy for existing VT-d
emulation since the emulation itself does not have any request queue
there so we don't need to do anything to flush the un-commited queue.
What we need to do is to declare the support.

These capabilities are required to pass Windows SVVP test program.  It
is verified that when with parameters "x-aw-bits=48,caching-mode=off"
we can pass the Windows SVVP test with this patch applied.  Otherwise
we'll fail with:

        IOMMU[0] - DWD (DMA write draining) not supported
        IOMMU[0] - DWD (DMA read draining) not supported
        Segment 0 has no DMA remapping capable IOMMU units

However since these bits are not declared support for QEMU<=3.1, we'll
need a compatibility bit for it and we turn this on by default only
for QEMU>=4.0.

Please refer to VT-d spec 6.5.4 for more information.

CC: Yu Wang <wyu@redhat.com>
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1654550
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2018-12-19 16:48:16 -05:00
..
kvm kvmclock: run KVM_KVMCLOCK_CTRL ioctl in vcpu thread 2018-10-02 19:09:13 +02:00
xen qmp: query-current-machine with wakeup-suspend-support 2018-12-18 07:55:47 +01:00
acpi-build.c x86_iommu/amd: Enable Guest virtual APIC support 2018-11-05 13:24:02 -05:00
acpi-build.h Use scripts/clean-includes to drop redundant qemu/typedefs.h 2016-03-22 22:20:16 +01:00
amd_iommu.c x86_iommu/amd: Add interrupt remap support when VAPIC is enabled 2018-11-05 13:24:02 -05:00
amd_iommu.h x86_iommu/amd: Enable Guest virtual APIC support 2018-11-05 13:24:02 -05:00
intel_iommu.c intel_iommu: dma read/write draining support 2018-12-19 16:48:16 -05:00
intel_iommu_internal.h intel_iommu: dma read/write draining support 2018-12-19 16:48:16 -05:00
kvmvapic.c target: Do not include "exec/exec-all.h" if it is not necessary 2018-06-01 14:15:10 +02:00
Makefile.objs hw/i386: make IOMMUs configurable via default-configs/ 2018-03-12 16:12:46 +01:00
multiboot.c hw/i386/multiboot.c: Don't use load_image() 2018-12-14 13:30:51 +00:00
multiboot.h refer to FWCfgState explicitly 2013-06-02 18:14:02 +03:00
pc.c hw/smbios: Move to the hw/firmware/ subdirectory 2018-12-19 16:48:16 -05:00
pc_piix.c hw/smbios: Move to the hw/firmware/ subdirectory 2018-12-19 16:48:16 -05:00
pc_q35.c hw/smbios: Move to the hw/firmware/ subdirectory 2018-12-19 16:48:16 -05:00
pc_sysfw.c hw/i386: Use the IEC binary prefix definitions 2018-07-02 15:41:16 +02:00
trace-events intel_iommu: convert invalid traces into error reports 2018-12-19 16:48:16 -05:00
vmmouse.c hw/input/i8042: Extract declarations from i386/pc.h into input/i8042.h 2018-03-12 16:12:48 +01:00
vmport.c hw/input/i8042: Extract declarations from i386/pc.h into input/i8042.h 2018-03-12 16:12:48 +01:00
x86-iommu.c x86_iommu: move vtd_generate_msi_message in common file 2018-11-05 13:24:02 -05:00