Browse Source

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>
tags/v0.10.0-rc1
Alexander Kurz 8 years ago
committed by Andreas Fritiofson
parent
commit
144f96c35a
1 changed files with 3 additions and 1 deletions
  1. +3
    -1
      src/flash/nor/cfi.c

+ 3
- 1
src/flash/nor/cfi.c View File

@@ -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;


Loading…
Cancel
Save