From: Gerd Hoffmann <kraxel@redhat.com>
To: qemu-devel@nongnu.org
Cc: Laurent Vivier <lvivier@redhat.com>,
Peter Maydell <peter.maydell@linaro.org>,
Thomas Huth <thuth@redhat.com>,
Eduardo Habkost <ehabkost@redhat.com>,
Sergio Lopez <slp@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
Shannon Zhao <shannon.zhaosl@gmail.com>,
qemu-arm@nongnu.org, Gerd Hoffmann <kraxel@redhat.com>,
Igor Mammedov <imammedo@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Richard Henderson <rth@twiddle.net>
Subject: [PATCH v5 00/20] microvm: add acpi support
Date: Tue, 7 Jul 2020 14:53:36 +0200 [thread overview]
Message-ID: <20200707125356.32450-1-kraxel@redhat.com> (raw)
I know that not supporting ACPI in microvm is intentional. If you still
don't want ACPI this is perfectly fine, you can use the usual -no-acpi
switch to toggle ACPI support.
These are the advantages you are going to loose then:
(1) virtio-mmio device discovery without command line hacks (tweaking
the command line is a problem when not using direct kernel boot).
(2) Better IO-APIC support, we can use IRQ lines 16-23.
(3) ACPI power button (aka powerdown request) works.
(4) machine poweroff (aka S5 state) works.
Together with seabios patches for virtio-mmio support this allows to
boot standard fedora images (cloud, coreos, workstation live) with the
microvm machine type.
git branch for testing (including updated seabios):
https://git.kraxel.org/cgit/qemu/log/?h=sirius/microvm
changes in v2:
* some acpi cleanups are an separate patch series now.
* switched to hw reduced acpi & generic event device.
* misc fixes here and there.
changes in v3:
* depeds on "[PATCH v6 00/16] acpi: i386 tweaks" series.
* renamed qboot to qboot.bin
* updated seabios to master branch snapshot.
- this version boots fine with rtc=off
* generic event device tweaks (Igor's comments).
* make SMP work.
* add RfC patches to turn off acpi by default for microvm.
* misc fixes here and there.
changes in v4:
* rebase to latest master
- this also depends on the pending seabios update
* drop some patches which got cherry-picked.
* wire up cpu hotplug (also does coldplug cpu init).
* add microvm acpi test case.
* dropped RfC patches to turn off acpi by default for microvm.
* misc fixes here and there.
changes in v5:
* rebase to latest master (seabios dependency is merged meanwhile)
* fix DSDT version (mst).
* add comments referencing the ACPI spec for easier review (mst).
take care,
Gerd
Gerd Hoffmann (20):
microvm: name qboot binary qboot.rom
seabios: add microvm config, update build rules
seabios: add bios-microvm.bin binary
acpi: ged: add control regs
acpi: ged: add x86 device variant.
acpi: move acpi_dsdt_add_power_button() to ged
microvm: make virtio irq base runtime configurable
microvm/acpi: add minimal acpi support
microvm/acpi: add acpi_dsdt_add_virtio() for x86
microvm/acpi: use GSI 16-23 for virtio
microvm/acpi: use seabios with acpi=on
microvm/acpi: disable virtio-mmio cmdline hack
x86: constify x86_machine_is_*_enabled
x86: move acpi_dev from pc/microvm
x86: move cpu plug from pc to x86
microvm: wire up hotplug
tests/acpi: allow microvm test data updates.
tests/acpi: allow override blkdev
tests/acpi: add microvm test
tests/acpi: update expected data files for microvm
hw/i386/acpi-microvm.h | 8 +
include/hw/acpi/generic_event_device.h | 12 ++
include/hw/i386/microvm.h | 10 +-
include/hw/i386/pc.h | 1 -
include/hw/i386/x86.h | 11 +-
hw/acpi/generic_event_device.c | 52 +++++
hw/arm/virt-acpi-build.c | 8 -
hw/i386/acpi-build.c | 2 +-
hw/i386/acpi-microvm.c | 248 +++++++++++++++++++++++
hw/i386/generic_event_device_x86.c | 36 ++++
hw/i386/microvm.c | 105 +++++++++-
hw/i386/pc.c | 260 ++-----------------------
hw/i386/pc_piix.c | 2 +-
hw/i386/pc_q35.c | 2 +-
hw/i386/x86.c | 226 ++++++++++++++++++++-
tests/qtest/bios-tables-test.c | 21 +-
hw/i386/Kconfig | 1 +
hw/i386/Makefile.objs | 2 +
pc-bios/bios-microvm.bin | Bin 65536 -> 131072 bytes
pc-bios/qboot.rom | Bin 0 -> 65536 bytes
roms/Makefile | 11 +-
roms/config.seabios-microvm | 26 +++
tests/data/acpi/microvm/APIC | Bin 0 -> 70 bytes
tests/data/acpi/microvm/DSDT | Bin 0 -> 365 bytes
tests/data/acpi/microvm/FACP | Bin 0 -> 268 bytes
25 files changed, 775 insertions(+), 269 deletions(-)
create mode 100644 hw/i386/acpi-microvm.h
create mode 100644 hw/i386/acpi-microvm.c
create mode 100644 hw/i386/generic_event_device_x86.c
create mode 100644 pc-bios/qboot.rom
create mode 100644 roms/config.seabios-microvm
create mode 100644 tests/data/acpi/microvm/APIC
create mode 100644 tests/data/acpi/microvm/DSDT
create mode 100644 tests/data/acpi/microvm/FACP
--
2.18.4
next reply other threads:[~2020-07-07 12:55 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-07 12:53 Gerd Hoffmann [this message]
2020-07-07 12:53 ` [PATCH v5 01/20] microvm: name qboot binary qboot.rom Gerd Hoffmann
2020-07-07 12:53 ` [PATCH v5 02/20] seabios: add microvm config, update build rules Gerd Hoffmann
2020-07-07 12:53 ` [PATCH v5 03/20] seabios: add bios-microvm.bin binary Gerd Hoffmann
2020-07-07 12:53 ` [PATCH v5 04/20] acpi: ged: add control regs Gerd Hoffmann
2020-07-10 19:07 ` Igor Mammedov
2020-07-07 12:53 ` [PATCH v5 05/20] acpi: ged: add x86 device variant Gerd Hoffmann
2020-07-07 12:53 ` [PATCH v5 06/20] acpi: move acpi_dsdt_add_power_button() to ged Gerd Hoffmann
2020-07-07 12:53 ` [PATCH v5 07/20] microvm: make virtio irq base runtime configurable Gerd Hoffmann
2020-07-10 19:09 ` Igor Mammedov
2020-07-07 12:53 ` [PATCH v5 08/20] microvm/acpi: add minimal acpi support Gerd Hoffmann
2020-07-08 16:52 ` Michael S. Tsirkin
2020-07-09 12:33 ` Gerd Hoffmann
2020-07-10 19:30 ` Igor Mammedov
2020-07-16 8:52 ` Gerd Hoffmann
2020-07-07 12:53 ` [PATCH v5 09/20] microvm/acpi: add acpi_dsdt_add_virtio() for x86 Gerd Hoffmann
2020-07-07 12:53 ` [PATCH v5 10/20] microvm/acpi: use GSI 16-23 for virtio Gerd Hoffmann
2020-07-07 12:53 ` [PATCH v5 11/20] microvm/acpi: use seabios with acpi=on Gerd Hoffmann
2020-07-07 12:53 ` [PATCH v5 12/20] microvm/acpi: disable virtio-mmio cmdline hack Gerd Hoffmann
2020-07-07 12:53 ` [PATCH v5 13/20] x86: constify x86_machine_is_*_enabled Gerd Hoffmann
2020-07-07 12:53 ` [PATCH v5 14/20] x86: move acpi_dev from pc/microvm Gerd Hoffmann
2020-07-07 12:53 ` [PATCH v5 15/20] x86: move cpu plug from pc to x86 Gerd Hoffmann
2020-07-10 19:37 ` Igor Mammedov
2020-07-07 12:53 ` [PATCH v5 16/20] microvm: wire up hotplug Gerd Hoffmann
2020-07-10 19:44 ` Igor Mammedov
2020-07-07 12:53 ` [PATCH v5 17/20] tests/acpi: allow microvm test data updates Gerd Hoffmann
2020-07-07 12:53 ` [PATCH v5 18/20] tests/acpi: allow override blkdev Gerd Hoffmann
2020-07-10 19:48 ` Igor Mammedov
2020-07-07 12:53 ` [PATCH v5 19/20] tests/acpi: add microvm test Gerd Hoffmann
2020-07-10 19:49 ` Igor Mammedov
2020-07-16 9:10 ` Gerd Hoffmann
2020-07-16 13:05 ` Igor Mammedov
2020-07-07 12:53 ` [PATCH v5 20/20] tests/acpi: update expected data files for microvm Gerd Hoffmann
2020-07-07 13:34 ` [PATCH v5 00/20] microvm: add acpi support no-reply
2020-07-07 13:35 ` no-reply
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=20200707125356.32450-1-kraxel@redhat.com \
--to=kraxel@redhat.com \
--cc=ehabkost@redhat.com \
--cc=imammedo@redhat.com \
--cc=lvivier@redhat.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
--cc=shannon.zhaosl@gmail.com \
--cc=slp@redhat.com \
--cc=thuth@redhat.com \
/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.