Advertisement
Guest User

Untitled

a guest
Dec 11th, 2017
320
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.10 KB | None | 0 0
  1. --- a/hw/misc/vfio.c
  2. +++ b/hw/misc/vfio.c
  3. @@ -218,6 +218,10 @@ typedef struct VFIODevice {
  4. #define VFIO_FEATURE_ENABLE_VGA_BIT 0
  5. #define VFIO_FEATURE_ENABLE_VGA (1 << VFIO_FEATURE_ENABLE_VGA_BIT)
  6. int32_t bootindex;
  7. + uint16_t virtual_vendor_id;
  8. + uint16_t virtual_device_id;
  9. + uint16_t virtual_ss_vendor_id;
  10. + uint16_t virtual_ss_device_id;
  11. uint8_t pm_cap;
  12. bool reset_works;
  13. bool has_vga;
  14. @@ -4262,6 +4266,23 @@ static int vfio_initfn(PCIDevice *pdev)
  15. memset(&vdev->pdev.config[PCI_BASE_ADDRESS_0], 0, 24);
  16. memset(&vdev->pdev.config[PCI_ROM_ADDRESS], 0, 4);
  17.  
  18. + if (vdev->virtual_vendor_id != 0xFFFF) {
  19. + vfio_add_emulated_word(vdev, PCI_VENDOR_ID,
  20. + cpu_to_le16(vdev->virtual_vendor_id), 0xFFFF);
  21. + }
  22. + if (vdev->virtual_device_id != 0xFFFF) {
  23. + vfio_add_emulated_word(vdev, PCI_DEVICE_ID,
  24. + cpu_to_le16(vdev->virtual_device_id), 0xFFFF);
  25. + }
  26. + if (vdev->virtual_ss_vendor_id != 0xFFFF) {
  27. + vfio_add_emulated_word(vdev, PCI_SUBSYSTEM_VENDOR_ID,
  28. + cpu_to_le16(vdev->virtual_ss_vendor_id), 0xFFFF);
  29. + }
  30. + if (vdev->virtual_ss_device_id != 0xFFFF) {
  31. + vfio_add_emulated_word(vdev, PCI_SUBSYSTEM_ID,
  32. + cpu_to_le16(vdev->virtual_ss_device_id), 0xFFFF);
  33. + }
  34. +
  35. vfio_pci_size_rom(vdev);
  36.  
  37. ret = vfio_early_setup_msix(vdev);
  38. @@ -4381,6 +4402,10 @@ static Property vfio_pci_dev_properties[] = {
  39. intx.mmap_timeout, 1100),
  40. DEFINE_PROP_BIT("x-vga", VFIODevice, features,
  41. VFIO_FEATURE_ENABLE_VGA_BIT, false),
  42. + DEFINE_PROP_UINT16("x-vid", VFIODevice, virtual_vendor_id, 0xFFFF),
  43. + DEFINE_PROP_UINT16("x-did", VFIODevice, virtual_device_id, 0xFFFF),
  44. + DEFINE_PROP_UINT16("x-ss-vid", VFIODevice, virtual_ss_vendor_id, 0xFFFF),
  45. + DEFINE_PROP_UINT16("x-ss-did", VFIODevice, virtual_ss_device_id, 0xFFFF),
  46. /*
  47. * TODO - support passed fds... is this necessary?
  48. * DEFINE_PROP_STRING("vfiofd", VFIODevice, vfiofd_name),
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement