This is an automated email from Gerrit.

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

-- gerrit

commit f6fa4ad88ccbe7cced1ceb29b11f9dcd552e6a99
Author: Patrick Stewart <[email protected]>
Date:   Wed Nov 5 16:37:11 2014 +0000

    SWD: Make connect_assert_srst work with SWD transport
    
    Modifies swd_init_reset() to respect connect_assert_srst, and also makes 
swd_init_reset() actually be called, similarly to jtag_init_reset().
    
    Change-Id: I6f236744dcf3540ec2acba5ba0608eac2b03b349
    Signed-off-by: Patrick Stewart <[email protected]>

diff --git a/src/jtag/core.c b/src/jtag/core.c
index f82b05e..51eec82 100644
--- a/src/jtag/core.c
+++ b/src/jtag/core.c
@@ -1510,7 +1510,16 @@ int swd_init_reset(struct command_context *cmd_ctx)
 
        if (jtag_reset_config & RESET_HAS_SRST)
                swd_add_reset(1);
-       swd_add_reset(0);
+
+       if (jtag_reset_config & RESET_CNCT_UNDER_SRST) {
+               if (!(jtag_reset_config & RESET_SRST_NO_GATING)) {
+                       LOG_WARNING("\'srst_nogate\' reset_config option is 
required");
+                       swd_add_reset(0);
+               }
+               /* Leave reset enabled*/
+       } else
+               swd_add_reset(0);
+
        retval = jtag_execute_queue();
        return retval;
 }
diff --git a/src/jtag/jtag.h b/src/jtag/jtag.h
index eda4ccd..9405055 100644
--- a/src/jtag/jtag.h
+++ b/src/jtag/jtag.h
@@ -647,5 +647,6 @@ void jtag_poll_set_enabled(bool value);
 bool transport_is_jtag(void);
 
 int jim_jtag_newtap(Jim_Interp *interp, int argc, Jim_Obj *const *argv);
+int jim_jtag_arp_init_reset(Jim_Interp *interp, int argc, Jim_Obj *const 
*argv);
 
 #endif /* JTAG_H */
diff --git a/src/jtag/startup.tcl b/src/jtag/startup.tcl
index 6f9c000..aaba978 100644
--- a/src/jtag/startup.tcl
+++ b/src/jtag/startup.tcl
@@ -23,6 +23,8 @@ proc jtag_init {} {
 proc init_reset { mode } {
        if {[using_jtag]} {
                jtag arp_init-reset
+       } elseif {[using_swd]} {
+               swd arp_init-reset
        }
 }
 
diff --git a/src/jtag/tcl.c b/src/jtag/tcl.c
index 11687b9..d240f98 100644
--- a/src/jtag/tcl.c
+++ b/src/jtag/tcl.c
@@ -679,7 +679,7 @@ static int jim_jtag_arp_init(Jim_Interp *interp, int argc, 
Jim_Obj *const *argv)
        return JIM_OK;
 }
 
-static int jim_jtag_arp_init_reset(Jim_Interp *interp, int argc, Jim_Obj 
*const *argv)
+int jim_jtag_arp_init_reset(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
 {
        int e = ERROR_OK;
        Jim_GetOptInfo goi;
diff --git a/src/target/adi_v5_swd.c b/src/target/adi_v5_swd.c
index 6e322fb..36ba91d 100644
--- a/src/target/adi_v5_swd.c
+++ b/src/target/adi_v5_swd.c
@@ -351,7 +351,13 @@ static const struct command_registration swd_commands[] = {
                .help = "display or update DAP's WCR register",
                .usage = "turnaround (1..4), prescale (0..7)",
        },
-
+       {
+               .name = "arp_init-reset",
+               .mode = COMMAND_ANY,
+               .jim_handler = jim_jtag_arp_init_reset,
+               .help = "Uses TRST and SRST to try resetting everything on "
+                               "the JTAG scan chain, then performs 'jtag 
arp_init'."
+       },
        /* REVISIT -- add a command for SWV trace on/off */
        COMMAND_REGISTRATION_DONE
 };

-- 

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

Reply via email to