aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPaul Fertser <fercerpav@gmail.com>2014-02-15 22:43:38 +0400
committerSpencer Oliver <spen@spen-soft.co.uk>2014-02-24 11:57:07 +0000
commit1f35e124d36b0f7741a8dadd247b8fa76ece5b7b (patch)
tree72a190a65f8fa20e215f4bea64658b4c949ec4cd /src
parent6d46ad11b539549fc7fc2d0c0a94653f29388068 (diff)
downloadriscv-openocd-1f35e124d36b0f7741a8dadd247b8fa76ece5b7b.zip
riscv-openocd-1f35e124d36b0f7741a8dadd247b8fa76ece5b7b.tar.gz
riscv-openocd-1f35e124d36b0f7741a8dadd247b8fa76ece5b7b.tar.bz2
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>
Diffstat (limited to 'src')
-rw-r--r--src/jtag/drivers/ftdi.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/jtag/drivers/ftdi.c b/src/jtag/drivers/ftdi.c
index a6070b1..81b27c2 100644
--- a/src/jtag/drivers/ftdi.c
+++ b/src/jtag/drivers/ftdi.c
@@ -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');