1. 11 2月, 2017 1 次提交
  2. 25 1月, 2017 1 次提交
  3. 18 10月, 2016 3 次提交
  4. 01 7月, 2016 1 次提交
  5. 27 5月, 2016 2 次提交
    • A
      vfio/pci: Add a separate option for IGD OpRegion support · 6ced0bba
      Alex Williamson 提交于
      The IGD OpRegion is enabled automatically when running in legacy mode,
      but it can sometimes be useful in universal passthrough mode as well.
      Without an OpRegion, output spigots don't work, and even though Intel
      doesn't officially support physical outputs in UPT mode, it's a
      useful feature.  Note that if an OpRegion is enabled but a monitor is
      not connected, some graphics features will be disabled in the guest
      versus a headless system without an OpRegion, where they would work.
      Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
      Reviewed-by: NGerd Hoffmann <kraxel@redhat.com>
      Tested-by: NGerd Hoffmann <kraxel@redhat.com>
      6ced0bba
    • A
      vfio/pci: Intel graphics legacy mode assignment · c4c45e94
      Alex Williamson 提交于
      Enable quirks to support SandyBridge and newer IGD devices as primary
      VM graphics.  This requires new vfio-pci device specific regions added
      in kernel v4.6 to expose the IGD OpRegion, the shadow ROM, and config
      space access to the PCI host bridge and LPC/ISA bridge.  VM firmware
      support, SeaBIOS only so far, is also required for reserving memory
      regions for IGD specific use.  In order to enable this mode, IGD must
      be assigned to the VM at PCI bus address 00:02.0, it must have a ROM,
      it must be able to enable VGA, it must have or be able to create on
      its own an LPC/ISA bridge of the proper type at PCI bus address
      00:1f.0 (sorry, not compatible with Q35 yet), and it must have the
      above noted vfio-pci kernel features and BIOS.  The intention is that
      to enable this mode, a user simply needs to assign 00:02.0 from the
      host to 00:02.0 in the VM:
      
        -device vfio-pci,host=0000:00:02.0,bus=pci.0,addr=02.0
      
      and everything either happens automatically or it doesn't.  In the
      case that it doesn't, we leave error reports, but assume the device
      will operate in universal passthrough mode (UPT), which doesn't
      require any of this, but has a much more narrow window of supported
      devices, supported use cases, and supported guest drivers.
      
      When using IGD in this mode, the VM firmware is required to reserve
      some VM RAM for the OpRegion (on the order or several 4k pages) and
      stolen memory for the GTT (up to 8MB for the latest GPUs).  An
      additional option, x-igd-gms allows the user to specify some amount
      of additional memory (value is number of 32MB chunks up to 512MB) that
      is pre-allocated for graphics use.  TBH, I don't know of anything that
      requires this or makes use of this memory, which is why we don't
      allocate any by default, but the specification suggests this is not
      actually a valid combination, so the option exists as a workaround.
      Please report if it's actually necessary in some environment.
      
      See code comments for further discussion about the actual operation
      of the quirks necessary to assign these devices.
      Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
      Reviewed-by: NGerd Hoffmann <kraxel@redhat.com>
      Tested-by: NGerd Hoffmann <kraxel@redhat.com>
      c4c45e94
  6. 11 3月, 2016 2 次提交
    • A
      vfio/pci: Convert all MemoryRegion to dynamic alloc and consistent functions · 2d82f8a3
      Alex Williamson 提交于
      Match common vfio code with setup, exit, and finalize functions for
      BAR, quirk, and VGA management.  VGA is also changed to dynamic
      allocation to match the other MemoryRegions.
      Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
      2d82f8a3
    • A
      vfio: Generalize region support · db0da029
      Alex Williamson 提交于
      Both platform and PCI vfio drivers create a "slow", I/O memory region
      with one or more mmap memory regions overlayed when supported by the
      device. Generalize this to a set of common helpers in the core that
      pulls the region info from vfio, fills the region data, configures
      slow mapping, and adds helpers for comleting the mmap, enable/disable,
      and teardown.  This can be immediately used by the PCI MSI-X code,
      which needs to mmap around the MSI-X vector table.
      
      This also changes VFIORegion.mem to be dynamically allocated because
      otherwise we don't know how the caller has allocated VFIORegion and
      therefore don't know whether to unreference it to destroy the
      MemoryRegion or not.
      Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
      db0da029
  7. 29 1月, 2016 1 次提交
  8. 20 1月, 2016 1 次提交
  9. 11 11月, 2015 1 次提交
  10. 24 9月, 2015 13 次提交