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
