Browse Source

stlink: fix SWIM mode on stlink-v3

Commit 89f07325f2 ("stlink: Set speed before entering JTAG/SWD
mode") anticipates setting the adapter speed just before entering
in the JTAG/SWD mode. This to initiate the communication with the
speed selected by the user.
But SWIM doesn't allow setting the speed before entering in SWIM
mode. The resulting error causes OpenOCD to quit.
The problem only happens with stlink-v3, due to the different way
to set the adapter speed on different stlink versions.

Set the speed before entering in the mode only for JTAG and SWD
modes.

Change-Id: Iab42cd9d72ecfac14c7e17bae74e0dee2218b235
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Fixes: 89f07325f2 ("stlink: Set speed before entering JTAG/SWD mode")
Reviewed-on: https://review.openocd.org/c/openocd/+/6443
Tested-by: jenkins
Reviewed-by: Tarek BOCHKATI <tarek.bouchkati@gmail.com>
jim
Antonio Borneo 2 years ago
parent
commit
044e0f8c9a
1 changed files with 2 additions and 1 deletions
  1. +2
    -1
      src/jtag/drivers/stlink_usb.c

+ 2
- 1
src/jtag/drivers/stlink_usb.c View File

@@ -1626,7 +1626,8 @@ static int stlink_usb_init_mode(void *handle, bool connect_under_reset, int init
} }
} }


if (h->version.jtag_api == STLINK_JTAG_API_V3) {
if (h->version.jtag_api == STLINK_JTAG_API_V3 &&
(emode == STLINK_MODE_DEBUG_JTAG || emode == STLINK_MODE_DEBUG_SWD)) {
struct speed_map map[STLINK_V3_MAX_FREQ_NB]; struct speed_map map[STLINK_V3_MAX_FREQ_NB];


stlink_get_com_freq(h, (emode == STLINK_MODE_DEBUG_JTAG), map); stlink_get_com_freq(h, (emode == STLINK_MODE_DEBUG_JTAG), map);


Loading…
Cancel
Save