aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPaul Fertser <fercerpav@gmail.com>2014-06-22 23:23:31 +0400
committerAndreas Fritiofson <andreas.fritiofson@gmail.com>2014-06-28 16:52:08 +0000
commit52b80fbd82d80425863823b3fe26d47a702febb0 (patch)
tree1f103e5c506905758dfe4823d31996d5d8a2325e /src
parenteeff8eec6cfef3a0e51813824b97e4ba766b83ba (diff)
downloadriscv-openocd-52b80fbd82d80425863823b3fe26d47a702febb0.zip
riscv-openocd-52b80fbd82d80425863823b3fe26d47a702febb0.tar.gz
riscv-openocd-52b80fbd82d80425863823b3fe26d47a702febb0.tar.bz2
jtag/drivers/ftdi: do not touch unavailable reset signals
If the current reset_config doesn't specify availability of nTRST or nSRST, just leave them alone, do not try to deassert them ever (asserting would be prevented by the upper layer). Change-Id: I90123c666e05a1c26f1e164625e82d766a3e3744 Signed-off-by: Paul Fertser <fercerpav@gmail.com> Reviewed-on: http://openocd.zylin.com/2186 Tested-by: jenkins Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/jtag/drivers/ftdi.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/jtag/drivers/ftdi.c b/src/jtag/drivers/ftdi.c
index b65dd2a..0debc2d 100644
--- a/src/jtag/drivers/ftdi.c
+++ b/src/jtag/drivers/ftdi.c
@@ -501,7 +501,8 @@ static void ftdi_execute_reset(struct jtag_command *cmd)
ftdi_set_signal(trst, '0');
else
LOG_ERROR("Can't assert TRST: nTRST signal is not defined");
- } else if (trst && cmd->cmd.reset->trst == 0) {
+ } else if (trst && jtag_get_reset_config() & RESET_HAS_TRST &&
+ cmd->cmd.reset->trst == 0) {
if (jtag_get_reset_config() & RESET_TRST_OPEN_DRAIN)
ftdi_set_signal(trst, 'z');
else
@@ -514,7 +515,8 @@ static void ftdi_execute_reset(struct jtag_command *cmd)
ftdi_set_signal(srst, '0');
else
LOG_ERROR("Can't assert SRST: nSRST signal is not defined");
- } else if (srst && cmd->cmd.reset->srst == 0) {
+ } else if (srst && jtag_get_reset_config() & RESET_HAS_SRST &&
+ cmd->cmd.reset->srst == 0) {
if (jtag_get_reset_config() & RESET_SRST_PUSH_PULL)
ftdi_set_signal(srst, '1');
else