summaryrefslogtreecommitdiff
path: root/include/efi_loader.h
diff options
context:
space:
mode:
authorTom Rini <[email protected]>2025-01-26 08:10:28 -0600
committerTom Rini <[email protected]>2025-01-26 08:10:28 -0600
commit8a2a71a4eec7afdca6377ee46b1ed7e78ec692c9 (patch)
tree460b9a426fc254b7fd9f4048dabccfb54822ba02 /include/efi_loader.h
parent292278d6828e6c8c6ae11bc8658586d1acc411d4 (diff)
parent21de624eb89c647a21b06a5b0f5b186838be1d17 (diff)
Merge tag 'efi-2025-04-rc1-2' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request efi-2025-04-rc1-2 Documentation: * describe creating a pflash file for qemu-system-riscv64 UEFI: * correct logging StartImage() * use LOGC_EFI consistently * reduce UEFI size if HAS_BOARD_SIZE_LIMIT=y * Update efi_run_image() to accept image and device path * Add a version of efi_binary_run() with more parameters * Move the fallback code from efi_run_image() * Pass in the required parameters from EFI bootmeth * bootmeth_efi: Support PXE booting Other: * Enable log filtering by function name
Diffstat (limited to 'include/efi_loader.h')
-rw-r--r--include/efi_loader.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/include/efi_loader.h b/include/efi_loader.h
index 0d858c1e12e..dcae6a731a0 100644
--- a/include/efi_loader.h
+++ b/include/efi_loader.h
@@ -20,6 +20,7 @@
#include <linux/oid_registry.h>
struct blk_desc;
+struct bootflow;
struct jmp_buf_data;
#if CONFIG_IS_ENABLED(EFI_LOADER)
@@ -245,6 +246,18 @@ const char *__efi_nesting_dec(void);
_r; \
})
+/**
+ * define EFI_RETURN() - return from EFI_CALL in efi_start_image()
+ *
+ * @ret: status code
+ */
+#define EFI_RETURN(ret) ({ \
+ typeof(ret) _r = ret; \
+ assert(__efi_entry_check()); \
+ debug("%sEFI: %lu returned by started image", __efi_nesting_dec(), \
+ (unsigned long)((uintptr_t)_r & ~EFI_ERROR_MASK)); \
+})
+
/*
* Call void UEFI function from u-boot:
*/
@@ -578,6 +591,15 @@ efi_status_t efi_install_fdt(void *fdt);
efi_status_t do_bootefi_exec(efi_handle_t handle, void *load_options);
/* Run loaded UEFI image with given fdt */
efi_status_t efi_binary_run(void *image, size_t size, void *fdt);
+
+/**
+ * efi_bootflow_run() - Run a bootflow containing an EFI application
+ *
+ * @bootflow: Bootflow to run
+ * Return: Status code, something went wrong
+ */
+efi_status_t efi_bootflow_run(struct bootflow *bootflow);
+
/* Initialize variable services */
efi_status_t efi_init_variables(void);
/* Notify ExitBootServices() is called */