From: Ryan Harkin <ryan.harkin@linaro.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v4 06/10] common/armflash: add command to check if image exists
Date: Fri, 9 Oct 2015 17:18:04 +0100 [thread overview]
Message-ID: <1444407488-32646-7-git-send-email-ryan.harkin@linaro.org> (raw)
In-Reply-To: <1444407488-32646-1-git-send-email-ryan.harkin@linaro.org>
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>
---
common/cmd_armflash.c | 22 +++++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)
diff --git a/common/cmd_armflash.c b/common/cmd_armflash.c
index 1db92b0..a37f5c4 100644
--- a/common/cmd_armflash.c
+++ b/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"
--
2.1.0
next prev parent reply other threads:[~2015-10-09 16:18 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-09 16:17 [U-Boot] [PATCH v4 00/10] vexpress64 FVP and Juno configuration updates Ryan Harkin
2015-10-09 16:17 ` [U-Boot] [PATCH v4 01/10] vexpress64: fix checkpatch warnings Ryan Harkin
2015-10-12 15:16 ` [U-Boot] [U-Boot,v4,01/10] " Tom Rini
2015-10-09 16:18 ` [U-Boot] [PATCH v4 02/10] vexpress64: Kconfig: tidy up Ryan Harkin
2015-10-12 15:17 ` [U-Boot] [U-Boot,v4,02/10] " Tom Rini
2015-10-12 16:47 ` Ryan Harkin
2015-10-12 17:56 ` Tom Rini
2015-10-09 16:18 ` [U-Boot] [PATCH v4 03/10] vexpress64: increase max gunzip size Ryan Harkin
2015-10-12 15:17 ` [U-Boot] [U-Boot, v4, " Tom Rini
2015-10-09 16:18 ` [U-Boot] [PATCH v4 04/10] vexpress64: fvp dram: add DRAM configuration Ryan Harkin
2015-10-12 15:17 ` [U-Boot] [U-Boot, v4, " Tom Rini
2015-10-09 16:18 ` [U-Boot] [PATCH v4 05/10] vexpress64: juno: add androidboot.hardware=juno Ryan Harkin
2015-10-12 15:17 ` [U-Boot] [U-Boot, v4, " Tom Rini
2015-10-09 16:18 ` Ryan Harkin [this message]
2015-10-12 15:17 ` [U-Boot] [U-Boot, v4, 06/10] common/armflash: add command to check if image exists Tom Rini
2015-10-09 16:18 ` [U-Boot] [PATCH v4 07/10] common/armflash: load_image returns success or failure Ryan Harkin
2015-10-12 15:17 ` [U-Boot] [U-Boot, v4, " Tom Rini
2015-10-09 16:18 ` [U-Boot] [PATCH v4 08/10] vexpress64: juno: add optional initrd Ryan Harkin
2015-10-12 15:18 ` [U-Boot] [U-Boot, v4, " Tom Rini
2015-10-09 16:18 ` [U-Boot] [PATCH v4 09/10] vexpress64: juno: add alternate kernel and device tree filenames Ryan Harkin
2015-10-12 15:18 ` [U-Boot] [U-Boot, v4, " Tom Rini
2015-10-09 16:18 ` [U-Boot] [PATCH v4 10/10] vexpress64: juno: use /dev/sda2 Ryan Harkin
2015-10-12 15:18 ` [U-Boot] [U-Boot,v4,10/10] " Tom Rini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1444407488-32646-7-git-send-email-ryan.harkin@linaro.org \
--to=ryan.harkin@linaro.org \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox