From: David Brownell Date: Tue, 20 Oct 2009 05:50:51 +0000 (-0700) Subject: jtag_add_statemove() always uses TLR to get to RESET X-Git-Tag: v0.3.0-rc0~62 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=d243e641d3169674082f3cdae2d9a7242b96f2c2;p=openocd jtag_add_statemove() always uses TLR to get to RESET As decided a while back, this isn't a transition we want to chance. Whenever someone wants to got to RESET, force it. Signed-off-by: David Brownell --- diff --git a/src/jtag/core.c b/src/jtag/core.c index 415d1e82..7c85839b 100644 --- a/src/jtag/core.c +++ b/src/jtag/core.c @@ -567,12 +567,14 @@ int jtag_add_statemove(tap_state_t goal_state) tap_state_name(goal_state)); - if (goal_state == cur_state) - ; /* nothing to do */ - else if (goal_state == TAP_RESET) - { + /* If goal is RESET, be paranoid and force that that transition + * (e.g. five TCK cycles, TMS high). Else trust "cur_state". + */ + if (goal_state == TAP_RESET) jtag_add_tlr(); - } + else if (goal_state == cur_state) + /* nothing to do */ ; + else if (tap_is_state_stable(cur_state) && tap_is_state_stable(goal_state)) { unsigned tms_bits = tap_get_tms_path(cur_state, goal_state);