From: "Michael S. Tsirkin" <mst@redhat.com>
To: isaku.yamahata@gmail.com
Cc: isaku.yamahata@intel.com, berrange@redhat.com,
qemu-devel@nongnu.org, f4bug@amsat.org,
Reinoud Zandijk <reinoud@netbsd.org>,
pbonzini@redhat.com, Igor Mammedov <imammedo@redhat.com>,
aurelien@aurel32.net
Subject: Re: [PATCH] acpi:piix4, vt82c686: reinitialize acpi PM device on reset
Date: Mon, 22 Mar 2021 18:57:25 -0400 [thread overview]
Message-ID: <20210322185659-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <1ceb31c6782f701674d3b907a419f5a82adb37bc.1616012290.git.isaku.yamahata@intel.com>
On Wed, Mar 17, 2021 at 02:49:31PM -0700, isaku.yamahata@gmail.com wrote:
> From: Isaku Yamahata <isaku.yamahata@intel.com>
>
> Commit 6be8cf56bc8b made sure that SCI is enabled in PM1.CNT
> on reset in acpi_only mode by modifying acpi_pm1_cnt_reset() and
> that worked for q35 as expected.
>
> The function was introduced by commit
> eaba51c573a (acpi, acpi_piix, vt82c686: factor out PM1_CNT logic)
> that forgot to actually call it at piix4 reset time and as result
> SCI_EN wasn't set as was expected by 6be8cf56bc8b in acpi_only mode.
>
> So Windows crashes when it notices that SCI_EN is not set and FADT is
> not providing information about how to enable it anymore.
> Reproducer:
> qemu-system-x86_64 -enable-kvm -M pc-i440fx-6.0,smm=off -cdrom any_windows_10x64.iso
>
> Fix it by calling acpi_pm1_cnt_reset() at piix4 reset time.
>
> Occasionally this patch adds reset acpi PM related registers on
> piix4/vt582c686 reset time and de-assert sci.
> piix4_pm_realize() initializes acpi pm tmr, evt, cnt and gpe.
> via_pm_realize() initializes acpi pm tmr, evt and cnt.
> reset them on device reset. pm_reset() in ich9.c correctly calls
> corresponding reset functions.
>
> Fixes: 6be8cf56bc8b (acpi/core: always set SCI_EN when SMM isn't supported)
> Reported-by: Reinoud Zandijk <reinoud@NetBSD.org>
> Co-developed-by: Igor Mammedov <imammedo@redhat.com>
> Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com>
Caused regressions reported by Peter. Pls reproduce and debug, then
repost. Thanks!
> ---
> CC: imammedo@redhat.com
> CC: isaku.yamahata@intel.com
> CC: mst@redhat.com
> CC: reinoud@NetBSD.org
> CC: isaku.yamahata@gmail.com
> CC: berrange@redhat.com
> CC: pbonzini@redhat.com
> CC: f4bug@amsat.org
> CC: aurelien@aurel32.net
> ---
> hw/acpi/piix4.c | 7 +++++++
> hw/isa/vt82c686.c | 5 +++++
> 2 files changed, 12 insertions(+)
>
> diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c
> index 1efc0ded9f..a00525025b 100644
> --- a/hw/acpi/piix4.c
> +++ b/hw/acpi/piix4.c
> @@ -325,6 +325,13 @@ static void piix4_pm_reset(DeviceState *dev)
> /* Mark SMM as already inited (until KVM supports SMM). */
> pci_conf[0x5B] = 0x02;
> }
> +
> + acpi_pm1_evt_reset(&s->ar);
> + acpi_pm1_cnt_reset(&s->ar);
> + acpi_pm_tmr_reset(&s->ar);
> + acpi_gpe_reset(&s->ar);
> + acpi_update_sci(&s->ar, s->irq);
> +
> pm_io_space_update(s);
> acpi_pcihp_reset(&s->acpi_pci_hotplug, !s->use_acpi_root_pci_hotplug);
> }
> diff --git a/hw/isa/vt82c686.c b/hw/isa/vt82c686.c
> index 05d084f698..7bacad03e2 100644
> --- a/hw/isa/vt82c686.c
> +++ b/hw/isa/vt82c686.c
> @@ -167,6 +167,11 @@ static void via_pm_reset(DeviceState *d)
> /* SMBus IO base */
> pci_set_long(s->dev.config + 0x90, 1);
>
> + acpi_pm1_evt_reset(&s->ar);
> + acpi_pm1_cnt_reset(&s->ar);
> + acpi_pm_tmr_reset(&s->ar);
> + pm_update_sci(s);
> +
> pm_io_space_update(s);
> smb_io_space_update(s);
> }
> --
> 2.25.1
next prev parent reply other threads:[~2021-03-22 22:59 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-16 20:29 [PATCH for-6.0] x86:acpi:piix4: reinitialize PM1.CNT on reset Igor Mammedov
2021-03-16 20:56 ` Isaku Yamahata
2021-03-17 9:41 ` Igor Mammedov
2021-03-17 21:49 ` [PATCH] acpi:piix4, vt82c686: reinitialize acpi PM device " isaku.yamahata
2021-03-22 22:57 ` Michael S. Tsirkin [this message]
2021-03-17 16:37 ` [PATCH for-6.0] x86:acpi:piix4: reinitialize PM1.CNT " Reinoud Zandijk
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210322185659-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=aurelien@aurel32.net \
--cc=berrange@redhat.com \
--cc=f4bug@amsat.org \
--cc=imammedo@redhat.com \
--cc=isaku.yamahata@gmail.com \
--cc=isaku.yamahata@intel.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=reinoud@netbsd.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.