Skip to content
Snippets Groups Projects
Commit 08da1b42 authored by Paul Fertser's avatar Paul Fertser
Browse files

flash/nor/kinetis: pull SRST low during mass erase


Mass erase operation might be impacted by different factors,
apparently the most reliable way is to do it while asserting the chip
reset line.

Change-Id: Id6ab57eaec86e402ffdf4f5c8843e7735640f03e
Signed-off-by: default avatarPaul Fertser <fercerpav@gmail.com>
Reviewed-on: http://openocd.zylin.com/2424


Tested-by: jenkins
Reviewed-by: default avatarSpencer Oliver <spen@spen-soft.co.uk>
parent 1fa4c728
Branches
Tags
No related merge requests found
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
#include "config.h" #include "config.h"
#endif #endif
#include "jtag/interface.h"
#include "imp.h" #include "imp.h"
#include <helper/binarybuffer.h> #include <helper/binarybuffer.h>
#include <target/algorithm.h> #include <target/algorithm.h>
...@@ -313,6 +314,14 @@ COMMAND_HANDLER(kinetis_mdm_mass_erase) ...@@ -313,6 +314,14 @@ COMMAND_HANDLER(kinetis_mdm_mass_erase)
* Reset Request bit in the MDM-AP control register after * Reset Request bit in the MDM-AP control register after
* establishing communication... * establishing communication...
*/ */
/* assert SRST */
if (jtag_get_reset_config() & RESET_HAS_SRST)
adapter_assert_reset();
else
LOG_WARNING("Attempting mass erase without hardware reset. This is not reliable; "
"it's recommended you connect SRST and use ``reset_config srst_only''.");
dap_ap_select(dap, 1); dap_ap_select(dap, 1);
retval = kinetis_mdm_write_register(dap, MDM_REG_CTRL, MEM_CTRL_SYS_RES_REQ); retval = kinetis_mdm_write_register(dap, MDM_REG_CTRL, MEM_CTRL_SYS_RES_REQ);
...@@ -364,6 +373,9 @@ COMMAND_HANDLER(kinetis_mdm_mass_erase) ...@@ -364,6 +373,9 @@ COMMAND_HANDLER(kinetis_mdm_mass_erase)
if (retval != ERROR_OK) if (retval != ERROR_OK)
return retval; return retval;
if (jtag_get_reset_config() & RESET_HAS_SRST)
adapter_deassert_reset();
dap_ap_select(dap, original_ap); dap_ap_select(dap, original_ap);
return ERROR_OK; return ERROR_OK;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment