summaryrefslogtreecommitdiff
path: root/src/target/cortex_m3.c
diff options
context:
space:
mode:
authorSpencer Oliver <ntfreak@users.sourceforge.net>2010-12-02 12:58:50 +0000
committerSpencer Oliver <ntfreak@users.sourceforge.net>2010-12-03 09:02:07 +0000
commitf0fac8a2cda054b0040ef2387d9c0776e06d73a7 (patch)
treeb8c139eab5b0f89bd10eb96c3a8d2da49b264cb0 /src/target/cortex_m3.c
parentc24087d33ec75144ec5f579142152d8eb5ce50c9 (diff)
downloadopenocd+libswd-f0fac8a2cda054b0040ef2387d9c0776e06d73a7.tar.gz
openocd+libswd-f0fac8a2cda054b0040ef2387d9c0776e06d73a7.tar.bz2
openocd+libswd-f0fac8a2cda054b0040ef2387d9c0776e06d73a7.tar.xz
openocd+libswd-f0fac8a2cda054b0040ef2387d9c0776e06d73a7.zip
cortex_m3: change cortec_m3 reset_config behaviour
Currently the cmd 'cortex_m3 reset_config' will overide the default target's 'reset_config'. Chnage the behaviour to use the target 'reset_config' if configured and fallback if not. Signed-off-by: Spencer Oliver <ntfreak@users.sourceforge.net>
Diffstat (limited to 'src/target/cortex_m3.c')
-rw-r--r--src/target/cortex_m3.c20
1 files changed, 2 insertions, 18 deletions
diff --git a/src/target/cortex_m3.c b/src/target/cortex_m3.c
index f2947ad1..93c88c09 100644
--- a/src/target/cortex_m3.c
+++ b/src/target/cortex_m3.c
@@ -927,16 +927,6 @@ static int cortex_m3_assert_reset(struct target *target)
enum reset_types jtag_reset_config = jtag_get_reset_config();
- /*
- * We can reset Cortex-M3 targets using just the NVIC without
- * requiring SRST, getting a SoC reset (or a core-only reset)
- * instead of a system reset.
- */
- if (!(jtag_reset_config & RESET_HAS_SRST) &&
- (cortex_m3->soft_reset_config == CORTEX_M3_RESET_SRST)) {
- reset_config = CORTEX_M3_RESET_VECTRESET;
- }
-
/* Enable debug requests */
int retval;
retval = mem_ap_read_atomic_u32(swjdp, DCB_DHCSR, &cortex_m3->dcb_dhcsr);
@@ -984,7 +974,7 @@ static int cortex_m3_assert_reset(struct target *target)
return retval;
}
- if (reset_config == CORTEX_M3_RESET_SRST)
+ if (jtag_reset_config & RESET_HAS_SRST)
{
/* default to asserting srst */
if (jtag_reset_config & RESET_SRST_PULLS_TRST)
@@ -1945,7 +1935,7 @@ static int cortex_m3_init_arch_info(struct target *target,
/* default reset mode is to use srst if fitted
* if not it will use CORTEX_M3_RESET_VECTRESET */
- cortex_m3->soft_reset_config = CORTEX_M3_RESET_SRST;
+ cortex_m3->soft_reset_config = CORTEX_M3_RESET_VECTRESET;
armv7m->arm.dap = &armv7m->dap;
@@ -2138,16 +2128,10 @@ COMMAND_HANDLER(handle_cortex_m3_reset_config_command)
cortex_m3->soft_reset_config = CORTEX_M3_RESET_SYSRESETREQ;
else if (strcmp(*CMD_ARGV, "vectreset") == 0)
cortex_m3->soft_reset_config = CORTEX_M3_RESET_VECTRESET;
- else
- cortex_m3->soft_reset_config = CORTEX_M3_RESET_SRST;
}
switch (cortex_m3->soft_reset_config)
{
- case CORTEX_M3_RESET_SRST:
- reset_config = "srst";
- break;
-
case CORTEX_M3_RESET_SYSRESETREQ:
reset_config = "sysresetreq";
break;