[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2] hw/i386/acpi: Set PCAT_COMPAT bit only when pic is not di
From: |
Igor Mammedov |
Subject: |
Re: [PATCH v2] hw/i386/acpi: Set PCAT_COMPAT bit only when pic is not disabled |
Date: |
Wed, 3 Apr 2024 17:12:45 +0200 |
On Wed, 3 Apr 2024 10:59:53 -0400
Xiaoyao Li <xiaoyao.li@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.li@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);