summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Hauer <sha@octopus.labnet.pengutronix.de>2007-09-11 10:17:49 +0200
committerSascha Hauer <sha@octopus.labnet.pengutronix.de>2007-09-11 10:17:49 +0200
commit58f1051598a53728b26eb69ac001b3ec1072cf6b (patch)
tree48fcaafa660cfcbdaf2565e023cc6c59b99182ee
parent59432c41ced73b3e2314ebd1bd21cfcbf662cd60 (diff)
downloadbarebox-58f1051598a53728b26eb69ac001b3ec1072cf6b.tar.gz
barebox-58f1051598a53728b26eb69ac001b3ec1072cf6b.tar.xz
Do not use -f <file> to specify the device for erase and protect, but
instead se positional parameters.
-rw-r--r--commands/flash.c50
1 files changed, 27 insertions, 23 deletions
diff --git a/commands/flash.c b/commands/flash.c
index 68b85495aa..8df796b228 100644
--- a/commands/flash.c
+++ b/commands/flash.c
@@ -35,21 +35,18 @@
int do_flerase (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
{
- int opt, fd;
+ int fd;
char *filename = NULL;
struct stat s;
unsigned long start = 0, size = ~0;
- getopt_reset();
-
- while((opt = getopt(argc, argv, "f:")) > 0) {
- switch(opt) {
- case 'f':
- filename = optarg;
- break;
- }
+ if (argc == 1) {
+ u_boot_cmd_usage(cmdtp);
+ return 1;
}
+ filename = argv[1];
+
if (stat(filename, &s)) {
printf("stat %s: %s\n", filename, errno_str());
return 1;
@@ -68,7 +65,7 @@ int do_flerase (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
return 1;
}
- if (optind < argc)
+ if (argc == 2)
parse_area_spec(argv[optind], &start, &size);
if(erase(fd, size, start)) {
@@ -81,31 +78,33 @@ int do_flerase (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
return 0;
}
+static __maybe_unused char cmd_erase_help[] =
+"Usage: Erase <device> [area]\n"
+"Erase a flash device or parts of a device if an area specification\n"
+"is given\n";
+
U_BOOT_CMD_START(erase)
.maxargs = CONFIG_MAXARGS,
.cmd = do_flerase,
.usage = "erase FLASH memory",
- U_BOOT_CMD_HELP("write me\n")
+ U_BOOT_CMD_HELP(cmd_erase_help)
U_BOOT_CMD_END
int do_protect (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
{
- int opt, fd;
+ int fd;
char *filename = NULL;
struct stat s;
int prot = 1;
unsigned long start = 0, size = ~0;
- getopt_reset();
-
- while((opt = getopt(argc, argv, "f:")) > 0) {
- switch(opt) {
- case 'f':
- filename = optarg;
- break;
- }
+ if (argc == 1) {
+ u_boot_cmd_usage(cmdtp);
+ return 1;
}
+ filename = argv[1];
+
if (*argv[0] == 'u')
prot = 0;
@@ -127,7 +126,7 @@ int do_protect (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
return 1;
}
- if (optind < argc)
+ if (argc == 3)
parse_area_spec(argv[optind], &start, &size);
if(protect(fd, size, start, prot)) {
@@ -140,17 +139,22 @@ int do_protect (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
return 0;
}
+static __maybe_unused char cmd_protect_help[] =
+"Usage: (un)protect <device> [area]\n"
+"(un)protect a flash device or parts of a device if an area specification\n"
+"is given\n";
+
U_BOOT_CMD_START(protect)
.maxargs = 4,
.cmd = do_protect,
.usage = "enable FLASH write protection",
- U_BOOT_CMD_HELP("write me\n")
+ U_BOOT_CMD_HELP(cmd_protect_help)
U_BOOT_CMD_END
U_BOOT_CMD_START(unprotect)
.maxargs = 4,
.cmd = do_protect,
.usage = "disable FLASH write protection",
- U_BOOT_CMD_HELP("write me\n")
+ U_BOOT_CMD_HELP(cmd_protect_help)
U_BOOT_CMD_END