This is an automated email from Gerrit.

Antonio Borneo (borneo.anto...@gmail.com) just uploaded a new patch set to 
Gerrit, which you can find at http://openocd.zylin.com/6443

-- gerrit

commit a6f31f0f53cd0ec649958cce07b1f2345a5c3690
Author: Antonio Borneo <borneo.anto...@gmail.com>
Date:   Thu Aug 19 16:07:21 2021 +0200

    stlink: fix SWIM mode on stlink-v3
    
    Commit 89f07325f2e7 ("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.anto...@gmail.com>
    Fixes: 89f07325f2e7 ("stlink: Set speed before entering JTAG/SWD mode")

diff --git a/src/jtag/drivers/stlink_usb.c b/src/jtag/drivers/stlink_usb.c
index 0e86dcd..2bbd03b 100644
--- a/src/jtag/drivers/stlink_usb.c
+++ b/src/jtag/drivers/stlink_usb.c
@@ -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];
 
                stlink_get_com_freq(h, (emode == STLINK_MODE_DEBUG_JTAG), map);

-- 

Reply via email to