From 1f35e124d36b0f7741a8dadd247b8fa76ece5b7b Mon Sep 17 00:00:00 2001 From: Paul Fertser Date: Sat, 15 Feb 2014 22:43:38 +0400 Subject: [PATCH] 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 Reviewed-on: http://openocd.zylin.com/1948 Tested-by: jenkins Reviewed-by: Spencer Oliver --- src/jtag/drivers/ftdi.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/jtag/drivers/ftdi.c b/src/jtag/drivers/ftdi.c index a6070b112..81b27c26f 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');