[U-Boot] [PATCH 5/5] NAND: Add scrub.quiet command option

Marek Vasut
2011-09-08T20:39:40Z

This allows the scrub command to scrub without asking the user if he really
wants to scrub the area. Useful in scripts.

Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
Cc: Scott Wood <scottwood@freescale.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Wolfgang Denk <wd@denx.de>
Cc: Detlev Zundel <dzu@denx.de>
---
common/cmd_nand.c | 14 +++++++++++++-
1 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/common/cmd_nand.c b/common/cmd_nand.c
index 5b7e83d..45179e9 100644
--- a/common/cmd_nand.c
+++ b/common/cmd_nand.c
@@ -502,11 +502,19 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
int clean = argc > 2 && !strcmp("clean", argv[2]);
int o = clean ? 3 : 2;
int scrub = !strncmp(cmd, "scrub", 5);
+ int scrub_quiet = !strncmp(cmd, "scrub.quiet", 11);
int part = 0;
int chip = 0;
int spread = 0;
int args = 2;

+ /*
+ * Quiet scrub is a special option only for the scrub command,
+ * ignore it in the following construction.
+ */
+ if (scrub_quiet)
+ cmd[5] = 0;
+
if (cmd[5] != 0) {
if (!strcmp(&cmd[5], ".spread")) {
spread = 1;
@@ -543,7 +551,7 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
opts.quiet = quiet;
opts.spread = spread;

- if (scrub) {
+ if (scrub && !scrub_quiet) {
puts("Warning: "
"scrub option will erase all factory set "
"bad blocks!\n"
@@ -569,6 +577,10 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
return -1;
}
}
+
+ if (scrub_quiet)
+ opts.scrub = 1;
+
ret = nand_erase_opts(nand, &opts);
printf("%s\n", ret ? "ERROR" : "OK");

--
1.7.5.4