efi_loader: split unrelated code from efi_bootmgr.c
Some code moved from cmd/bootefi.c is actually necessary only for "bootefi <addr>" command (starting an image manually loaded by a user using U-Boot load commands or other methods (like JTAG debugger). The code will never been opted out as unused code by a compiler which doesn't know how EFI boot manager is implemented. So introduce a new configuration, CONFIG_EFI_BINARY_EXEC, to enforce them opted out explicitly. Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
This commit is contained in:

committed by
Heinrich Schuchardt

parent
0ab829d4de
commit
6422820ac3
@@ -90,11 +90,7 @@ efi_status_t efi_add_runtime_mmio(void *mmio_ptr, u64 len);
|
||||
* back to u-boot world
|
||||
*/
|
||||
void efi_restore_gd(void);
|
||||
/* Call this to unset the current device name */
|
||||
void efi_clear_bootdev(void);
|
||||
/* Call this to set the current device name */
|
||||
void efi_set_bootdev(const char *dev, const char *devnr, const char *path,
|
||||
void *buffer, size_t buffer_size);
|
||||
|
||||
/* Called by networking code to memorize the dhcp ack package */
|
||||
void efi_net_set_dhcp_ack(void *pkt, int len);
|
||||
/* Print information about all loaded images */
|
||||
@@ -116,10 +112,6 @@ static inline efi_status_t efi_add_runtime_mmio(void *mmio_ptr, u64 len)
|
||||
|
||||
/* No loader configured, stub out EFI_ENTRY */
|
||||
static inline void efi_restore_gd(void) { }
|
||||
static inline void efi_clear_bootdev(void) { }
|
||||
static inline void efi_set_bootdev(const char *dev, const char *devnr,
|
||||
const char *path, void *buffer,
|
||||
size_t buffer_size) { }
|
||||
static inline void efi_net_set_dhcp_ack(void *pkt, int len) { }
|
||||
static inline void efi_print_image_infos(void *pc) { }
|
||||
static inline efi_status_t efi_launch_capsules(void)
|
||||
@@ -129,6 +121,20 @@ static inline efi_status_t efi_launch_capsules(void)
|
||||
|
||||
#endif /* CONFIG_IS_ENABLED(EFI_LOADER) */
|
||||
|
||||
#if CONFIG_IS_ENABLED(EFI_BINARY_EXEC)
|
||||
/* Call this to unset the current device name */
|
||||
void efi_clear_bootdev(void);
|
||||
/* Call this to set the current device name */
|
||||
void efi_set_bootdev(const char *dev, const char *devnr, const char *path,
|
||||
void *buffer, size_t buffer_size);
|
||||
#else
|
||||
static inline void efi_clear_bootdev(void) { }
|
||||
|
||||
static inline void efi_set_bootdev(const char *dev, const char *devnr,
|
||||
const char *path, void *buffer,
|
||||
size_t buffer_size) { }
|
||||
#endif
|
||||
|
||||
/* Maximum number of configuration tables */
|
||||
#define EFI_MAX_CONFIGURATION_TABLES 16
|
||||
|
||||
@@ -541,8 +547,8 @@ efi_status_t efi_env_set_load_options(efi_handle_t handle, const char *env_var,
|
||||
u16 **load_options);
|
||||
/* Install device tree */
|
||||
efi_status_t efi_install_fdt(void *fdt);
|
||||
/* Run loaded UEFI image */
|
||||
efi_status_t efi_run_image(void *source_buffer, efi_uintn_t source_size);
|
||||
/* Execute loaded UEFI image */
|
||||
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);
|
||||
/* Initialize variable services */
|
||||
|
Reference in New Issue
Block a user