qemu-patch-raspberry4/hw/vfio
Jon Derrick ee7932b0bb hw/vfio: Add VMD Passthrough Quirk
The VMD endpoint provides a real PCIe domain to the guest, including
bridges and endpoints. Because the VMD domain is enumerated by the guest
kernel, the guest kernel will assign Guest Physical Addresses to the
downstream endpoint BARs and bridge windows.

When the guest kernel performs MMIO to VMD sub-devices, MMU will
translate from the guest address space to the physical address space.
Because the bridges have been programmed with guest addresses, the
bridges will reject the transaction containing physical addresses.

VMD device 28C0 natively assists passthrough by providing the Host
Physical Address in shadow registers accessible to the guest for bridge
window assignment. The shadow registers are valid if bit 1 is set in VMD
VMLOCK config register 0x70.

In order to support existing VMDs, this quirk provides the shadow
registers in a vendor-specific PCI capability to the vfio-passthrough
device for all VMD device ids which don't natively assist with
passthrough. The Linux VMD driver is updated to check for this new
vendor-specific capability.

Signed-off-by: Jon Derrick <jonathan.derrick@intel.com>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
2020-06-11 11:36:39 -06:00
..
amd-xgbe.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
ap.c qdev: Unrealize must not fail 2020-05-15 07:08:14 +02:00
calxeda-xgmac.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
ccw.c vfio-ccw: allow non-prefetch ORBs 2020-06-05 17:13:11 +02:00
common.c Report stringified errno in VFIO related errors 2020-02-18 20:20:49 +01:00
display.c Revert "hw/display/ramfb: initialize fw-config space with xres/ yres" 2020-05-18 15:42:34 +02:00
igd.c hw/vfio: Move the IGD quirk code to a separate file 2020-02-06 11:55:42 -07:00
Kconfig hw/vfio: Move the IGD quirk code to a separate file 2020-02-06 11:55:42 -07:00
Makefile.objs hw/vfio: Move the IGD quirk code to a separate file 2020-02-06 11:55:42 -07:00
pci-quirks.c hw/vfio: Add VMD Passthrough Quirk 2020-06-11 11:36:39 -06:00
pci.c Drop more @errp parameters after previous commit 2020-05-15 07:08:14 +02:00
pci.h hw/vfio: Move the IGD quirk code to a separate file 2020-02-06 11:55:42 -07:00
platform.c lockable: replaced locks with lock guard macros where appropriate 2020-05-04 16:07:43 +01:00
spapr.c vfio/spapr: Fix page size calculation 2020-04-07 08:55:10 +10:00
trace-events spapr: Support NVIDIA V100 GPU with NVLink2 2019-04-26 10:41:23 +10:00