]> git.sur5r.net Git - openocd/commitdiff
Changed SAM4S Erase for effective Sector erase
authorOlivier Schonken <olivier.schonken@gmail.com>
Mon, 4 Jun 2012 05:33:15 +0000 (07:33 +0200)
committerSpencer Oliver <spen@spen-soft.co.uk>
Tue, 26 Jun 2012 13:51:59 +0000 (13:51 +0000)
In the previous iteration, the page counter for erases would not be updated with
the erase size.  This patch keeps the page counter synced with the sector counter.

Signed-off-by: Olivier Schonken <olivier.schonken@gmail.com>
Change-Id: I95e56a3257b2ad8301c9f28167b842fa6466334f
Reviewed-on: http://openocd.zylin.com/686
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
src/flash/nor/at91sam4.c

index c009a13998bae1c4d3f27fd49b09820ee7f728bf..fd98b7f0da850370e77d91add82cb5ce4d0e78f4 100644 (file)
@@ -1678,6 +1678,9 @@ static int sam4_erase(struct flash_bank *bank, int first, int last)
        struct sam4_bank_private *pPrivate;
        int r;
        int i;
+       int pageCount;
+       /*16 pages equals 8KB - Same size as a lock region*/
+       pageCount = 16;
        uint32_t status;
 
        LOG_DEBUG("Here");
@@ -1705,7 +1708,7 @@ static int sam4_erase(struct flash_bank *bank, int first, int last)
        LOG_INFO("sam4 First: 0x%08x Last: 0x%08x", (unsigned int)(first), (unsigned int)(last));
        for (i = first; i <= last; i++) {
                /*16 pages equals 8KB - Same size as a lock region*/
-               r = FLASHD_ErasePages(pPrivate, i, 16, &status);
+               r = FLASHD_ErasePages(pPrivate, (i * pageCount), pageCount, &status);
                LOG_INFO("Erasing sector: 0x%08x", (unsigned int)(i));
                if (r != ERROR_OK)
                        LOG_ERROR("SAM4: Error performing Erase page @ lock region number %d",