Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --- a/hw/misc/vfio.c
- +++ b/hw/misc/vfio.c
- @@ -218,6 +218,10 @@ typedef struct VFIODevice {
- #define VFIO_FEATURE_ENABLE_VGA_BIT 0
- #define VFIO_FEATURE_ENABLE_VGA (1 << VFIO_FEATURE_ENABLE_VGA_BIT)
- int32_t bootindex;
- + uint16_t virtual_vendor_id;
- + uint16_t virtual_device_id;
- + uint16_t virtual_ss_vendor_id;
- + uint16_t virtual_ss_device_id;
- uint8_t pm_cap;
- bool reset_works;
- bool has_vga;
- @@ -4262,6 +4266,23 @@ static int vfio_initfn(PCIDevice *pdev)
- memset(&vdev->pdev.config[PCI_BASE_ADDRESS_0], 0, 24);
- memset(&vdev->pdev.config[PCI_ROM_ADDRESS], 0, 4);
- + if (vdev->virtual_vendor_id != 0xFFFF) {
- + vfio_add_emulated_word(vdev, PCI_VENDOR_ID,
- + cpu_to_le16(vdev->virtual_vendor_id), 0xFFFF);
- + }
- + if (vdev->virtual_device_id != 0xFFFF) {
- + vfio_add_emulated_word(vdev, PCI_DEVICE_ID,
- + cpu_to_le16(vdev->virtual_device_id), 0xFFFF);
- + }
- + if (vdev->virtual_ss_vendor_id != 0xFFFF) {
- + vfio_add_emulated_word(vdev, PCI_SUBSYSTEM_VENDOR_ID,
- + cpu_to_le16(vdev->virtual_ss_vendor_id), 0xFFFF);
- + }
- + if (vdev->virtual_ss_device_id != 0xFFFF) {
- + vfio_add_emulated_word(vdev, PCI_SUBSYSTEM_ID,
- + cpu_to_le16(vdev->virtual_ss_device_id), 0xFFFF);
- + }
- +
- vfio_pci_size_rom(vdev);
- ret = vfio_early_setup_msix(vdev);
- @@ -4381,6 +4402,10 @@ static Property vfio_pci_dev_properties[] = {
- intx.mmap_timeout, 1100),
- DEFINE_PROP_BIT("x-vga", VFIODevice, features,
- VFIO_FEATURE_ENABLE_VGA_BIT, false),
- + DEFINE_PROP_UINT16("x-vid", VFIODevice, virtual_vendor_id, 0xFFFF),
- + DEFINE_PROP_UINT16("x-did", VFIODevice, virtual_device_id, 0xFFFF),
- + DEFINE_PROP_UINT16("x-ss-vid", VFIODevice, virtual_ss_vendor_id, 0xFFFF),
- + DEFINE_PROP_UINT16("x-ss-did", VFIODevice, virtual_ss_device_id, 0xFFFF),
- /*
- * TODO - support passed fds... is this necessary?
- * DEFINE_PROP_STRING("vfiofd", VFIODevice, vfiofd_name),
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement