Message ID | 20230328155926.2277-2-eric.devolder@oracle.com |
---|---|
State | New |
Headers | show |
Series | hw/acpi: bump MADT to revision 5 | expand |
On Tue, 28 Mar 2023 11:59:25 -0400 Eric DeVolder <eric.devolder@oracle.com> wrote: > 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.devolder@oracle.com> needs ACK from ARM folks > --- > 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) {
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) {
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.devolder@oracle.com> --- hw/arm/virt-acpi-build.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)