summaryrefslogtreecommitdiff
path: root/src/flash/nor
diff options
context:
space:
mode:
authorØyvind Harboe <oyvind.harboe@zylin.com>2010-06-14 12:08:46 +0200
committerØyvind Harboe <oyvind.harboe@zylin.com>2010-06-14 12:27:58 +0200
commitb6a82540654f02dbf4caaed1be538044220dd3dc (patch)
tree86405f1a4bb5799ed07d8dfed44c0d66f2001e39 /src/flash/nor
parentf3ae52cace69f9568bac719d50af3a62993e96ad (diff)
downloadopenocd_libswd-b6a82540654f02dbf4caaed1be538044220dd3dc.tar.gz
openocd_libswd-b6a82540654f02dbf4caaed1be538044220dd3dc.tar.bz2
openocd_libswd-b6a82540654f02dbf4caaed1be538044220dd3dc.tar.xz
openocd_libswd-b6a82540654f02dbf4caaed1be538044220dd3dc.zip
flash: fix bug in error propagation of flash write_image
when a write/unlock/erase failed during write_image, then an error was not propagated back up so e.g. flash write image from tcl scripts would not throw an exception. Also flash filling speed was printed even when the operation failed. Output is now less confusing. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Diffstat (limited to 'src/flash/nor')
-rw-r--r--src/flash/nor/cfi.c6
-rw-r--r--src/flash/nor/core.c1
-rw-r--r--src/flash/nor/tcl.c2
3 files changed, 3 insertions, 6 deletions
diff --git a/src/flash/nor/cfi.c b/src/flash/nor/cfi.c
index 714cbe45..c1343175 100644
--- a/src/flash/nor/cfi.c
+++ b/src/flash/nor/cfi.c
@@ -2383,8 +2383,6 @@ static int cfi_probe(struct flash_bank *bank)
*/
if (cfi_info->not_cfi == 0)
{
- int retval;
-
/* enter CFI query mode
* according to JEDEC Standard No. 68.01,
* a single bus sequence with address = 0x55, data = 0x98 should put
@@ -2716,7 +2714,7 @@ static int cfi_protect_check(struct flash_bank *bank)
return ERROR_OK;
}
-static int cfi_info(struct flash_bank *bank, char *buf, int buf_size)
+static int get_cfi_info(struct flash_bank *bank, char *buf, int buf_size)
{
int printed;
struct cfi_flash_bank *cfi_info = bank->driver_priv;
@@ -2806,5 +2804,5 @@ struct flash_driver cfi_flash = {
/* FIXME: access flash at bus_width size */
.erase_check = default_flash_blank_check,
.protect_check = cfi_protect_check,
- .info = cfi_info,
+ .info = get_cfi_info,
};
diff --git a/src/flash/nor/core.c b/src/flash/nor/core.c
index d2f2754d..84408e6a 100644
--- a/src/flash/nor/core.c
+++ b/src/flash/nor/core.c
@@ -599,7 +599,6 @@ int flash_write_unlock(struct target *target, struct image *image,
}
/* find the corresponding flash bank */
- int retval;
retval = get_flash_bank_by_addr(target, run_address, false, &c);
if (retval != ERROR_OK)
return retval;
diff --git a/src/flash/nor/tcl.c b/src/flash/nor/tcl.c
index 3d67327f..28a504e7 100644
--- a/src/flash/nor/tcl.c
+++ b/src/flash/nor/tcl.c
@@ -576,7 +576,7 @@ COMMAND_HANDLER(handle_flash_fill_command)
}
}
- if (duration_measure(&bench) == ERROR_OK)
+ if ((retval == ERROR_OK) && (duration_measure(&bench) == ERROR_OK))
{
command_print(CMD_CTX, "wrote %" PRIu32 " bytes to 0x%8.8" PRIx32
" in %fs (%0.3f KiB/s)", wrote, address,