summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgcembed <gcembed@gmail.com>2010-06-01 13:48:22 +0200
committerØyvind Harboe <oyvind.harboe@zylin.com>2010-06-03 20:40:00 +0200
commita1cf1b52444c67b6c56ad58fe29be5a285b244cb (patch)
tree7a658f986f40a1ebccfc67865505bc03594f5219
parent631514724db1772f9e08e1dcb564fe9205def57e (diff)
downloadopenocd+libswd-a1cf1b52444c67b6c56ad58fe29be5a285b244cb.tar.gz
openocd+libswd-a1cf1b52444c67b6c56ad58fe29be5a285b244cb.tar.bz2
openocd+libswd-a1cf1b52444c67b6c56ad58fe29be5a285b244cb.tar.xz
openocd+libswd-a1cf1b52444c67b6c56ad58fe29be5a285b244cb.zip
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
-rw-r--r--src/flash/nor/stm32x.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/flash/nor/stm32x.c b/src/flash/nor/stm32x.c
index 8a3b8323..47ed6406 100644
--- a/src/flash/nor/stm32x.c
+++ b/src/flash/nor/stm32x.c
@@ -1196,13 +1196,13 @@ static int stm32x_mass_erase(struct flash_bank *bank)
if (status & FLASH_WRPRTERR)
{
LOG_ERROR("stm32x device protected");
- return ERROR_OK;
+ return ERROR_FLASH_OPERATION_FAILED;
}
if (status & FLASH_PGERR)
{
LOG_ERROR("stm32x device programming failed");
- return ERROR_OK;
+ return ERROR_FLASH_OPERATION_FAILED;
}
return ERROR_OK;
@@ -1223,7 +1223,8 @@ COMMAND_HANDLER(stm32x_handle_mass_erase_command)
if (ERROR_OK != retval)
return retval;
- if (stm32x_mass_erase(bank) == ERROR_OK)
+ retval = stm32x_mass_erase(bank);
+ if (retval == ERROR_OK)
{
/* set all sectors as erased */
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");
}
- return ERROR_OK;
+ return retval;
}
static const struct command_registration stm32x_exec_command_handlers[] = {