diff options
author | Tomas Vanek <vanekt@fbl.cz> | 2022-11-24 14:21:59 +0100 |
---|---|---|
committer | Antonio Borneo <borneo.antonio@gmail.com> | 2023-01-15 15:10:16 +0000 |
commit | 5292c7eae925d59d6b6c0017b6a4995d39a6e9ee (patch) | |
tree | 84518a6d6eda0b4e82a4f9bbc52d1e491c57916d /src | |
parent | 630cb5ea4d65edba42d1c77fa17d9fe78f7b38c2 (diff) | |
download | riscv-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.c | 4 |
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. */ |