Hi Simon, this solves my problem, thanks!
Since SMBIOS is broken again in v2025.07-rc1 (and disabling bloblist doesn't work anymore), I applied this patch and it worked.
I probably should have tried this sooner. Greetings, Niklas Simon Glass wrote:
The EFI-loader code has not been fully converted to use bloblist, so relies on the SMBIOS-table address being set in global_data. Set this up in write_tables() so that the SMBIOS tables are actually available. Enable the command for x86 QEMU so that the SMBIOS tests actually run. Signed-off-by: Simon Glass <s...@chromium.org> Fixes: 83ce35d6ebb ("emulation: Use bloblist to hold tables") Reported-by: Niklas Sombert <niklas.somb...@uni-duesseldorf.de> --- arch/x86/lib/tables.c | 2 ++ board/emulation/qemu-x86/Kconfig | 1 + lib/efi_loader/efi_smbios.c | 1 + 3 files changed, 4 insertions(+) diff --git a/arch/x86/lib/tables.c b/arch/x86/lib/tables.c index ec52992209f..d7f183f95dc 100644 --- a/arch/x86/lib/tables.c +++ b/arch/x86/lib/tables.c @@ -126,6 +126,8 @@ int write_tables(void) use_high = true; if (!gd->arch.table_start_high) gd->arch.table_start_high = rom_addr; + if (table->tag == BLOBLISTT_SMBIOS_TABLES) + gd_set_smbios_start(rom_addr); } rom_table_end = table->write(rom_addr); if (!rom_table_end) { diff --git a/board/emulation/qemu-x86/Kconfig b/board/emulation/qemu-x86/Kconfig index b2a4e0891a4..c1564fba7cd 100644 --- a/board/emulation/qemu-x86/Kconfig +++ b/board/emulation/qemu-x86/Kconfig @@ -23,5 +23,6 @@ config BOARD_SPECIFIC_OPTIONS # dummy imply VIRTIO_PCI imply VIRTIO_NET imply VIRTIO_BLK + imply CMD_SMBIOSendifdiff --git a/lib/efi_loader/efi_smbios.c b/lib/efi_loader/efi_smbios.c index 8d2ef6deb51..5275e966dfe 100644 --- a/lib/efi_loader/efi_smbios.c +++ b/lib/efi_loader/efi_smbios.c @@ -35,6 +35,7 @@ efi_status_t efi_smbios_register(void) void *buf;addr = gd_smbios_start();+ printf("register %lx\n", addr); if (!addr) { log_err("No SMBIOS tables to install\n"); return EFI_NOT_FOUND;
OpenPGP_signature.asc
Description: OpenPGP digital signature