qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] ee7932: hw/vfio: Add VMD Passthrough Quirk


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] ee7932: hw/vfio: Add VMD Passthrough Quirk
Date: Fri, 12 Jun 2020 03:15:28 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: ee7932b0bba2062a0fad1e70d576ef13c4906c83
      
https://github.com/qemu/qemu/commit/ee7932b0bba2062a0fad1e70d576ef13c4906c83
  Author: Jon Derrick <jonathan.derrick@intel.com>
  Date:   2020-06-11 (Thu, 11 Jun 2020)

  Changed paths:
    M hw/vfio/pci-quirks.c

  Log Message:
  -----------
  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>


  Commit: 643a4eacef87a318cf71800a4fb2ae1f78c4b245
      
https://github.com/qemu/qemu/commit/643a4eacef87a318cf71800a4fb2ae1f78c4b245
  Author: Thomas Huth <thuth@redhat.com>
  Date:   2020-06-11 (Thu, 11 Jun 2020)

  Changed paths:
    M hw/vfio/pci-quirks.c

  Log Message:
  -----------
  hw/vfio/pci-quirks: Fix broken legacy IGD passthrough

The #ifdef CONFIG_VFIO_IGD in pci-quirks.c is not working since the
required header config-devices.h is not included, so that the legacy
IGD passthrough is currently broken. Let's include the right header
to fix this issue.

Buglink: https://bugs.launchpad.net/qemu/+bug/1882784
Fixes: 29d62771c81d ("hw/vfio: Move the IGD quirk code to a separate file")
Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>


  Commit: eea8f5df4ecc607d64f091b8d916fcc11a697541
      
https://github.com/qemu/qemu/commit/eea8f5df4ecc607d64f091b8d916fcc11a697541
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2020-06-11 (Thu, 11 Jun 2020)

  Changed paths:
    M hw/vfio/pci-quirks.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/awilliam/tags/vfio-update-20200611.0' 
into staging

VFIO update 2020-06-11

 - Fix IGD split, include header to honor Kconfig (Thomas Huth)

 - New VMD device paravirt quirk (Jon Derrick)

# gpg: Signature made Thu 11 Jun 2020 19:58:31 BST
# gpg:                using RSA key 239B9B6E3BB08B22
# gpg: Good signature from "Alex Williamson <alex.williamson@redhat.com>" [full]
# gpg:                 aka "Alex Williamson <alex@shazbot.org>" [full]
# gpg:                 aka "Alex Williamson <alwillia@redhat.com>" [full]
# gpg:                 aka "Alex Williamson <alex.l.williamson@gmail.com>" 
[full]
# Primary key fingerprint: 42F6 C04E 540B D1A9 9E7B  8A90 239B 9B6E 3BB0 8B22

* remotes/awilliam/tags/vfio-update-20200611.0:
  hw/vfio/pci-quirks: Fix broken legacy IGD passthrough
  hw/vfio: Add VMD Passthrough Quirk

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


Compare: https://github.com/qemu/qemu/compare/9f1f264edbdf...eea8f5df4ecc



reply via email to

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