stm32 : change returned value of mass_erase function

Hello,
"stm32x mass_erase" return ERROR_OK even if something goes wrong.
Here is a summary of changes :
* in stm32x_mass_erase : return ERROR_FLASH_OPERATION_FAILED when error
detected in FLASH_SR register;
* in COMMAND_HANDLER(stm32x_handle_mass_erase_command) : return the
returned value of stm32x_mass_erase().

I don't know if there is reason to always return ERROR_OK ?

Gaëtan
__archive__
gcembed 2010-06-01 13:48:22 +02:00 committed by Øyvind Harboe
parent 631514724d
commit a1cf1b5244
1 changed files with 5 additions and 4 deletions

View File

@ -1196,13 +1196,13 @@ static int stm32x_mass_erase(struct flash_bank *bank)
if (status & FLASH_WRPRTERR) if (status & FLASH_WRPRTERR)
{ {
LOG_ERROR("stm32x device protected"); LOG_ERROR("stm32x device protected");
return ERROR_OK; return ERROR_FLASH_OPERATION_FAILED;
} }
if (status & FLASH_PGERR) if (status & FLASH_PGERR)
{ {
LOG_ERROR("stm32x device programming failed"); LOG_ERROR("stm32x device programming failed");
return ERROR_OK; return ERROR_FLASH_OPERATION_FAILED;
} }
return ERROR_OK; return ERROR_OK;
@ -1223,7 +1223,8 @@ COMMAND_HANDLER(stm32x_handle_mass_erase_command)
if (ERROR_OK != retval) if (ERROR_OK != retval)
return retval; return retval;
if (stm32x_mass_erase(bank) == ERROR_OK) retval = stm32x_mass_erase(bank);
if (retval == ERROR_OK)
{ {
/* set all sectors as erased */ /* set all sectors as erased */
for (i = 0; i < bank->num_sectors; i++) for (i = 0; i < bank->num_sectors; i++)
@ -1238,7 +1239,7 @@ COMMAND_HANDLER(stm32x_handle_mass_erase_command)
command_print(CMD_CTX, "stm32x mass erase failed"); command_print(CMD_CTX, "stm32x mass erase failed");
} }
return ERROR_OK; return retval;
} }
static const struct command_registration stm32x_exec_command_handlers[] = { static const struct command_registration stm32x_exec_command_handlers[] = {