SMBIOS tables missing on 2025.04-rc5 on qemu-x86
Niklas Sombert
niklas.sombert at uni-duesseldorf.de
Fri Apr 4 15:10:29 CEST 2025
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 at 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 at 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20250404/f1227e14/attachment.sig>
More information about the U-Boot
mailing list