mirror of
https://xff.cz/git/u-boot/
synced 2025-09-02 01:02:19 +02:00
cmd: bootefi: move do_bootefi_bootmgr_exec() forward
This is a preparatory patch for reworking do_bootefi() in later patch. Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org> Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
This commit is contained in:
committed by
Heinrich Schuchardt
parent
3fc2b16335
commit
cc999d58e3
@@ -329,6 +329,27 @@ err_add_protocol:
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int do_bootefi_bootmgr_exec(void)
|
||||||
|
{
|
||||||
|
struct efi_device_path *device_path, *file_path;
|
||||||
|
void *addr;
|
||||||
|
efi_status_t r;
|
||||||
|
|
||||||
|
addr = efi_bootmgr_load(&device_path, &file_path);
|
||||||
|
if (!addr)
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
printf("## Starting EFI application at %p ...\n", addr);
|
||||||
|
r = do_bootefi_exec(addr, device_path, file_path);
|
||||||
|
printf("## Application terminated, r = %lu\n",
|
||||||
|
r & ~EFI_ERROR_MASK);
|
||||||
|
|
||||||
|
if (r != EFI_SUCCESS)
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_CMD_BOOTEFI_SELFTEST
|
#ifdef CONFIG_CMD_BOOTEFI_SELFTEST
|
||||||
static efi_status_t bootefi_run_prepare(const char *load_options_path,
|
static efi_status_t bootefi_run_prepare(const char *load_options_path,
|
||||||
struct efi_device_path *device_path,
|
struct efi_device_path *device_path,
|
||||||
@@ -452,27 +473,6 @@ static int do_efi_selftest(const char *fdt_opt)
|
|||||||
}
|
}
|
||||||
#endif /* CONFIG_CMD_BOOTEFI_SELFTEST */
|
#endif /* CONFIG_CMD_BOOTEFI_SELFTEST */
|
||||||
|
|
||||||
static int do_bootefi_bootmgr_exec(void)
|
|
||||||
{
|
|
||||||
struct efi_device_path *device_path, *file_path;
|
|
||||||
void *addr;
|
|
||||||
efi_status_t r;
|
|
||||||
|
|
||||||
addr = efi_bootmgr_load(&device_path, &file_path);
|
|
||||||
if (!addr)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
printf("## Starting EFI application at %p ...\n", addr);
|
|
||||||
r = do_bootefi_exec(addr, device_path, file_path);
|
|
||||||
printf("## Application terminated, r = %lu\n",
|
|
||||||
r & ~EFI_ERROR_MASK);
|
|
||||||
|
|
||||||
if (r != EFI_SUCCESS)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Interpreter command to boot an arbitrary EFI image from memory */
|
/* Interpreter command to boot an arbitrary EFI image from memory */
|
||||||
static int do_bootefi(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
static int do_bootefi(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user