aboutsummaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorHeinrich Schuchardt2022-05-19 08:00:56 +0200
committerHeinrich Schuchardt2022-05-28 10:59:27 +0200
commit8131c85a77f9d06f28ccbf121545023ef78d8e86 (patch)
tree132c687708abe3578e64eca3fa2bcf8c0a8f7b7c /cmd
parentb96de9cb0c27a736bd605b6ac063f23b12c0d134 (diff)
cmd/bootefi: correct command syntax
For indicating the address and size of a memory region other commands use a <addr>[:<size>] syntax. Do the same for bootefi. Fixes: 2058983689f0 ("cmd: bootefi: restore ability to boot arbitrary blob") Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Diffstat (limited to 'cmd')
-rw-r--r--cmd/bootefi.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/cmd/bootefi.c b/cmd/bootefi.c
index d80353fa718..827fcd97dfd 100644
--- a/cmd/bootefi.c
+++ b/cmd/bootefi.c
@@ -649,6 +649,7 @@ static int do_bootefi(struct cmd_tbl *cmdtp, int flag, int argc,
char *const argv[])
{
efi_status_t ret;
+ char *img_addr, *img_size, *str_copy, *pos;
void *fdt;
if (argc < 2)
@@ -662,7 +663,7 @@ static int do_bootefi(struct cmd_tbl *cmdtp, int flag, int argc,
return CMD_RET_FAILURE;
}
- if (argc > 2 && strcmp(argv[2], "-")) {
+ if (argc > 2) {
uintptr_t fdt_addr;
fdt_addr = hextoul(argv[2], NULL);
@@ -684,16 +685,24 @@ static int do_bootefi(struct cmd_tbl *cmdtp, int flag, int argc,
if (!strcmp(argv[1], "selftest"))
return do_efi_selftest();
#endif
+ str_copy = strdup(argv[1]);
+ if (!str_copy) {
+ log_err("Out of memory\n");
+ return CMD_RET_FAILURE;
+ }
+ pos = str_copy;
+ img_addr = strsep(&pos, ":");
+ img_size = strsep(&pos, ":");
+ ret = do_bootefi_image(img_addr, img_size);
+ free(str_copy);
- return do_bootefi_image(argv[1], argc > 3 ? argv[3] : NULL);
+ return ret;
}
#ifdef CONFIG_SYS_LONGHELP
static char bootefi_help_text[] =
- "<image address> [fdt address [image size]]\n"
- " - boot EFI payload stored at <image address>\n"
- " fdt address, address of device-tree or '-'\n"
- " image size, required if image not preloaded\n"
+ "<image address>[:<image size>] [<fdt address>]\n"
+ " - boot EFI payload\n"
#ifdef CONFIG_CMD_BOOTEFI_HELLO
"bootefi hello\n"
" - boot a sample Hello World application stored within U-Boot\n"