Modified Sector Erase for AT91SAM4S
In FLASHD_ErasePages AT91C_EFC_FCMD_EPA is used to erase sectors. According to the datasheet FARG[15:2] defines the page from which the erase will start.This page must be modulo 4, 8, 16 or 32 according to the number of pages to erase. FARG[1:0] defines the number of pages to be erased. Previously (firstpage << 2) was used to conform to this, seems it should not be shifted... Changed it to (firstPage) | erasePages. Change-Id: I791cc7fc4faf056623ad5a6c7e860315306098a1 Signed-off-by: Olivier Schonken <olivier.schonken@gmail.com> Reviewed-on: http://openocd.zylin.com/830 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
This commit is contained in:
parent
bd5f5c6a66
commit
5952843fc5
|
@ -722,10 +722,17 @@ static int FLASHD_ErasePages(struct sam4_bank_private *pPrivate,
|
|||
break;
|
||||
}
|
||||
|
||||
/* AT91C_EFC_FCMD_EPA
|
||||
* According to the datasheet FARG[15:2] defines the page from which
|
||||
* the erase will start.This page must be modulo 4, 8, 16 or 32
|
||||
* according to the number of pages to erase. FARG[1:0] defines the
|
||||
* number of pages to be erased. Previously (firstpage << 2) was used
|
||||
* to conform to this, seems it should not be shifted...
|
||||
*/
|
||||
return EFC_PerformCommand(pPrivate,
|
||||
/* send Erase Page */
|
||||
AT91C_EFC_FCMD_EPA,
|
||||
(firstPage << 2) | erasePages,
|
||||
(firstPage) | erasePages,
|
||||
status);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue