On Thu, Jun 18, 2026 at 03:26:40PM +0200, Heinrich Schuchardt wrote:
> On 6/18/26 14:48, Michael S. Tsirkin wrote:
> > On Thu, Jun 18, 2026 at 02:40:20PM +0200, Heinrich Schuchardt 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]>
> >
> > Thanks for the patch!
> > Yet something to improve:
> >
> > That's not the way to submit expected table changes -
> > it would prevent backporting and rebasing.
> >
> > Pls follow instructions in ./tests/qtest/bios-tables-test.c
> >
> > Thanks!
>
> I tried it. But it does not work:
>
> After running all tests successfully with make check the script
> /tests/data/acpi/rebuild-expected-aml.sh
> told me that I should run make check.
>
> That did not make sense to me.
>
> I there a specific configuration needed to let make check write what
> rebuild-expected-aml.sh is looking for?
>
> I was using
>
> ./configure --prefix=/usr/local --static
> --target-list="riscv64-linux-user"
>
> and
>
> ./configure --prefix=/usr/local --static
> --target-list="loongarch64-linux-user"
>
> Best regards
>
> Heinrich
Because linux-user does not support these tests?
Drop the target list limitation and it will work.
> >
> > > ---
> > > 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 ++--
> > > tests/data/acpi/loongarch64/virt/SPCR | Bin 80 -> 80 bytes
> > > tests/data/acpi/riscv64/virt/SPCR | Bin 90 -> 90 bytes
> > > 3 files 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);
> > > /* PCI Device ID */
> > > build_append_int_noprefix(table_data, f->pci_device_id, 2);
> > > /* PCI Vendor ID */
> > > diff --git a/tests/data/acpi/loongarch64/virt/SPCR
> > > b/tests/data/acpi/loongarch64/virt/SPCR
> > > index
> > > 3cc9bbcfb8051e632592d9db0fe3dba0af53ed8d..7bb819cd0d2ad20269e40e4a738709a45260cbb2
> > > 100644
> > > GIT binary patch
> > > delta 23
> > > TcmWFtm|!Qw%<vxw7?1z}S|J61
> > >
> > > delta 23
> > > TcmWFtm|!Qw!2BNw7?1z}S{?;}
> > >
> > > diff --git a/tests/data/acpi/riscv64/virt/SPCR
> > > b/tests/data/acpi/riscv64/virt/SPCR
> > > index
> > > 09617f8793a6f7b1f08172f735b58aa748671540..59d2c8f7f215a604612cbd0294c18bc6301e208a
> > > 100644
> > > GIT binary patch
> > > delta 10
> > > Rcma!wnqbGo%rMbG3IGpM0&@TW
> > >
> > > delta 10
> > > Rcma!wnqbGoz&z1G3IGpJ0&@TW
> > >
> > > --
> > > 2.53.0
> >