aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTomas Vanek <vanekt@fbl.cz>2022-11-24 14:21:59 +0100
committerAntonio Borneo <borneo.antonio@gmail.com>2023-01-15 15:10:16 +0000
commit5292c7eae925d59d6b6c0017b6a4995d39a6e9ee (patch)
tree84518a6d6eda0b4e82a4f9bbc52d1e491c57916d /src
parent630cb5ea4d65edba42d1c77fa17d9fe78f7b38c2 (diff)
downloadriscv-openocd-5292c7eae925d59d6b6c0017b6a4995d39a6e9ee.zip
riscv-openocd-5292c7eae925d59d6b6c0017b6a4995d39a6e9ee.tar.gz
riscv-openocd-5292c7eae925d59d6b6c0017b6a4995d39a6e9ee.tar.bz2
jtag/drivers/cmsis_dap: prevent conn/discon workaround before line reset
The line reset SWD sequence is used quite often in SWD multidrop mode. Prevent the ugly connect/disconnect adapter firmware bug workaround to be called before each line reset. Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Change-Id: Id85bff075dba9077e4e501e2cdcfd64d5d9d0531 Reviewed-on: https://review.openocd.org/c/openocd/+/7381 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/jtag/drivers/cmsis_dap.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/jtag/drivers/cmsis_dap.c b/src/jtag/drivers/cmsis_dap.c
index d2c30cc..0c42a7f 100644
--- a/src/jtag/drivers/cmsis_dap.c
+++ b/src/jtag/drivers/cmsis_dap.c
@@ -1158,7 +1158,9 @@ static int cmsis_dap_swd_switch_seq(enum swd_special_seq seq)
unsigned int s_len;
int retval;
- if ((output_pins & (SWJ_PIN_SRST | SWJ_PIN_TRST)) == (SWJ_PIN_SRST | SWJ_PIN_TRST)) {
+ if (seq != LINE_RESET &&
+ (output_pins & (SWJ_PIN_SRST | SWJ_PIN_TRST))
+ == (SWJ_PIN_SRST | SWJ_PIN_TRST)) {
/* Following workaround deasserts reset on most adapters.
* Do not reconnect if a reset line is active!
* Reconnecting would break connecting under reset. */