This is an automated email from Gerrit.

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

-- gerrit

commit 612579687e1eab77405211dc71dde951f533ec1d
Author: Tomas Vanek <[email protected]>
Date:   Thu Nov 5 21:05:43 2015 +0100

    jtag: cmsis-dap: Issue disconnect before reconnecting
    
    cmsis-dap protocol has both DAP_Connect and DAP_Disconnect commands.
    Logically if cmsis_dap_swd_switch_seq() calls DAP_Connect in connected
    state it should call DAP_Disconnect first.
    
    Doing so surprisingly solves problems on Atmel EDBG with target SAMD/R/L/C.
    Without this change SWD communication breaks after reset run/halt
    in config "reset_config srst_only" and reconnect trials repeatedly
    fail with "SWD ack not OK: 0 JUNK"
    
    Change-Id: Ie951098d5e0c83f388e2df414608aaabec2135c9
    Signed-off-by: Tomas Vanek <[email protected]>

diff --git a/src/jtag/drivers/cmsis_dap_usb.c b/src/jtag/drivers/cmsis_dap_usb.c
index 38828ea..b3b9143 100644
--- a/src/jtag/drivers/cmsis_dap_usb.c
+++ b/src/jtag/drivers/cmsis_dap_usb.c
@@ -714,6 +714,9 @@ static int cmsis_dap_swd_switch_seq(struct adiv5_dap *dap, 
enum swd_special_seq
        unsigned int s_len;
        int retval;
 
+       /* First disconnect before connecting, Atmel EDBG needs it for 
SAMD/R/L/C */
+       cmsis_dap_cmd_DAP_Disconnect();
+
        /* 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 ?

-- 

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

Reply via email to