[PATCH] efi_selftest: use do_bootefi_exec()

Heinrich Schuchardt heinrich.schuchardt at canonical.com
Fri Apr 11 07:36:45 CEST 2025


The EFI selftest should match executing a real EFI binary
as closely as possible.

Use do_bootefi_exec() to enter the EFI selftest.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
---
 cmd/bootefi.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/cmd/bootefi.c b/cmd/bootefi.c
index c1454ffb948..13479248999 100644
--- a/cmd/bootefi.c
+++ b/cmd/bootefi.c
@@ -38,6 +38,9 @@ static efi_status_t bootefi_run_prepare(const char *load_options_path,
 	if (ret != EFI_SUCCESS)
 		return ret;
 
+	(*image_objp)->auth_status = EFI_IMAGE_AUTH_PASSED;
+	(*image_objp)->entry = efi_selftest;
+
 	/* Transfer environment variable as load options */
 	return efi_env_set_load_options((efi_handle_t)*image_objp,
 					load_options_path,
@@ -106,8 +109,8 @@ static int do_efi_selftest(void)
 		return CMD_RET_FAILURE;
 
 	/* Execute the test */
-	ret = EFI_CALL(efi_selftest(&image_obj->header, &systab));
-	free(loaded_image_info->load_options);
+	ret = do_bootefi_exec(&image_obj->header,
+			      loaded_image_info->load_options);
 	efi_free_pool(test_device_path);
 	efi_free_pool(test_image_path);
 	if (ret != EFI_SUCCESS)
-- 
2.48.1



More information about the U-Boot mailing list