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 formatThis 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
OpenPGP_signature.asc
Description: OpenPGP digital signature