From: Eric DeVolder <eric.devolder@oracle.com>
To: qemu-devel@nongnu.org
Cc: ehabkost@redhat.com, mst@redhat.com, konrad.wilk@oracle.com,
pbonzini@redhat.com, imammedo@redhat.com,
boris.ostrovsky@oracle.com, rth@twiddle.net
Subject: [PATCH 0/1] acpi: Implement ACPI ERST support for guests
Date: Mon, 26 Oct 2020 16:19:32 -0400 [thread overview]
Message-ID: <1603743573-9870-1-git-send-email-eric.devolder@oracle.com> (raw)
This changeset introduces support for the ACPI Error Record
Serialization Table, ERST.
The change to hw/acpi/meson.build simply adds in the new .c file
for compilation.
The change to hw/i386/acpi-build.c calls out the building of the
ERST table (and also creates the associated device).
The new file hw/acpi/erst.c contains the building of the ERST
table, as well as the simple device for exchanging error records.
The new file include/hw/acpi/erst.h contains associated definitions
and declarations for ERST.
The primary description of this changeset is in the patch commit
message.
NOTES: When reviewing, I would especially appreciate feedback
on the following topics:
- The hope is to have ERST always present if ACPI is enabled, however,
I have found it difficult to devise a method for passing the base
address that does not require the workaround at the bottom of
build_erst(). The issues I encountered are:
- desire to keep this is common ACPI code
- the device requires a qdev_new(), this needs to happen early,
thus the workaround in build_erst()
- the base address is machine/arch specific (eg ARM vs x86)
I've not found a nice way to thread this needle, so what I've settled
on is to simply lump ERST on to the CONFIG_ACPI (rather than a
separate CONFIG_ACPI_ERST), and the workaround at the bottom of
build_erst(). I suspect there is a better way for a built-in/
always present device. This does not support "-device acpi-erst,...".
- I found a base address that "worked", but would like an address
that would be known to be availabe, and then to document/reserve
it for ERST. This takes into account that the base address can be
different for x86 vs ARM.
- I've run this through checkpatch, and all issues addressed except
for the long lines in build_erst(). For readable I left the long
lines, but will change if asked.
- What else do I need to provide?
Signed-off-by: Eric DeVolder <eric.devolder@oracle.com>
---
hw/acpi/erst.c | 909 +++++++++++++++++++++++++++++++++++++++++++++++++
hw/acpi/meson.build | 1 +
hw/i386/acpi-build.c | 4 +
include/hw/acpi/erst.h | 97 ++++++
4 files changed, 1011 insertions(+)
create mode 100644 hw/acpi/erst.c
create mode 100644 include/hw/acpi/erst.h
next reply other threads:[~2020-10-26 20:48 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-26 20:19 Eric DeVolder [this message]
2020-10-26 20:19 ` [PATCH 1/1] acpi: Implement ACPI ERST support for guests Eric DeVolder
2020-11-03 21:16 ` Paolo Bonzini
2021-02-08 21:08 ` Eric Devolder
2020-10-26 20:54 ` [PATCH 0/1] " no-reply
2020-11-03 14:57 ` Igor Mammedov
2021-02-08 21:07 ` Eric Devolder
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=1603743573-9870-1-git-send-email-eric.devolder@oracle.com \
--to=eric.devolder@oracle.com \
--cc=boris.ostrovsky@oracle.com \
--cc=ehabkost@redhat.com \
--cc=imammedo@redhat.com \
--cc=konrad.wilk@oracle.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
/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.