aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Kurz <akurz@blala.de>2016-02-13 15:11:59 +0100
committerAndreas Fritiofson <andreas.fritiofson@gmail.com>2016-02-29 19:08:45 +0000
commit144f96c35afbff6771481dbfd39e863ff1a63bd7 (patch)
treefc21f51671222ef6a492e0f745f324b04737b272
parente0a28b290f77df9e9a7e9f80e006cc9e2202c89d (diff)
cfi intel: fixing faulty flash write error message
Writing to Intel CFI flash with unaligned tail bytes raised a false error message although all data was programmed successfully. e.g.: > flash write_image image 0x602e0000 bin > Programming at 0x602e0000, count 0x00000002 bytes remaining > couldn't write word at base 0x60000000, address 0x602e0000 > error writing to flash at address 0x60000000 at offset 0x002e0000 Root cause for this false error was a mixup of two result variables introduced with ecc8041c. Change-Id: Ib6b85293dbed946a36a307e5b198c47b901145bf Signed-off-by: Alexander Kurz <akurz@blala.de> Reviewed-on: http://openocd.zylin.com/3233 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
-rw-r--r--src/flash/nor/cfi.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/flash/nor/cfi.c b/src/flash/nor/cfi.c
index b8088300..df1de8c7 100644
--- a/src/flash/nor/cfi.c
+++ b/src/flash/nor/cfi.c
@@ -2002,7 +2002,9 @@ static int cfi_intel_write_word(struct flash_bank *bank, uint8_t *word, uint32_t
uint8_t status;
retval = cfi_intel_wait_status_busy(bank, cfi_info->word_write_timeout, &status);
- if (retval != 0x80) {
+ if (retval != ERROR_OK)
+ return retval;
+ if (status != 0x80) {
retval = cfi_send_command(bank, 0xff, flash_address(bank, 0, 0x0));
if (retval != ERROR_OK)
return retval;