diff options
-rw-r--r-- | hw/i386/acpi-microvm.c | 2 | ||||
-rw-r--r-- | hw/i386/microvm.c | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/hw/i386/acpi-microvm.c b/hw/i386/acpi-microvm.c index f16f231195..8e2d2b7cff 100644 --- a/hw/i386/acpi-microvm.c +++ b/hw/i386/acpi-microvm.c @@ -196,7 +196,7 @@ static void acpi_build_microvm(AcpiBuildTables *tables, acpi_add_table(table_offsets, tables_blob); acpi_build_madt(tables_blob, tables->linker, X86_MACHINE(machine), - ACPI_DEVICE_IF(x86ms->acpi_dev), false); + ACPI_DEVICE_IF(x86ms->acpi_dev), x86ms->pci_irq_mask != 0); xsdt = tables_blob->len; build_xsdt(tables_blob, tables->linker, table_offsets, NULL, NULL); diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c index 68a7f424ac..c60ba4e840 100644 --- a/hw/i386/microvm.c +++ b/hw/i386/microvm.c @@ -210,6 +210,12 @@ static void microvm_devices_init(MicrovmMachineState *mms) mms->gpex.ecam.size = PCIE_ECAM_SIZE; mms->gpex.irq = PCIE_IRQ_BASE; create_gpex(mms); + x86ms->pci_irq_mask = ((1 << (PCIE_IRQ_BASE + 0)) | + (1 << (PCIE_IRQ_BASE + 1)) | + (1 << (PCIE_IRQ_BASE + 2)) | + (1 << (PCIE_IRQ_BASE + 3))); + } else { + x86ms->pci_irq_mask = 0; } if (mms->pic == ON_OFF_AUTO_ON || mms->pic == ON_OFF_AUTO_AUTO) { |