dsp5680xx - match page erase with mass erase
authorrodrigo_l_rosa <rodrigorosa.lg@gmail.com>
Mon, 21 Nov 2011 18:34:24 +0000 (10:34 -0800)
committerØyvind Harboe <oyvindharboe@gmail.com>
Thu, 24 Nov 2011 23:26:50 +0000 (23:26 +0000)
when last==first==0 then mass erase is executed, it's faster.
the page marking was wrong in this case.

Change-Id: I5c579d59b5c4778cf057cb5986e086abdd4209b2
Signed-off-by: Rodrigo L. Rosa <rodrigorosa.lg@gmail.com>
Reviewed-on: http://openocd.zylin.com/232
Tested-by: jenkins
Reviewed-by: Øyvind Harboe <oyvindharboe@gmail.com>
src/flash/nor/dsp5680xx_flash.c

index d804088f34980c728e394f26040d1953e6eaf625..dd32a2fae8761d398473502921d1a3c70962c4ce 100644 (file)
@@ -198,6 +198,8 @@ static int dsp5680xx_flash_info(struct flash_bank *bank, char *buf, int buf_size
 static int dsp5680xx_flash_erase(struct flash_bank * bank, int first, int last){
   int retval;
   retval = dsp5680xx_f_erase(bank->target, (uint32_t) first, (uint32_t) last);
+if ((!(first|last)) || ((first == 0) && (last == (HFM_SECTOR_COUNT-1))))
+       last = HFM_SECTOR_COUNT-1;
   if(retval == ERROR_OK)
     for(int i = first;i<=last;i++)
       bank->sectors[i].is_erased = 1;