flash/nor/kinetis: do not attempt mass-erase in place of a bank erase
Many kinetis parts come in multi-bank configuration, so this optimisation here can't be performed safely. Investigated and fixed by Richard Braun. Change-Id: I2b56614b47951595c403a1a8edd3afe11b85679b Signed-off-by: Paul Fertser <fercerpav@gmail.com> Reviewed-on: http://openocd.zylin.com/2594 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>__archive__
parent
6819468a78
commit
082170292b
|
@ -797,20 +797,6 @@ static int kinetis_ftfx_command(struct flash_bank *bank, uint8_t fcmd, uint32_t
|
|||
return ERROR_OK;
|
||||
}
|
||||
|
||||
static int kinetis_mass_erase(struct flash_bank *bank)
|
||||
{
|
||||
uint8_t ftfx_fstat;
|
||||
|
||||
if (bank->target->state != TARGET_HALTED) {
|
||||
LOG_ERROR("Target not halted");
|
||||
return ERROR_TARGET_NOT_HALTED;
|
||||
}
|
||||
|
||||
LOG_INFO("Execute Erase All Blocks");
|
||||
return kinetis_ftfx_command(bank, FTFx_CMD_MASSERASE, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, &ftfx_fstat);
|
||||
}
|
||||
|
||||
COMMAND_HANDLER(kinetis_securing_test)
|
||||
{
|
||||
int result;
|
||||
|
@ -845,9 +831,6 @@ static int kinetis_erase(struct flash_bank *bank, int first, int last)
|
|||
if ((first > bank->num_sectors) || (last > bank->num_sectors))
|
||||
return ERROR_FLASH_OPERATION_FAILED;
|
||||
|
||||
if ((first == 0) && (last == (bank->num_sectors - 1)))
|
||||
return kinetis_mass_erase(bank);
|
||||
|
||||
/*
|
||||
* FIXME: TODO: use the 'Erase Flash Block' command if the
|
||||
* requested erase is PFlash or NVM and encompasses the entire
|
||||
|
|
Loading…
Reference in New Issue