[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH V2] hw/acpi: fix Q35 support for legacy Windows
From: |
Igor Mammedov |
Subject: |
Re: [Qemu-devel] [PATCH V2] hw/acpi: fix Q35 support for legacy Windows OS |
Date: |
Tue, 8 Mar 2016 10:00:32 +0100 |
On Mon, 7 Mar 2016 21:14:37 +0200
Marcel Apfelbaum <address@hidden> wrote:
> Legacy Windows operating systems like Windows XP and Windows 2003
> require _DIS method to be present for all interrupt links.
>
> PC machines already have a no-op implemented for GSI links, add
> it also in Q35.
>
> Signed-off-by: Marcel Apfelbaum <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
> ---
>
> Hi,
>
> I tested this patch with WinXP and Win 2003, but also with Win 10, and Fedora.
> This solves a BSOD early in the setup process.
>
> WinXP/2003 can be tested using:
> -device piix3-ide,id=legacyide \
> -drive file=winxp-q35.qcow2,if=none,id=disk -device
> ide-hd,drive=disk,bus=legacyide.0 \
> -drive file=xp_sp3.iso,if=none,id=cdrom -device
> ide-cd,drive=cdrom,bus=legacyide.1
>
> Please note that you have to use the piix3-ide because Win2003 (and probably
> XP)
> does not have Q35 AHCI drivers inbox.
>
> v1 -> v2:
> - Added comment for the no-op _DIS (Michael S. Tsirkin)
>
> Thanks,
> Marcel
>
> hw/i386/acpi-build.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
> index 52c9470..adbf354 100644
> --- a/hw/i386/acpi-build.c
> +++ b/hw/i386/acpi-build.c
> @@ -1509,6 +1509,12 @@ static Aml *build_gsi_link_dev(const char *name,
> uint8_t uid, uint8_t gsi)
>
> aml_append(dev, aml_name_decl("_CRS", crs));
>
> + /*
> + * _DIS can be no-op because the interrupt cannot be disabled.
> + */
> + method = aml_method("_DIS", 0, AML_NOTSERIALIZED);
> + aml_append(dev, method);
> +
> method = aml_method("_SRS", 1, AML_NOTSERIALIZED);
> aml_append(dev, method);
>