Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --- a/hw/vfio/pci.c
- +++ b/hw/vfio/pci.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", VFIOPCIDevice, features,
- VFIO_FEATURE_ENABLE_VGA_BIT, false),
- + DEFINE_PROP_UINT16("x-vid", VFIOPCIDevice, virtual_vendor_id, 0xFFFF),
- + DEFINE_PROP_UINT16("x-did", VFIOPCIDevice, virtual_device_id, 0xFFFF),
- + DEFINE_PROP_UINT16("x-ss-vid", VFIOPCIDevice, virtual_ss_vendor_id, 0xFFFF),
- + DEFINE_PROP_UINT16("x-ss-did", VFIOPCIDevice, virtual_ss_device_id, 0xFFFF),
- DEFINE_PROP_INT32("bootindex", VFIOPCIDevice, bootindex, -1),
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement