x86: efi_loader: Ensure the SMBIOS tables are sent via EFI
authorSimon Glass <sjg@chromium.org>
Fri, 23 May 2025 16:55:04 +0000 (17:55 +0100)
committerHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Sun, 25 May 2025 09:40:00 +0000 (11:40 +0200)
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 <sjg@chromium.org>
Fixes: 83ce35d6ebb ("emulation: Use bloblist to hold tables")
Reported-by: Niklas Sombert <niklas.sombert@uni-duesseldorf.de>
Tested-by: Niklas Sombert <niklas.sombert@uni-duesseldorf.de>
Tested-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
arch/x86/lib/tables.c
board/emulation/qemu-x86/Kconfig

index ec52992..d7f183f 100644 (file)
@@ -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) {
index b2a4e08..c1564fb 100644 (file)
@@ -23,5 +23,6 @@ config BOARD_SPECIFIC_OPTIONS # dummy
        imply VIRTIO_PCI
        imply VIRTIO_NET
        imply VIRTIO_BLK
+       imply CMD_SMBIOS
 
 endif