diff options
author | gcembed <gcembed@gmail.com> | 2010-06-01 13:48:22 +0200 |
---|---|---|
committer | Øyvind Harboe <oyvind.harboe@zylin.com> | 2010-06-03 20:40:00 +0200 |
commit | a1cf1b52444c67b6c56ad58fe29be5a285b244cb (patch) | |
tree | 7a658f986f40a1ebccfc67865505bc03594f5219 /src/flash/nor | |
parent | 631514724db1772f9e08e1dcb564fe9205def57e (diff) | |
download | openocd_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
Diffstat (limited to 'src/flash/nor')
-rw-r--r-- | src/flash/nor/stm32x.c | 9 |
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[] = { |