From: Laurentiu Cocanu Date: Thu, 14 Jan 2010 12:59:36 +0000 (+0100) Subject: str9x.c: remove optimization when erasing the whole bank X-Git-Tag: v0.4.0-rc2~87 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=24653c950a18c49d267efb17a36423d9c455a886;p=openocd 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 Signed-off-by: Øyvind Harboe --- 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++)