U-Boot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* SMBIOS tables missing on 2025.04-rc5 on qemu-x86
@ 2025-04-04 13:10 Niklas Sombert
  2025-04-04 16:33 ` Tom Rini
  0 siblings, 1 reply; 3+ messages in thread
From: Niklas Sombert @ 2025-04-04 13:10 UTC (permalink / raw)
  To: u-boot; +Cc: Simon Glass


[-- Attachment #1.1: Type: text/plain, Size: 3066 bytes --]

Hi all,

I've written a small EFI bootloader and I'm testing it on QEMU with OVMF 
and with u-boot (with the qemu-x86_defconfig as -bios in QEMU).

On upgrading from 2025.01 to 2025.04-rc5, I've noticed that the SMBIOS 
tables that are passed via the SMBIOS EFI config table are completely 
blank (just zeroes instead of starting with SM3).

This is pretty easy to reproduce:

git checkout v2025.01
make clean
git clean -xf
make qemu-x86_defconfig
# edit .config: CONFIG_CMD_SMBIOS=y
make -j4
qemu-system-i386 -bios u-boot.rom
# type "smbios" in the prompt and see information about the system

versus:
git checkout v2025.04-rc5
make clean
git clean -xf
make qemu-x86_defconfig
# edit .config: CONFIG_CMD_SMBIOS=y
make -j4
qemu-system-i386 -bios u-boot.rom
# type "smbios" and get the following error:
# do_smbios() Unknown SMBIOS anchor format

This is on QEMU version 6.2.0 (Debian 1:6.2+dfsg-2ubuntu6.25), the one 
Ubuntu 22.04 currently ships, but I also get the same results on Ubuntu 
24.04.

Bisecting leads me to the following commit:

commit d5bc5c6cb0291203fe848a8532a7ecbcd44cfe9e
Author: Simon Glass <sjg@chromium.org>
Date:   Fri Jan 10 17:00:26 2025 -0700

     x86: emulation: Enable bloblist

     Add bloblist support so that tables can be generated and placed in a
     bloblist, then passed to a payload using UPL

     Signed-off-by: Simon Glass <sjg@chromium.org>

diff --git a/configs/qemu-x86_64_defconfig b/configs/qemu-x86_64_defconfig
index 2771a4b9e19..792ba06c2b8 100644
--- a/configs/qemu-x86_64_defconfig
+++ b/configs/qemu-x86_64_defconfig
@@ -1,6 +1,7 @@
  CONFIG_X86=y
  CONFIG_TEXT_BASE=0x1110000
  CONFIG_SYS_MALLOC_F_LEN=0x1000
+CONFIG_BLOBLIST_SIZE_RELOC=0x20000
  CONFIG_NR_DRAM_BANKS=8
  CONFIG_ENV_SIZE=0x40000
  CONFIG_MAX_CPUS=2
@@ -33,6 +34,7 @@ CONFIG_LOGF_FUNC=y
  CONFIG_SPL_LOG=y
  CONFIG_DISPLAY_BOARDINFO_LATE=y
  CONFIG_PCI_INIT_R=y
+CONFIG_BLOBLIST=y
  CONFIG_BLOBLIST_FIXED=y
  CONFIG_BLOBLIST_ADDR=0x10000
  CONFIG_SPL_NO_BSS_LIMIT=y
diff --git a/configs/qemu-x86_defconfig b/configs/qemu-x86_defconfig
index 947d15cd727..0b0e10c795f 100644
--- a/configs/qemu-x86_defconfig
+++ b/configs/qemu-x86_defconfig
@@ -1,6 +1,7 @@
  CONFIG_X86=y
  CONFIG_TEXT_BASE=0xFFF00000
  CONFIG_SYS_MALLOC_F_LEN=0x1000
+CONFIG_BLOBLIST_SIZE_RELOC=0x20000
  CONFIG_NR_DRAM_BANKS=8
  CONFIG_ENV_SIZE=0x40000
  CONFIG_MAX_CPUS=2
@@ -23,6 +24,9 @@ CONFIG_LOG=y
  CONFIG_LOGF_FUNC=y
  CONFIG_DISPLAY_BOARDINFO_LATE=y
  CONFIG_PCI_INIT_R=y
+CONFIG_BLOBLIST=y
+CONFIG_BLOBLIST_FIXED=y
+CONFIG_BLOBLIST_ADDR=0x10000
  CONFIG_CMD_CPU=y
  CONFIG_CMD_BOOTEFI_SELFTEST=y
  CONFIG_CMD_NVEDIT_EFI=y

Just setting CONFIG_BLOBLIST=n solves this problem for me.

I'm not sure how to debug this further, because v2025.01 doesn't build 
with the config from v2025.04-rc5:
ld.bfd: arch/x86/lib/tables.o: in function `write_tables':
/home/niklas/Build/u-boot/arch/x86/lib/tables.c:171: undefined reference 
to `acpi_write_rsdp'


Greetings,
Niklas


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: SMBIOS tables missing on 2025.04-rc5 on qemu-x86
  2025-04-04 13:10 SMBIOS tables missing on 2025.04-rc5 on qemu-x86 Niklas Sombert
@ 2025-04-04 16:33 ` Tom Rini
  2025-04-05 20:46   ` Simon Glass
  0 siblings, 1 reply; 3+ messages in thread
From: Tom Rini @ 2025-04-04 16:33 UTC (permalink / raw)
  To: Niklas Sombert; +Cc: u-boot, Simon Glass

[-- Attachment #1: Type: text/plain, Size: 3539 bytes --]

On Fri, Apr 04, 2025 at 03:10:29PM +0200, Niklas Sombert wrote:

> Hi all,
> 
> I've written a small EFI bootloader and I'm testing it on QEMU with OVMF and
> with u-boot (with the qemu-x86_defconfig as -bios in QEMU).
> 
> On upgrading from 2025.01 to 2025.04-rc5, I've noticed that the SMBIOS
> tables that are passed via the SMBIOS EFI config table are completely blank
> (just zeroes instead of starting with SM3).
> 
> This is pretty easy to reproduce:
> 
> git checkout v2025.01
> make clean
> git clean -xf
> make qemu-x86_defconfig
> # edit .config: CONFIG_CMD_SMBIOS=y
> make -j4
> qemu-system-i386 -bios u-boot.rom
> # type "smbios" in the prompt and see information about the system
> 
> versus:
> git checkout v2025.04-rc5
> make clean
> git clean -xf
> make qemu-x86_defconfig
> # edit .config: CONFIG_CMD_SMBIOS=y
> make -j4
> qemu-system-i386 -bios u-boot.rom
> # type "smbios" and get the following error:
> # do_smbios() Unknown SMBIOS anchor format
> 
> This is on QEMU version 6.2.0 (Debian 1:6.2+dfsg-2ubuntu6.25), the one
> Ubuntu 22.04 currently ships, but I also get the same results on Ubuntu
> 24.04.
> 
> Bisecting leads me to the following commit:
> 
> commit d5bc5c6cb0291203fe848a8532a7ecbcd44cfe9e
> Author: Simon Glass <sjg@chromium.org>
> Date:   Fri Jan 10 17:00:26 2025 -0700
> 
>     x86: emulation: Enable bloblist
> 
>     Add bloblist support so that tables can be generated and placed in a
>     bloblist, then passed to a payload using UPL
> 
>     Signed-off-by: Simon Glass <sjg@chromium.org>
> 
> diff --git a/configs/qemu-x86_64_defconfig b/configs/qemu-x86_64_defconfig
> index 2771a4b9e19..792ba06c2b8 100644
> --- a/configs/qemu-x86_64_defconfig
> +++ b/configs/qemu-x86_64_defconfig
> @@ -1,6 +1,7 @@
>  CONFIG_X86=y
>  CONFIG_TEXT_BASE=0x1110000
>  CONFIG_SYS_MALLOC_F_LEN=0x1000
> +CONFIG_BLOBLIST_SIZE_RELOC=0x20000
>  CONFIG_NR_DRAM_BANKS=8
>  CONFIG_ENV_SIZE=0x40000
>  CONFIG_MAX_CPUS=2
> @@ -33,6 +34,7 @@ CONFIG_LOGF_FUNC=y
>  CONFIG_SPL_LOG=y
>  CONFIG_DISPLAY_BOARDINFO_LATE=y
>  CONFIG_PCI_INIT_R=y
> +CONFIG_BLOBLIST=y
>  CONFIG_BLOBLIST_FIXED=y
>  CONFIG_BLOBLIST_ADDR=0x10000
>  CONFIG_SPL_NO_BSS_LIMIT=y
> diff --git a/configs/qemu-x86_defconfig b/configs/qemu-x86_defconfig
> index 947d15cd727..0b0e10c795f 100644
> --- a/configs/qemu-x86_defconfig
> +++ b/configs/qemu-x86_defconfig
> @@ -1,6 +1,7 @@
>  CONFIG_X86=y
>  CONFIG_TEXT_BASE=0xFFF00000
>  CONFIG_SYS_MALLOC_F_LEN=0x1000
> +CONFIG_BLOBLIST_SIZE_RELOC=0x20000
>  CONFIG_NR_DRAM_BANKS=8
>  CONFIG_ENV_SIZE=0x40000
>  CONFIG_MAX_CPUS=2
> @@ -23,6 +24,9 @@ CONFIG_LOG=y
>  CONFIG_LOGF_FUNC=y
>  CONFIG_DISPLAY_BOARDINFO_LATE=y
>  CONFIG_PCI_INIT_R=y
> +CONFIG_BLOBLIST=y
> +CONFIG_BLOBLIST_FIXED=y
> +CONFIG_BLOBLIST_ADDR=0x10000
>  CONFIG_CMD_CPU=y
>  CONFIG_CMD_BOOTEFI_SELFTEST=y
>  CONFIG_CMD_NVEDIT_EFI=y
> 
> Just setting CONFIG_BLOBLIST=n solves this problem for me.
> 
> I'm not sure how to debug this further, because v2025.01 doesn't build with
> the config from v2025.04-rc5:
> ld.bfd: arch/x86/lib/tables.o: in function `write_tables':
> /home/niklas/Build/u-boot/arch/x86/lib/tables.c:171: undefined reference to
> `acpi_write_rsdp'

I think for the v2025.04 release we should just put BLOBLIST=n (so long
as CI passes still), and file an issue to sort this out for the next
release. Can you please file something at
https://source.denx.de/u-boot/custodians/u-boot-dm/-/issues ? Thanks!

-- 
Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: SMBIOS tables missing on 2025.04-rc5 on qemu-x86
  2025-04-04 16:33 ` Tom Rini
@ 2025-04-05 20:46   ` Simon Glass
  0 siblings, 0 replies; 3+ messages in thread
From: Simon Glass @ 2025-04-05 20:46 UTC (permalink / raw)
  To: Tom Rini; +Cc: Niklas Sombert, u-boot

+Heinrich Schuchardt

Hi,

On Sat, 5 Apr 2025 at 05:33, Tom Rini <trini@konsulko.com> wrote:
>
> On Fri, Apr 04, 2025 at 03:10:29PM +0200, Niklas Sombert wrote:
>
> > Hi all,
> >
> > I've written a small EFI bootloader and I'm testing it on QEMU with OVMF and
> > with u-boot (with the qemu-x86_defconfig as -bios in QEMU).
> >
> > On upgrading from 2025.01 to 2025.04-rc5, I've noticed that the SMBIOS
> > tables that are passed via the SMBIOS EFI config table are completely blank
> > (just zeroes instead of starting with SM3).
> >
> > This is pretty easy to reproduce:
> >
> > git checkout v2025.01
> > make clean
> > git clean -xf
> > make qemu-x86_defconfig
> > # edit .config: CONFIG_CMD_SMBIOS=y
> > make -j4
> > qemu-system-i386 -bios u-boot.rom
> > # type "smbios" in the prompt and see information about the system
> >
> > versus:
> > git checkout v2025.04-rc5
> > make clean
> > git clean -xf
> > make qemu-x86_defconfig
> > # edit .config: CONFIG_CMD_SMBIOS=y
> > make -j4
> > qemu-system-i386 -bios u-boot.rom
> > # type "smbios" and get the following error:
> > # do_smbios() Unknown SMBIOS anchor format
> >
> > This is on QEMU version 6.2.0 (Debian 1:6.2+dfsg-2ubuntu6.25), the one
> > Ubuntu 22.04 currently ships, but I also get the same results on Ubuntu
> > 24.04.
> >
> > Bisecting leads me to the following commit:
> >
> > commit d5bc5c6cb0291203fe848a8532a7ecbcd44cfe9e
> > Author: Simon Glass <sjg@chromium.org>
> > Date:   Fri Jan 10 17:00:26 2025 -0700
> >
> >     x86: emulation: Enable bloblist
> >
> >     Add bloblist support so that tables can be generated and placed in a
> >     bloblist, then passed to a payload using UPL
> >
> >     Signed-off-by: Simon Glass <sjg@chromium.org>
> >
> > diff --git a/configs/qemu-x86_64_defconfig b/configs/qemu-x86_64_defconfig
> > index 2771a4b9e19..792ba06c2b8 100644
> > --- a/configs/qemu-x86_64_defconfig
> > +++ b/configs/qemu-x86_64_defconfig
> > @@ -1,6 +1,7 @@
> >  CONFIG_X86=y
> >  CONFIG_TEXT_BASE=0x1110000
> >  CONFIG_SYS_MALLOC_F_LEN=0x1000
> > +CONFIG_BLOBLIST_SIZE_RELOC=0x20000
> >  CONFIG_NR_DRAM_BANKS=8
> >  CONFIG_ENV_SIZE=0x40000
> >  CONFIG_MAX_CPUS=2
> > @@ -33,6 +34,7 @@ CONFIG_LOGF_FUNC=y
> >  CONFIG_SPL_LOG=y
> >  CONFIG_DISPLAY_BOARDINFO_LATE=y
> >  CONFIG_PCI_INIT_R=y
> > +CONFIG_BLOBLIST=y
> >  CONFIG_BLOBLIST_FIXED=y
> >  CONFIG_BLOBLIST_ADDR=0x10000
> >  CONFIG_SPL_NO_BSS_LIMIT=y
> > diff --git a/configs/qemu-x86_defconfig b/configs/qemu-x86_defconfig
> > index 947d15cd727..0b0e10c795f 100644
> > --- a/configs/qemu-x86_defconfig
> > +++ b/configs/qemu-x86_defconfig
> > @@ -1,6 +1,7 @@
> >  CONFIG_X86=y
> >  CONFIG_TEXT_BASE=0xFFF00000
> >  CONFIG_SYS_MALLOC_F_LEN=0x1000
> > +CONFIG_BLOBLIST_SIZE_RELOC=0x20000
> >  CONFIG_NR_DRAM_BANKS=8
> >  CONFIG_ENV_SIZE=0x40000
> >  CONFIG_MAX_CPUS=2
> > @@ -23,6 +24,9 @@ CONFIG_LOG=y
> >  CONFIG_LOGF_FUNC=y
> >  CONFIG_DISPLAY_BOARDINFO_LATE=y
> >  CONFIG_PCI_INIT_R=y
> > +CONFIG_BLOBLIST=y
> > +CONFIG_BLOBLIST_FIXED=y
> > +CONFIG_BLOBLIST_ADDR=0x10000
> >  CONFIG_CMD_CPU=y
> >  CONFIG_CMD_BOOTEFI_SELFTEST=y
> >  CONFIG_CMD_NVEDIT_EFI=y
> >
> > Just setting CONFIG_BLOBLIST=n solves this problem for me.
> >
> > I'm not sure how to debug this further, because v2025.01 doesn't build with
> > the config from v2025.04-rc5:
> > ld.bfd: arch/x86/lib/tables.o: in function `write_tables':
> > /home/niklas/Build/u-boot/arch/x86/lib/tables.c:171: undefined reference to
> > `acpi_write_rsdp'
>
> I think for the v2025.04 release we should just put BLOBLIST=n (so long
> as CI passes still), and file an issue to sort this out for the next
> release. Can you please file something at
> https://source.denx.de/u-boot/custodians/u-boot-dm/-/issues ? Thanks!

Heinrich wrote an smbios test[1] so I wonder why it is not catching
this problem?

(looks)

CMD_SMBIOS is not enable for qemu-x86. When enabled, I see:

=> smbios
          do_smbios() Unknown SMBIOS anchor format

The test should really be written in C, not Python, though.

The root cause is my patch which switches to using bloblist, as the
EFI code still uses the SMBIOS address in global_data, which is now
not set.

I'll send a patch to fix this. As I mentioned to Heinrich in another
email, at some point we should drop these table points and always use
bloblist.

Regards,
Simon

[1] test/py/tests/test_smbios.py

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2025-04-05 20:46 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-04 13:10 SMBIOS tables missing on 2025.04-rc5 on qemu-x86 Niklas Sombert
2025-04-04 16:33 ` Tom Rini
2025-04-05 20:46   ` Simon Glass

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox