aboutsummaryrefslogtreecommitdiff
path: root/src/flash
diff options
context:
space:
mode:
authorMarc Schink <openocd-dev@marcschink.de>2016-11-04 08:09:56 +0100
committerFreddie Chopin <freddie.chopin@gmail.com>2017-04-24 22:15:14 +0100
commit45f0e6d0626e4541158198c271519175ae79f5b5 (patch)
tree5c4399cabc5f179727a88c6aff4643ebb1a051d1 /src/flash
parent790a7b2a8d22e04d9447d35d3bbb8684a11446a3 (diff)
downloadriscv-openocd-45f0e6d0626e4541158198c271519175ae79f5b5.zip
riscv-openocd-45f0e6d0626e4541158198c271519175ae79f5b5.tar.gz
riscv-openocd-45f0e6d0626e4541158198c271519175ae79f5b5.tar.bz2
flash/nor/tcl: Make verify_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: Id1959eee5c395666c35f26342c3c50134dd564e5 Signed-off-by: Marc Schink <openocd-dev@marcschink.de> Reviewed-on: http://openocd.zylin.com/3858 Tested-by: jenkins Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
Diffstat (limited to 'src/flash')
-rw-r--r--src/flash/nor/tcl.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/src/flash/nor/tcl.c b/src/flash/nor/tcl.c
index 3619e2f..b93d126 100644
--- a/src/flash/nor/tcl.c
+++ b/src/flash/nor/tcl.c
@@ -707,7 +707,7 @@ COMMAND_HANDLER(handle_flash_verify_bank_command)
size_t filesize;
int differ;
- if (CMD_ARGC != 3)
+ if (CMD_ARGC < 2 || CMD_ARGC > 3)
return ERROR_COMMAND_SYNTAX_ERROR;
struct duration bench;
@@ -718,7 +718,16 @@ COMMAND_HANDLER(handle_flash_verify_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;
+ }
retval = fileio_open(&fileio, CMD_ARGV[1], FILEIO_READ, FILEIO_BINARY);
if (retval != ERROR_OK) {
@@ -926,10 +935,10 @@ static const struct command_registration flash_exec_command_handlers[] = {
.name = "verify_bank",
.handler = handle_flash_verify_bank_command,
.mode = COMMAND_EXEC,
- .usage = "bank_id filename offset",
- .help = "Read binary data from flash bank and file, "
- "starting at specified byte offset from the "
- "beginning of the bank. Compare the contents.",
+ .usage = "bank_id filename [offset]",
+ .help = "Compare the contents of a file with the contents of the "
+ "flash bank. Allow optional offset from beginning of the bank "
+ "(defaults to zero).",
},
{
.name = "protect",