U-Boot Archive on lore.kernel.org
 help / color / mirror / Atom feed
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

  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