From: Igor Mammedov <imammedo@redhat.com>
To: Reza Jelveh <fishman@saucelabs.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [RFC] acpi: add reset register to fadt
Date: Mon, 30 Mar 2015 14:36:43 +0200 [thread overview]
Message-ID: <20150330143643.304edf0f@nial.brq.redhat.com> (raw)
In-Reply-To: <1427554013-3535-1-git-send-email-fishman@saucelabs.com>
On Sat, 28 Mar 2015 15:46:53 +0100
Reza Jelveh <fishman@saucelabs.com> wrote:
> Some operating systems such as FreeBSD and Mac OSX need the reset_register
> section of the FADT filled to know which port to write to for a system reset.
>
> What is the right way to set the reset_val and the reset addr in this case?
> ---
> hw/i386/acpi-build.c | 5 +++++
> hw/i386/acpi-defs.h | 2 ++
> 2 files changed, 7 insertions(+)
>
> diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
> index d0a5c85..21c1453 100644
> --- a/hw/i386/acpi-build.c
> +++ b/hw/i386/acpi-build.c
> @@ -361,6 +361,11 @@ static void fadt_setup(AcpiFadtDescriptorRev1 *fadt, AcpiPmInfo *pm)
> (1 << ACPI_FADT_F_SLP_BUTTON) |
> (1 << ACPI_FADT_F_RTC_S4));
> fadt->flags |= cpu_to_le32(1 << ACPI_FADT_F_USE_PLATFORM_CLOCK);
> + fadt->flags |= cpu_to_le32(1 << ACPI_FADT_F_RESET_REG_SUP);
> + fadt->reset_val = 0xf;
> + fadt->reset_reg.address_space_id = aml_system_io;
> + fadt->reset_reg.register_bit_width = 8;
> + fadt->reset_reg.address = ICH9_RST_CNT_IOPORT;
> /* APIC destination mode ("Flat Logical") has an upper limit of 8 CPUs
> * For more than 8 CPUs, "Clustered Logical" mode has to be used
> */
> diff --git a/hw/i386/acpi-defs.h b/hw/i386/acpi-defs.h
> index c4468f8..960c833 100644
> --- a/hw/i386/acpi-defs.h
> +++ b/hw/i386/acpi-defs.h
> @@ -132,6 +132,8 @@ struct AcpiFadtDescriptorRev1
> uint8_t reserved4a; /* Reserved */
> uint8_t reserved4b; /* Reserved */
> uint32_t flags;
> + Acpi20GenericAddress reset_reg;
> + uint8_t reset_val;
you are extending structure beyond of what specified by ACPI 1.0b spec,
that might break guests.
We probably can't change revision since Windows ACPI implementation
is mostly 1.0b based so we are stuck with it.
Patch needs to be tested with Windows guests starting with XP.
related issue,
adding fields without changing major version to a corresponding
one doesn't look correct.
> } QEMU_PACKED;
> typedef struct AcpiFadtDescriptorRev1 AcpiFadtDescriptorRev1;
>
next prev parent reply other threads:[~2015-03-30 12:36 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-28 14:46 [Qemu-devel] [RFC] acpi: add reset register to fadt Reza Jelveh
2015-03-29 17:38 ` Marcel Apfelbaum
2015-03-30 13:56 ` Paolo Bonzini
2015-03-30 12:36 ` Igor Mammedov [this message]
2015-03-30 13:27 ` Reza Jelveh
2015-03-30 13:49 ` Igor Mammedov
2015-03-30 13:59 ` Paolo Bonzini
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=20150330143643.304edf0f@nial.brq.redhat.com \
--to=imammedo@redhat.com \
--cc=fishman@saucelabs.com \
--cc=qemu-devel@nongnu.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).