common/armflash: add command to check if image exists

Add a command to the ARM flash support to check if an image exists or
not.

If the image is found, it will return CMD_RET_SUCCESS, else
CMD_RET_FAILURE.  This allows hush scripts to conditionally load images.

A simple example:

if afs exists ${kernel_name}; then echo found; else echo \
not found; fi

Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
master
Ryan Harkin 9 years ago committed by Tom Rini
parent 74e264b49f
commit 1a9717fb30
  1. 22
      common/cmd_armflash.c

@ -251,10 +251,28 @@ static void print_images(void)
}
}
static int exists(const char * const name)
{
int i;
parse_flash();
for (i = 0; i < num_afs_images; i++) {
struct afs_image *afi = &afs_images[i];
if (strcmp(afi->name, name) == 0)
return CMD_RET_SUCCESS;
}
return CMD_RET_FAILURE;
}
static int do_afs(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
int ret = CMD_RET_SUCCESS;
if (argc == 1) {
print_images();
} else if (argc == 3 && !strcmp(argv[1], "exists")) {
ret = exists(argv[2]);
} else if (argc == 3 && !strcmp(argv[1], "load")) {
load_image(argv[2], 0x0);
} else if (argc == 4 && !strcmp(argv[1], "load")) {
@ -266,12 +284,14 @@ static int do_afs(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
return CMD_RET_USAGE;
}
return 0;
return ret;
}
U_BOOT_CMD(afs, 4, 0, do_afs, "show AFS partitions",
"no arguments\n"
" - list images in flash\n"
"exists <image>\n"
" - returns 1 if an image exists, else 0\n"
"load <image>\n"
" - load an image to the location indicated in the header\n"
"load <image> 0x<address>\n"

Loading…
Cancel
Save