From: Paul Fertser Date: Sat, 11 May 2013 11:55:20 +0000 (+0400) Subject: cortex_m, hla_target: do not try asserting SRST if it's not present X-Git-Tag: v0.8.0-rc1~422 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=afca2e817dbc7592abd49a32e3457772afc98cd7;p=openocd 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 Reviewed-on: http://openocd.zylin.com/1405 Tested-by: jenkins Reviewed-by: Spencer Oliver --- diff --git a/src/target/cortex_m.c b/src/target/cortex_m.c index 6fba9259..9521085b 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 65e05686..4564d46c 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;