diff options
author | Gerd Hoffmann | 2020-10-16 13:38:32 +0200 |
---|---|---|
committer | Gerd Hoffmann | 2020-10-21 11:36:05 +0200 |
commit | 64b070dad39dcae2fe06f498c0536df9a54e4beb (patch) | |
tree | ac075e4386b848272c0207fd854441bf4e2857fc /hw/i386 | |
parent | x86: make pci irqs runtime configurable (diff) | |
download | qemu-64b070dad39dcae2fe06f498c0536df9a54e4beb.tar.gz qemu-64b070dad39dcae2fe06f498c0536df9a54e4beb.tar.xz qemu-64b070dad39dcae2fe06f498c0536df9a54e4beb.zip |
microvm: set pci_irq_mask
Makes sure the PCI interrupt overrides are added to the
APIC table in case PCIe is enabled.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-id: 20201016113835.17465-5-kraxel@redhat.com
Diffstat (limited to 'hw/i386')
-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) { |