On Wed, 3 Apr 2024 10:59:53 -0400 Xiaoyao Li <xiaoyao...@intel.com> wrote:
> A value 1 of PCAT_COMPAT (bit 0) of MADT.Flags indicates that the system > also has a PC-AT-compatible dual-8259 setup, i.e., the PIC. > > When PIC is not enabled (pic=off) for x86 machine, the PCAT_COMPAT bit > needs to be cleared. Otherwise, the guest thinks there is a present PIC. Can you add to commit message reproducer (aka qemu CLI and relevant logs/symptoms observed on guest side)? > > Signed-off-by: Xiaoyao Li <xiaoyao...@intel.com> > --- > changes in v2: > - Clarify more in commit message; > --- > hw/i386/acpi-common.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/hw/i386/acpi-common.c b/hw/i386/acpi-common.c > index 20f19269da40..0cc2919bb851 100644 > --- a/hw/i386/acpi-common.c > +++ b/hw/i386/acpi-common.c > @@ -107,7 +107,9 @@ void acpi_build_madt(GArray *table_data, BIOSLinker > *linker, > acpi_table_begin(&table, table_data); > /* Local APIC Address */ > build_append_int_noprefix(table_data, APIC_DEFAULT_ADDRESS, 4); > - build_append_int_noprefix(table_data, 1 /* PCAT_COMPAT */, 4); /* Flags > */ > + /* Flags. bit 0: PCAT_COMPAT */ > + build_append_int_noprefix(table_data, > + x86ms->pic != ON_OFF_AUTO_OFF ? 1 : 0 , 4); > > for (i = 0; i < apic_ids->len; i++) { > pc_madt_cpu_entry(i, apic_ids, table_data, false);