aboutsummaryrefslogtreecommitdiff
path: root/src/jtag
diff options
context:
space:
mode:
authorAntonio Borneo <borneo.antonio@gmail.com>2018-10-08 16:42:10 +0200
committerMatthias Welwarsky <matthias@welwarsky.de>2018-10-09 08:35:34 +0100
commit06589d2de48556f5216e3e671e656f4fd9069b43 (patch)
treefdf4666e7d8b18c313d99d30423d9d8a05f88145 /src/jtag
parent76ee93a81db72d16cc2e446f6f43411de5d6e8c2 (diff)
downloadriscv-openocd-06589d2de48556f5216e3e671e656f4fd9069b43.zip
riscv-openocd-06589d2de48556f5216e3e671e656f4fd9069b43.tar.gz
riscv-openocd-06589d2de48556f5216e3e671e656f4fd9069b43.tar.bz2
drivers: cmsis-dap: fix connection in JTAG mode
Commit 5aceec24122bc222896cfcfd91f7f082f630ac83 ("drivers: cmsis-dap: pull up common connect code") breaks the driver and it cannot connect anymore in JTAG mode. The issue is caused in cmsis_dap_init() by anticipating the call to cmsis_dap_usb_open(), which then sets cmsis_dap_handle and makes the following test to always fail. Actually the original code was quite tricky: if (swd_mode) do something that also sets cmsis_dap_handle; if (cmsis_dap_handle == NULL) do something for !swd_mode; Convert the sequence of tricky "if"s in a single "if-then-else" to handle clearly the cases swd_mode and !swd_mode. Change-Id: I359a23bf26a3edc2461f4352daa0be83e78868f7 Fixes: 5aceec24122b ("drivers: cmsis-dap: pull up common connect code") Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: http://openocd.zylin.com/4697 Reviewed-by: Tomas Vanek <vanekt@fbl.cz> Tested-by: jenkins
Diffstat (limited to 'src/jtag')
-rw-r--r--src/jtag/drivers/cmsis_dap_usb.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/src/jtag/drivers/cmsis_dap_usb.c b/src/jtag/drivers/cmsis_dap_usb.c
index 4ee4836..9e723b5 100644
--- a/src/jtag/drivers/cmsis_dap_usb.c
+++ b/src/jtag/drivers/cmsis_dap_usb.c
@@ -895,9 +895,7 @@ static int cmsis_dap_init(void)
retval = cmsis_dap_swd_open();
if (retval != ERROR_OK)
return retval;
- }
-
- if (cmsis_dap_handle == NULL) {
+ } else {
/* Connect in JTAG mode */
if (!(cmsis_dap_handle->caps & INFO_CAPS_JTAG)) {
LOG_ERROR("CMSIS-DAP: JTAG not supported");