str9x.c: remove optimization when erasing the whole bank
authorLaurentiu Cocanu <laurentiu.cocanu@zylin.com>
Thu, 14 Jan 2010 12:59:36 +0000 (13:59 +0100)
committerØyvind Harboe <oyvind.harboe@zylin.com>
Thu, 14 Jan 2010 14:07:24 +0000 (15:07 +0100)
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>
src/flash/nor/str9x.c

index bf3f750f192dc956d9a584005a5bb65ff423ab44..d0c1278f572f9f35d4d9742ac267e75b8c19bed0 100644 (file)
@@ -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++)