summaryrefslogtreecommitdiff
path: root/src/flash
diff options
context:
space:
mode:
authorLaurentiu 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
commit24653c950a18c49d267efb17a36423d9c455a886 (patch)
treeaf19672b9ac74850cc70aec625bc57d612b6e6d0 /src/flash
parente1679a29f084e3172077d513d14a0fde9ea2ea77 (diff)
downloadopenocd+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>
Diffstat (limited to 'src/flash')
-rw-r--r--src/flash/nor/str9x.c18
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++)