diff options
author | Paul Fertser <fercerpav@gmail.com> | 2013-05-11 15:55:20 +0400 |
---|---|---|
committer | Spencer Oliver <spen@spen-soft.co.uk> | 2013-05-29 14:39:26 +0000 |
commit | afca2e817dbc7592abd49a32e3457772afc98cd7 (patch) | |
tree | d02d25bf27704c61496e98cfb7deae29c0f3fd39 | |
parent | 9a231e295ce608665c64442b19ee0d2fff4fc38c (diff) | |
download | riscv-openocd-afca2e817dbc7592abd49a32e3457772afc98cd7.zip riscv-openocd-afca2e817dbc7592abd49a32e3457772afc98cd7.tar.gz riscv-openocd-afca2e817dbc7592abd49a32e3457772afc98cd7.tar.bz2 |
cortex_m, hla_target: do not try asserting SRST if it's not present
This should cover all the cases when RESET_SRST_NO_GATING is set
without RESET_HAS_SRST. This might happen when RESET_SRST_NO_GATING is
automatically set by a target code (and not from tcl).
However, there're some other places (mips_m4k, arm7_9_common) where
adding RESET_SRST_PULLS_TRST would lead to trying to use SRST even if
it's not present. Currently it's impossible for the user to enable
that flag without enabling SRST.
Change-Id: Ib1c6f68feed0b8057d55afd5f260bb22ab332ced
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Reviewed-on: http://openocd.zylin.com/1405
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
-rw-r--r-- | src/target/cortex_m.c | 3 | ||||
-rw-r--r-- | src/target/hla_target.c | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/target/cortex_m.c b/src/target/cortex_m.c index 6fba925..9521085 100644 --- a/src/target/cortex_m.c +++ b/src/target/cortex_m.c @@ -989,7 +989,8 @@ static int cortex_m3_assert_reset(struct target *target) bool srst_asserted = false; - if (jtag_reset_config & RESET_SRST_NO_GATING) { + if ((jtag_reset_config & RESET_HAS_SRST) && + (jtag_reset_config & RESET_SRST_NO_GATING)) { adapter_assert_reset(); srst_asserted = true; } diff --git a/src/target/hla_target.c b/src/target/hla_target.c index 65e0568..4564d46 100644 --- a/src/target/hla_target.c +++ b/src/target/hla_target.c @@ -428,7 +428,8 @@ static int adapter_assert_reset(struct target *target) bool srst_asserted = false; - if (jtag_reset_config & RESET_SRST_NO_GATING) { + if ((jtag_reset_config & RESET_HAS_SRST) && + (jtag_reset_config & RESET_SRST_NO_GATING)) { jtag_add_reset(0, 1); res = adapter->layout->api->assert_srst(adapter->fd, 0); srst_asserted = true; |