On Mon, Jun 22, 2026 at 9:18 PM Heinrich Schuchardt <[email protected]> wrote: > > On LoongArch and RISC-V invalid SPCR tables are created: > > Terminal Type : 00 > Language : 03 > > The correct values are: > > Terminal Type : 03 > Language : 00 > > This is due to commit 7dd0b070fa09 ("hw/arm/virt-acpi-build.c: Migrate > SPCR creation to common location") that swapped the fields. > > See the specification of the table in > https://learn.microsoft.com/en-us/windows-hardware/drivers/bringup/serial-port-console-redirection-table > > This page shows version 1.10. But the sequence of the fields was not changed > since version 1.0. > > Our LoongArch and ARM code uses version 1.07 of the specification. > Our RISC-V code uses version 1.10 of the specification. > > Fixes: 7dd0b070fa09 ("hw/arm/virt-acpi-build.c: Migrate SPCR creation to > common location") > Origin: > https://lore.kernel.org/qemu-devel/[email protected]/T/#u > Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/2146419 > Signed-off-by: Heinrich Schuchardt <[email protected]> > --- > v4: > Reproduce the test data changes using rebuild-expected-aml.sh > creating the same diff as v3 but in two separate patches. > v3: > Update test data > v2: > Mention the different specification versions used by our code > > https://lore.kernel.org/qemu-devel/[email protected]/ > v1: > > https://lore.kernel.org/qemu-devel/[email protected]/T/#u > --- > hw/acpi/aml-build.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c > index 9b3cdd3781..990abc64cd 100644 > --- a/hw/acpi/aml-build.c > +++ b/hw/acpi/aml-build.c > @@ -2144,10 +2144,10 @@ void build_spcr(GArray *table_data, BIOSLinker > *linker, > build_append_int_noprefix(table_data, f->stop_bits, 1); > /* Flow Control */ > build_append_int_noprefix(table_data, f->flow_control, 1); > - /* Language */ > - build_append_int_noprefix(table_data, f->language, 1); > /* Terminal Type */ > build_append_int_noprefix(table_data, f->terminal_type, 1); > + /* Language */ > + build_append_int_noprefix(table_data, f->language, 1);
Won't this break tests? Don't you need to disable the test first (then re-enable it and fix it in patch 3) Alistair > /* PCI Device ID */ > build_append_int_noprefix(table_data, f->pci_device_id, 2); > /* PCI Vendor ID */ > -- > 2.53.0 >
