diff options
author | Laurentiu Cocanu <laurentiu.cocanu@zylin.com> | 2010-01-14 13:59:36 +0100 |
---|---|---|
committer | Øyvind Harboe <oyvind.harboe@zylin.com> | 2010-01-14 15:07:24 +0100 |
commit | 24653c950a18c49d267efb17a36423d9c455a886 (patch) | |
tree | af19672b9ac74850cc70aec625bc57d612b6e6d0 | |
parent | e1679a29f084e3172077d513d14a0fde9ea2ea77 (diff) | |
download | openocd_libswd-24653c950a18c49d267efb17a36423d9c455a886.tar.gz openocd_libswd-24653c950a18c49d267efb17a36423d9c455a886.tar.bz2 openocd_libswd-24653c950a18c49d267efb17a36423d9c455a886.tar.xz openocd_libswd-24653c950a18c49d267efb17a36423d9c455a886.zip |
str9x.c: remove optimization when erasing the whole bank
Using the erase bank command will cause a time out error. Replacing
this with the erase sector bank will provide a slower but safer and
stable method to erase the flash.
Signed-off-by: Laurentiu Cocanu <laurentiu.cocanu@zylin.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
-rw-r--r-- | src/flash/nor/str9x.c | 18 |
1 files changed, 3 insertions, 15 deletions
diff --git a/src/flash/nor/str9x.c b/src/flash/nor/str9x.c index bf3f750f..d0c1278f 100644 --- a/src/flash/nor/str9x.c +++ b/src/flash/nor/str9x.c @@ -230,17 +230,9 @@ static int str9x_erase(struct flash_bank *bank, int first, int last) return ERROR_TARGET_NOT_HALTED; } - /* Check if we erase whole bank */ - if ((first == 0) && (last == (bank->num_sectors - 1))) - { - /* Optimize to run erase bank command instead of sector */ - erase_cmd = 0x80; - } - else - { - /* Erase sector command */ - erase_cmd = 0x20; - } + /*A slower but stable way of erasing*/ + /* Erase sector command */ + erase_cmd = 0x20; for (i = first; i <= last; i++) { @@ -296,10 +288,6 @@ static int str9x_erase(struct flash_bank *bank, int first, int last) LOG_ERROR("error erasing flash bank, status: 0x%x", status); return ERROR_FLASH_OPERATION_FAILED; } - - /* If we ran erase bank command, we are finished */ - if (erase_cmd == 0x80) - break; } for (i = first; i <= last; i++) |