feat: patched qemu 11.1.2 identity series with macos support
This commit is contained in:
@@ -5,7 +5,10 @@ Targets VMAware check: PCI_VENDOR / DEVICES
|
||||
PCI vendor, device and subsystem IDs that read as Red Hat / QEMU, and the
|
||||
ICH9 southbridge layout OVMF expects to find at 1f:0.
|
||||
|
||||
Applies to QEMU v11.1.1. Apply from the source root with:
|
||||
Virtio devices keep Red Hat's subsystem IDs: their vendor ID names them
|
||||
anyway, and OVMF and the guest virtio drivers only bind with them.
|
||||
|
||||
Applies to QEMU v11.1.2. Apply from the source root with:
|
||||
patch -p1 < 03-pci-ids.patch
|
||||
|
||||
---
|
||||
@@ -24,19 +27,6 @@ index f2448e9..4eea405 100644
|
||||
#define PCI_DEVICE_ID_QEMU_IPMI 0x1112
|
||||
|
||||
/* VMWare (0x15ad) */
|
||||
@@ -77,9 +77,9 @@ extern bool pci_available;
|
||||
#define PCI_DEVICE_ID_INTEL_82801IR 0x2922
|
||||
|
||||
/* Red Hat / Qumranet (for QEMU) -- see pci-ids.txt */
|
||||
-#define PCI_VENDOR_ID_REDHAT_QUMRANET 0x1af4
|
||||
-#define PCI_SUBVENDOR_ID_REDHAT_QUMRANET 0x1af4
|
||||
-#define PCI_SUBDEVICE_ID_QEMU 0x1100
|
||||
+#define PCI_VENDOR_ID_REDHAT_QUMRANET 0x1af4 // VirtIO devices | IVSHMEM Driver | Looking Glass
|
||||
+#define PCI_SUBVENDOR_ID_REDHAT_QUMRANET 0x8086 // VirtIO devices | IVSHMEM Driver | Looking Glass
|
||||
+#define PCI_SUBDEVICE_ID_QEMU 0x0000 // VirtIO devices | IVSHMEM Driver | Looking Glass
|
||||
|
||||
/* legacy virtio-pci devices */
|
||||
#define PCI_DEVICE_ID_VIRTIO_NET 0x1000
|
||||
@@ -100,21 +100,21 @@ extern bool pci_available;
|
||||
*/
|
||||
#define PCI_DEVICE_ID_VIRTIO_10_BASE 0x1040
|
||||
@@ -166,16 +156,32 @@ index e2aab3d..9131b5d 100644
|
||||
dc->user_creatable = true;
|
||||
vc->get_id = device_vmstate_if_get_id;
|
||||
rc->get_state = device_get_reset_state;
|
||||
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
|
||||
index f064aa2..cfdbbc1 100644
|
||||
--- a/hw/i386/pc.c
|
||||
+++ b/hw/i386/pc.c
|
||||
@@ -1689,7 +1689,7 @@ static void pc_machine_class_init(ObjectClass *oc, const void *data)
|
||||
diff --git a/hw/pci/pci.c b/hw/pci/pci.c
|
||||
index d319160..7206e3d 100644
|
||||
--- a/hw/pci/pci.c
|
||||
+++ b/hw/pci/pci.c
|
||||
@@ -355,8 +355,8 @@ static void pci_irq_handler(void *opaque, int irq_num, int level);
|
||||
static void pci_add_option_rom(PCIDevice *pdev, bool is_default_rom, Error **);
|
||||
static void pci_del_option_rom(PCIDevice *pdev);
|
||||
|
||||
pcmc->pci_enabled = true;
|
||||
pcmc->has_acpi_build = true;
|
||||
- pcmc->smbios_defaults = true;
|
||||
+ pcmc->smbios_defaults = false;
|
||||
pcmc->gigabyte_align = true;
|
||||
pcmc->has_reserved_memory = true;
|
||||
pcmc->enforce_amd_1tb_hole = true;
|
||||
-static uint16_t pci_default_sub_vendor_id = PCI_SUBVENDOR_ID_REDHAT_QUMRANET;
|
||||
-static uint16_t pci_default_sub_device_id = PCI_SUBDEVICE_ID_QEMU;
|
||||
+static uint16_t pci_default_sub_vendor_id = PCI_VENDOR_ID_INTEL;
|
||||
+static uint16_t pci_default_sub_device_id = 0;
|
||||
|
||||
PCIHostStateList pci_host_bridges;
|
||||
|
||||
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
|
||||
index 6f5db5f..a7e07b8 100644
|
||||
--- a/hw/virtio/virtio-pci.c
|
||||
+++ b/hw/virtio/virtio-pci.c
|
||||
@@ -2029,6 +2029,9 @@ static void virtio_pci_device_plugged(DeviceState *d, Error **errp)
|
||||
modern = virtio_pci_modern(proxy);
|
||||
|
||||
config = proxy->pci_dev.config;
|
||||
+ /* virtio drivers match Red Hat's subsystem IDs; OVMF needs a device ID >= 0x40 */
|
||||
+ pci_set_word(config + PCI_SUBSYSTEM_VENDOR_ID, PCI_SUBVENDOR_ID_REDHAT_QUMRANET);
|
||||
+ pci_set_word(config + PCI_SUBSYSTEM_ID, PCI_SUBDEVICE_ID_QEMU);
|
||||
if (proxy->class_code) {
|
||||
pci_config_set_class(config, proxy->class_code);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user