This is an automated email from Gerrit.

Antonio Borneo ([email protected]) just uploaded a new patch set to 
Gerrit, which you can find at http://openocd.zylin.com/4713

-- gerrit

commit b4e5537b5ee0e084fe93032f59ad5dcc8a154f35
Author: Antonio Borneo <[email protected]>
Date:   Mon Sep 24 15:26:40 2018 +0200

    stlink: remove reset pulse when entering in JTAG
    
    Until version J14 the behaviour of ST-Link was to send a reset
    pulse to the target when the debug connection is started in JTAG
    mode. No reset pulse is sent, instead, in SWD mode.
    Version J15 introduces a new parameter to avoid the reset pulse in
    JTAG mode, aligning the behaviour with SWD.
    
    This reset from the ST-Link, if propagated to the target, prevents
    attaching a running target.
    
    Actually this reset pulse is very short (few microsecond) and can
    be easily filtered out by an on-board capacitor, usually present
    on the reset wire (mainly to filter the bounces of the reset
    button). Moreover, most of the use cases for ST-Link are with SWD
    (not with JTAG) and this has probably further masked this JTAG
    specific behaviour.
    
    OpenOCD can tolerate it but requires the flag "connect_assert_srst"
    to the command "reset_config", but the flag is not present in any
    configurations in folder tcl. This enforces the guess it was not
    noticed due to on-board capacitors or missing connection of reset
    pin or ST-Link only used in SWD; so it's safe applying this patch.
    
    Change the default behaviour to avoid reset in JTAG at connection.
    There is no need to manage the ST-Link version here, since every
    parameter that is not recognized by older ST-Link is treated as
    "connect in JTAG with reset pulse", keeping backward compatibility.
    
    Change-Id: Idc97a1457279e3970fd0839cadbff22d9b0302d4
    Signed-off-by: Antonio Borneo <[email protected]>

diff --git a/src/jtag/drivers/stlink_usb.c b/src/jtag/drivers/stlink_usb.c
index 5c5fde9..f05ffad 100644
--- a/src/jtag/drivers/stlink_usb.c
+++ b/src/jtag/drivers/stlink_usb.c
@@ -205,7 +205,6 @@ struct stlink_usb_handle_s {
 #define STLINK_SWIM_READMEM                0x0b
 #define STLINK_SWIM_READBUF                0x0c
 
-#define STLINK_DEBUG_ENTER_JTAG            0x00
 #define STLINK_DEBUG_GETSTATUS             0x01
 #define STLINK_DEBUG_FORCEDEBUG            0x02
 #define STLINK_DEBUG_APIV1_RESETSYS        0x03
@@ -223,8 +222,9 @@ struct stlink_usb_handle_s {
 #define STLINK_DEBUG_APIV1_WRITEDEBUGREG   0x0f
 #define STLINK_DEBUG_APIV1_SETWATCHPOINT   0x10
 
-#define STLINK_DEBUG_ENTER_JTAG            0x00
-#define STLINK_DEBUG_ENTER_SWD             0xa3
+#define STLINK_DEBUG_ENTER_JTAG_RESET      0x00
+#define STLINK_DEBUG_ENTER_SWD_NO_RESET    0xa3
+#define STLINK_DEBUG_ENTER_JTAG_NO_RESET   0xa4
 
 #define STLINK_DEBUG_APIV1_ENTER           0x20
 #define STLINK_DEBUG_EXIT                  0x21
@@ -830,7 +830,7 @@ static int stlink_usb_mode_enter(void *handle, enum 
stlink_mode type)
                                h->cmdbuf[h->cmdidx++] = 
STLINK_DEBUG_APIV1_ENTER;
                        else
                                h->cmdbuf[h->cmdidx++] = 
STLINK_DEBUG_APIV2_ENTER;
-                       h->cmdbuf[h->cmdidx++] = STLINK_DEBUG_ENTER_JTAG;
+                       h->cmdbuf[h->cmdidx++] = 
STLINK_DEBUG_ENTER_JTAG_NO_RESET;
                        break;
                case STLINK_MODE_DEBUG_SWD:
                        h->cmdbuf[h->cmdidx++] = STLINK_DEBUG_COMMAND;
@@ -838,7 +838,7 @@ static int stlink_usb_mode_enter(void *handle, enum 
stlink_mode type)
                                h->cmdbuf[h->cmdidx++] = 
STLINK_DEBUG_APIV1_ENTER;
                        else
                                h->cmdbuf[h->cmdidx++] = 
STLINK_DEBUG_APIV2_ENTER;
-                       h->cmdbuf[h->cmdidx++] = STLINK_DEBUG_ENTER_SWD;
+                       h->cmdbuf[h->cmdidx++] = 
STLINK_DEBUG_ENTER_SWD_NO_RESET;
                        break;
                case STLINK_MODE_DEBUG_SWIM:
                        h->cmdbuf[h->cmdidx++] = STLINK_SWIM_COMMAND;

-- 


_______________________________________________
OpenOCD-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to