diff options
author | Antonio Borneo <borneo.antonio@gmail.com> | 2018-06-23 15:12:46 +0200 |
---|---|---|
committer | Tomas Vanek <vanekt@fbl.cz> | 2018-07-03 07:27:14 +0100 |
commit | 91c125a906221481d7b9ee2c7e4588fbe6ade85c (patch) | |
tree | 70c5d6023d14578652c5bfb05e66ab038e3ee77d /src/jtag | |
parent | 8b8b66559d5fbfeb1dd408a1af17dc0be52b5a9f (diff) | |
download | riscv-openocd-91c125a906221481d7b9ee2c7e4588fbe6ade85c.zip riscv-openocd-91c125a906221481d7b9ee2c7e4588fbe6ade85c.tar.gz riscv-openocd-91c125a906221481d7b9ee2c7e4588fbe6ade85c.tar.bz2 |
jtag/drivers/cmsis-dap: fix connect in cmsis_dap_swd_switch_seq()
The proc cmsis_dap_swd_switch_seq() is part of the SWD API for
this interface driver. It is valid only when the interface is
used in SWD mode.
In this proc there is the need to call, in sequence, first
cmsis_dap_cmd_DAP_Disconnect() then cmsis_dap_cmd_DAP_Connect().
The latter call requires the connection mode as parameter, that
inside cmsis_dap_swd_switch_seq() can only be CONNECT_SWD.
The current implementation is not correct and in some cases can
pass mode CONNECT_JTAG. Moreover, JTAG is optional in CMSIS-DAP
and passing mode CONNECT_JTAG triggers an error with SWD-only
interfaces.
Use mode CONNECT_SWD in SWD specific cmsis_dap_swd_switch_seq().
Change-Id: Ib455bf5b69cb2a2d146a6c8875387b00c27a5690
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-on: http://openocd.zylin.com/4571
Tested-by: jenkins
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
Diffstat (limited to 'src/jtag')
-rw-r--r-- | src/jtag/drivers/cmsis_dap_usb.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/jtag/drivers/cmsis_dap_usb.c b/src/jtag/drivers/cmsis_dap_usb.c index b8181d6..6b010c1 100644 --- a/src/jtag/drivers/cmsis_dap_usb.c +++ b/src/jtag/drivers/cmsis_dap_usb.c @@ -802,8 +802,7 @@ static int cmsis_dap_swd_switch_seq(enum swd_special_seq seq) /* When we are reconnecting, DAP_Connect needs to be rerun, at * least on Keil ULINK-ME */ - retval = cmsis_dap_cmd_DAP_Connect(seq == LINE_RESET || seq == JTAG_TO_SWD ? - CONNECT_SWD : CONNECT_JTAG); + retval = cmsis_dap_cmd_DAP_Connect(CONNECT_SWD); if (retval != ERROR_OK) return retval; } |