aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarc Schink <openocd-dev@marcschink.de>2016-11-04 08:39:03 +0100
committerFreddie Chopin <freddie.chopin@gmail.com>2017-06-17 12:44:25 +0100
commitbdc71c5252995d55298ba7bba49adec074104619 (patch)
tree2e406b6307e60500d904830d274eb4654f41f22d /src
parent2de82d39a2df0bfc040f753549eabcb5b737beb1 (diff)
flash/nor/tcl: Make write_bank parameter optional
Make the 'offset' parameter optional, if omitted simply start at the beginning of the flash bank. Additionally, check if the argument is out of bounds of the flash bank. Change-Id: I8e9632b539ad9e83211e1ac6a06da4c8109cbc60 Signed-off-by: Marc Schink <openocd-dev@marcschink.de> Reviewed-on: http://openocd.zylin.com/3860 Tested-by: jenkins Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
Diffstat (limited to 'src')
-rw-r--r--src/flash/nor/tcl.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/flash/nor/tcl.c b/src/flash/nor/tcl.c
index ed5f77ee..2bc0f8a9 100644
--- a/src/flash/nor/tcl.c
+++ b/src/flash/nor/tcl.c
@@ -585,7 +585,7 @@ COMMAND_HANDLER(handle_flash_write_bank_command)
uint8_t *buffer;
struct fileio *fileio;
- if (CMD_ARGC != 3)
+ if (CMD_ARGC < 2 || CMD_ARGC > 3)
return ERROR_COMMAND_SYNTAX_ERROR;
struct duration bench;
@@ -596,7 +596,16 @@ COMMAND_HANDLER(handle_flash_write_bank_command)
if (ERROR_OK != retval)
return retval;
- COMMAND_PARSE_NUMBER(u32, CMD_ARGV[2], offset);
+ offset = 0;
+
+ if (CMD_ARGC > 2)
+ COMMAND_PARSE_NUMBER(u32, CMD_ARGV[2], offset);
+
+ if (offset > p->size) {
+ LOG_ERROR("Offset 0x%8.8" PRIx32 " is out of range of the flash bank",
+ offset);
+ return ERROR_COMMAND_ARGUMENT_INVALID;
+ }
if (fileio_open(&fileio, CMD_ARGV[1], FILEIO_READ, FILEIO_BINARY) != ERROR_OK)
return ERROR_FAIL;
@@ -921,10 +930,9 @@ static const struct command_registration flash_exec_command_handlers[] = {
.name = "write_bank",
.handler = handle_flash_write_bank_command,
.mode = COMMAND_EXEC,
- .usage = "bank_id filename offset",
- .help = "Write binary data from file to flash bank, "
- "starting at specified byte offset from the "
- "beginning of the bank.",
+ .usage = "bank_id filename [offset]",
+ .help = "Write binary data from file to flash bank. Allow optional "
+ "offset from beginning of the bank (defaults to zero).",
},
{
.name = "write_image",