diff options
author | Simon Glass <sjg@chromium.org> | 2021-11-03 21:09:09 -0600 |
---|---|---|
committer | Heinrich Schuchardt <xypron.glpk@gmx.de> | 2021-11-07 18:36:55 +0100 |
commit | f84457376264913537392a90d7022631af1639b7 (patch) | |
tree | 6a6c8c1a62613ac10ddaf56646750b287c1fa847 | |
parent | 9c297a3dab2dc830a6abe54039d57612a0ac6918 (diff) | |
download | u-boot-f84457376264913537392a90d7022631af1639b7.zip u-boot-f84457376264913537392a90d7022631af1639b7.tar.gz u-boot-f84457376264913537392a90d7022631af1639b7.tar.bz2 |
efi: Add a way to obtain boot services in the app
Add a function to return this information along with a stub for the
efi_info_get() function, since calling it otherwise hangs U-Boot.
Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
-rw-r--r-- | include/efi.h | 8 | ||||
-rw-r--r-- | lib/efi/efi_app.c | 10 |
2 files changed, 17 insertions, 1 deletions
diff --git a/include/efi.h b/include/efi.h index 18c13e0..b583542 100644 --- a/include/efi.h +++ b/include/efi.h @@ -444,10 +444,16 @@ extern char _binary_u_boot_bin_start[], _binary_u_boot_bin_end[]; * * @return pointer to EFI system table */ - struct efi_system_table *efi_get_sys_table(void); /** + * efi_get_boot() - Get access to the EFI boot services table + * + * @return pointer to EFI boot services table + */ +struct efi_boot_services *efi_get_boot(void); + +/** * efi_get_ram_base() - Find the base of RAM * * This is used when U-Boot is built as an EFI application. diff --git a/lib/efi/efi_app.c b/lib/efi/efi_app.c index 907bacd..f616656 100644 --- a/lib/efi/efi_app.c +++ b/lib/efi/efi_app.c @@ -31,11 +31,21 @@ struct efi_system_table *efi_get_sys_table(void) return global_priv->sys_table; } +struct efi_boot_services *efi_get_boot(void) +{ + return global_priv->boot; +} + unsigned long efi_get_ram_base(void) { return global_priv->ram_base; } +int efi_info_get(enum efi_entry_t type, void **datap, int *sizep) +{ + return -ENOSYS; +} + static efi_status_t setup_memory(struct efi_priv *priv) { struct efi_boot_services *boot = priv->boot; |