Browse Source

drivers/ftdi: warn the user if he tries to use undefined reset signals

It is really an error to try to use a reset_config that doesn't match
adapter's capabilities, however OpenOCD has no way to specify them.

Using wrong reset_config might lead to very confusing behaviour, so I
think LOG_ERROR is justified here.

Change-Id: I1c6dcfa7c0d78829229a850189cad646b565dd66
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Reviewed-on: http://openocd.zylin.com/1948
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
tags/v0.8.0-rc1
Paul Fertser 10 years ago
committed by Spencer Oliver
parent
commit
1f35e124d3
1 changed files with 10 additions and 4 deletions
  1. +10
    -4
      src/jtag/drivers/ftdi.c

+ 10
- 4
src/jtag/drivers/ftdi.c View File

@@ -472,8 +472,11 @@ static void ftdi_execute_reset(struct jtag_command *cmd)
tap_set_state(TAP_RESET);

struct signal *trst = find_signal_by_name("nTRST");
if (trst && cmd->cmd.reset->trst == 1) {
ftdi_set_signal(trst, '0');
if (cmd->cmd.reset->trst == 1) {
if (trst)
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) {
if (jtag_get_reset_config() & RESET_TRST_OPEN_DRAIN)
ftdi_set_signal(trst, 'z');
@@ -482,8 +485,11 @@ static void ftdi_execute_reset(struct jtag_command *cmd)
}

struct signal *srst = find_signal_by_name("nSRST");
if (srst && cmd->cmd.reset->srst == 1) {
ftdi_set_signal(srst, '0');
if (cmd->cmd.reset->srst == 1) {
if (srst)
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) {
if (jtag_get_reset_config() & RESET_SRST_PUSH_PULL)
ftdi_set_signal(srst, '1');


Loading…
Cancel
Save