[PATCH v5 0/4] acpi: Add machine option to disable SPCR table

Li Chen posted 4 patches 4 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20250716111959.404917-1-me@linux.beauty
Maintainers: "Michael S. Tsirkin" <mst@redhat.com>, Igor Mammedov <imammedo@redhat.com>, Ani Sinha <anisinha@redhat.com>, Peter Maydell <peter.maydell@linaro.org>, Shannon Zhao <shannon.zhaosl@gmail.com>, Eduardo Habkost <eduardo@habkost.net>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, "Philippe Mathieu-Daudé" <philmd@linaro.org>, Yanan Wang <wangyanan55@huawei.com>, Zhao Liu <zhao1.liu@intel.com>, Song Gao <gaosong@loongson.cn>, Bibo Mao <maobibo@loongson.cn>, Jiaxun Yang <jiaxun.yang@flygoat.com>, Sunil V L <sunilvl@ventanamicro.com>, Palmer Dabbelt <palmer@dabbelt.com>, Alistair Francis <alistair.francis@wdc.com>, Weiwei Li <liwei1518@gmail.com>, Daniel Henrique Barboza <dbarboza@ventanamicro.com>, Liu Zhiwei <zhiwei_liu@linux.alibaba.com>, Paolo Bonzini <pbonzini@redhat.com>
hw/arm/virt-acpi-build.c       | 18 ++++++++-----
hw/core/machine.c              | 22 ++++++++++++++++
hw/loongarch/virt-acpi-build.c | 10 +++++---
hw/riscv/virt-acpi-build.c     | 11 ++++++--
include/hw/boards.h            |  1 +
include/system/system.h        |  2 ++
qemu-options.hx                |  5 ++++
system/vl.c                    |  5 ++++
tests/qtest/bios-tables-test.c | 47 ++++++++++++++++++++++++++++++++--
9 files changed, 108 insertions(+), 13 deletions(-)
[PATCH v5 0/4] acpi: Add machine option to disable SPCR table
Posted by Li Chen 4 months ago
From: Li Chen <chenl311@chinatelecom.cn>

This series introduces a new machine option, spcr=on|off, allowing users
to disable the ACPI SPCR (Serial Port Console Redirection) table.
By default, SPCR is enabled. Disabling it can help ensure that the guest's
console behavior is determined solely by kernel command-line parameters
on arch like arm64, avoiding unintended serial console configurations imposed
by firmware.

Also add tests on AArch64 and RISC-V virt machines using TCG and UEFI boot.

Changes since v4:
(These changes are suggested by Michael S. Tsirkin[1], and only for the last patch)
- Also suppress UART device & SPCR when guest has no serial hardware on loongarch
- rename serial_exist to serial_exists
- fix style issue
Changes since v3:
- Add Reviewed-by from Sunil V L <sunilvl@ventanamicro.com> for patch 1, 3, and 4.
- rename enable_spcr to acpi_spcr_enabled as suggested by Philippe Mathieu-Daudé.
Changes since v2:
- Omit UART device from DSDT and SPCR construction if no serial device is present,
as suggested by Philippe Mathieu-Daudé.
- Add Reviewed-by from Gavin Shan <gshan@redhat.com> for the first patch and fix style issue.

Changes since v1:
- Add bios-tables-test for RISC-V and ARM as suggested by
- Add Acked-by from Michael S. Tsirkin for the first patch
- Add Reviewed-by from Bibo Mao for the first patch

[1]: https://lore.kernel.org/all/20250530081034-mutt-send-email-mst@kernel.org/

Li Chen (4):
  acpi: Add machine option to disable SPCR table
  tests/qtest/bios-tables-test: Add test for disabling SPCR on AArch64
  tests/qtest/bios-tables-test: Add test for disabling SPCR on RISC-V
  acpi/virt: suppress UART device & SPCR when guest has no serial
    hardware

 hw/arm/virt-acpi-build.c       | 18 ++++++++-----
 hw/core/machine.c              | 22 ++++++++++++++++
 hw/loongarch/virt-acpi-build.c | 10 +++++---
 hw/riscv/virt-acpi-build.c     | 11 ++++++--
 include/hw/boards.h            |  1 +
 include/system/system.h        |  2 ++
 qemu-options.hx                |  5 ++++
 system/vl.c                    |  5 ++++
 tests/qtest/bios-tables-test.c | 47 ++++++++++++++++++++++++++++++++--
 9 files changed, 108 insertions(+), 13 deletions(-)

-- 
2.50.0