diff options
author | Spencer Oliver <ntfreak@users.sourceforge.net> | 2010-12-02 12:58:50 +0000 |
---|---|---|
committer | Spencer Oliver <ntfreak@users.sourceforge.net> | 2010-12-03 09:02:07 +0000 |
commit | f0fac8a2cda054b0040ef2387d9c0776e06d73a7 (patch) | |
tree | b8c139eab5b0f89bd10eb96c3a8d2da49b264cb0 /src/target | |
parent | c24087d33ec75144ec5f579142152d8eb5ce50c9 (diff) | |
download | openocd+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')
-rw-r--r-- | src/target/cortex_m3.c | 20 | ||||
-rw-r--r-- | src/target/cortex_m3.h | 1 |
2 files changed, 2 insertions, 19 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; diff --git a/src/target/cortex_m3.h b/src/target/cortex_m3.h index db807111..e1f8ef80 100644 --- a/src/target/cortex_m3.h +++ b/src/target/cortex_m3.h @@ -136,7 +136,6 @@ struct cortex_m3_dwt_comparator enum cortex_m3_soft_reset_config { - CORTEX_M3_RESET_SRST, CORTEX_M3_RESET_SYSRESETREQ, CORTEX_M3_RESET_VECTRESET, }; |