[PATCH v3 00/11] efi_loader: fix ACPI table installation
Heinrich Schuchardt
heinrich.schuchardt at canonical.com
Sun Jun 28 10:27:58 CEST 2026
On the sandbox efi_acpi_register() used sandbox virtual addressed instead
of pointers required by the invoked API function. This lead to EFI
applications crashing when trying to access the tables.
The first patch corrects the API invocation.
The second patch provides a unit test to ensure we don't do this wrong
again.
The third patch fixes starts_with() in smbiosdump returning NULL instead of
false though the return value is declared as boolean.
The fourth patch fixes an incorrect condition for freeing a buffer in
dtbdump.c and smbiosdump.c.
The next for five patches factor out common code of the EFI apps
dbginfodump, dtbdump, initrddump, and smbiosdump.
The tenth patch corrects the checksum in the RSDP table.
The last patch provides an EFI app to dump ACPI tables.
Changes in v3:
4/11
rephrase the subject line and the commit message
5/11
mention bs, handle, systable are deduplicated in a later patch
mention printx() signature change
6/11
actually add drain_input() to dbginfodump
8/11
use sizeof(efi_guid_t) when calling memcmp() for GUID
correct type of ret in save_file()
document the partition search logic of open_file_system and save_file
9/11
move external variable to efi_app_common.h
remove printx comment (which is in 05/11 now)
safely handle command with length 0 in command_loop()
smbiosdump: don't remove check in do_save()
dbginfodump: remove stray blank line
dbginfodump: keep writing error if Device Path To Text protocol not found
intirddump: use efi_status_t for status code
11/11
extend the commit message
reformat with clang-format
roll in u32_to_utf16_dec()
in add_tables() check against max_tables
Heinrich Schuchardt (11):
efi_loader: use pointers in efi_acpi_register()
efi_selftest: add ACPI configuration table test
efi_loader: smbiosdump: fix starts_with() returning NULL
efi_loader: fix void* check in open_file_system()
efi_loader: add efi_app_common skeleton
efi_loader: move console-input helpers to efi_app_common
efi_loader: move string helpers to efi_app_common
efi_loader: move file-system helpers to efi_app_common
efi_loader: move efi_main and command loop to efi_app_common
qfw: fix RSDP ext_checksum recomputation
efi_loader: add ACPI table dump EFI app
drivers/misc/qfw_acpi.c | 1 +
lib/efi_loader/Makefile | 14 +-
lib/efi_loader/acpidump.c | 566 +++++++++++++++++++++++++++
lib/efi_loader/dbginfodump.c | 234 +----------
lib/efi_loader/dtbdump.c | 482 ++---------------------
lib/efi_loader/efi_acpi.c | 35 +-
lib/efi_loader/efi_app_common.c | 413 +++++++++++++++++++
lib/efi_loader/efi_app_common.h | 156 ++++++++
lib/efi_loader/initrddump.c | 410 +------------------
lib/efi_loader/smbiosdump.c | 442 ++-------------------
lib/efi_selftest/Makefile | 1 +
lib/efi_selftest/efi_selftest_acpi.c | 138 +++++++
13 files changed, 1408 insertions(+), 1489 deletions(-)
create mode 100644 lib/efi_loader/acpidump.c
create mode 100644 lib/efi_loader/efi_app_common.c
create mode 100644 lib/efi_loader/efi_app_common.h
create mode 100644 lib/efi_selftest/efi_selftest_acpi.c
--
2.53.0
More information about the U-Boot
mailing list