diff options
author | Øyvind Harboe <oyvind.harboe@zylin.com> | 2010-06-11 08:10:39 +0200 |
---|---|---|
committer | Øyvind Harboe <oyvind.harboe@zylin.com> | 2010-06-11 15:53:23 +0200 |
commit | 4532dc78314a543f205e15d37d1bc7fa03df7595 (patch) | |
tree | 5178378ba58ccaf136feb236faac45767fb194c1 /src/flash/nor/tcl.c | |
parent | 0538081246fafbfb74d554bb1b758412534aa254 (diff) | |
download | riscv-openocd-4532dc78314a543f205e15d37d1bc7fa03df7595.zip riscv-openocd-4532dc78314a543f205e15d37d1bc7fa03df7595.tar.gz riscv-openocd-4532dc78314a543f205e15d37d1bc7fa03df7595.tar.bz2 |
flash: add error handling to get_flash_by_addr/name
autoprobing can fail and this error has to be
reported up the call stack.
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Diffstat (limited to 'src/flash/nor/tcl.c')
-rw-r--r-- | src/flash/nor/tcl.c | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/src/flash/nor/tcl.c b/src/flash/nor/tcl.c index cf1ca4a..3d67327 100644 --- a/src/flash/nor/tcl.c +++ b/src/flash/nor/tcl.c @@ -35,7 +35,9 @@ COMMAND_HELPER(flash_command_get_bank, unsigned name_index, struct flash_bank **bank) { const char *name = CMD_ARGV[name_index]; - *bank = get_flash_bank_by_name(name); + int retval = get_flash_bank_by_name(name, bank); + if (retval != ERROR_OK) + return retval; if (*bank) return ERROR_OK; @@ -238,11 +240,9 @@ COMMAND_HANDLER(handle_flash_erase_address_command) return ERROR_COMMAND_SYNTAX_ERROR; } - p = get_flash_bank_by_addr(target, address); - if (p == NULL) - { - return ERROR_FAIL; - } + retval = get_flash_bank_by_addr(target, address, true, &p); + if (retval != ERROR_OK) + return retval; /* We can't know if we did a resume + halt, in which case we no longer know the erased state */ flash_set_dirty(); @@ -544,12 +544,9 @@ COMMAND_HANDLER(handle_flash_fill_command) { struct flash_bank *bank; - bank = get_flash_bank_by_addr(target, address); - if (bank == NULL) - { - retval = ERROR_FAIL; + retval = get_flash_bank_by_addr(target, address, true, &bank ); + if (retval != ERROR_OK) goto done; - } cur_size = MIN((count * wordsize - wrote), chunksize); err = flash_driver_write(bank, chunk, address - bank->base + wrote, cur_size); |