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'


Greetings,
Niklas

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to