Currently ARM QEMU generates, and reports, MADT revision 4. ACPI 6.3 introduces MADT revision 5.
For MADT revision 5, the GICC structure adds an SPE Overflow Interrupt field. This new 2-byte field is created from the existing 3-byte Reserved field. The spec indicates if the SPE overflow interrupt is not supported, to zero the field. Signed-off-by: Eric DeVolder <eric.devol...@oracle.com> --- hw/arm/virt-acpi-build.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c index 4156111d49..23268dd981 100644 --- a/hw/arm/virt-acpi-build.c +++ b/hw/arm/virt-acpi-build.c @@ -705,7 +705,7 @@ build_madt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) int i; VirtMachineClass *vmc = VIRT_MACHINE_GET_CLASS(vms); const MemMapEntry *memmap = vms->memmap; - AcpiTable table = { .sig = "APIC", .rev = 4, .oem_id = vms->oem_id, + AcpiTable table = { .sig = "APIC", .rev = 5, .oem_id = vms->oem_id, .oem_table_id = vms->oem_table_id }; acpi_table_begin(&table, table_data); @@ -763,7 +763,9 @@ build_madt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) /* Processor Power Efficiency Class */ build_append_int_noprefix(table_data, 0, 1); /* Reserved */ - build_append_int_noprefix(table_data, 0, 3); + build_append_int_noprefix(table_data, 0, 1); + /* SPE overflow Interrupt */ + build_append_int_noprefix(table_data, 0, 2); } if (vms->gic_version != VIRT_GIC_VERSION_2) { -- 2.31.1