+Heinrich Schuchardt Hi,
On Sat, 5 Apr 2025 at 05:33, Tom Rini <tr...@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 <s...@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 <s...@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