From afca2e817dbc7592abd49a32e3457772afc98cd7 Mon Sep 17 00:00:00 2001 From: Paul Fertser Date: Sat, 11 May 2013 15:55:20 +0400 Subject: [PATCH] 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 --- src/target/cortex_m.c | 3 ++- 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 6fba9259b8..9521085b1c 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 65e056863f..4564d46c9e 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; -- 2.30.2