X-Git-Url: https://review.openocd.org/gitweb?a=blobdiff_plain;f=src%2Ftarget%2Fadi_v5_swd.c;h=41ddbd7895698aae256955a04993d1702c30a2e3;hb=03942f867a0de1eff13828e15b9798a1e589b169;hp=d1a4870334ad9770e74323be5cfebd1f9781ca3d;hpb=150b7d26f213398d717bf46744811b48834a3744;p=openocd.git diff --git a/src/target/adi_v5_swd.c b/src/target/adi_v5_swd.c index d1a4870334..41ddbd7895 100644 --- a/src/target/adi_v5_swd.c +++ b/src/target/adi_v5_swd.c @@ -13,9 +13,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * along with this program. If not, see . ***************************************************************************/ /** @@ -109,6 +107,18 @@ static int swd_connect(struct adiv5_dap *dap) * MUST READ DPIDR */ + /* Check if we should reset srst already when connecting, but not if reconnecting. */ + if (!dap->do_reconnect) { + enum reset_types jtag_reset_config = jtag_get_reset_config(); + + if (jtag_reset_config & RESET_CNCT_UNDER_SRST) { + if (jtag_reset_config & RESET_SRST_NO_GATING) + swd_add_reset(1); + else + LOG_WARNING("\'srst_nogate\' reset_config option is required"); + } + } + /* Note, debugport_init() does setup too */ jtag_interface->swd->switch_seq(JTAG_TO_SWD); @@ -414,6 +424,8 @@ static int swd_init(struct command_context *ctx) /* Force the DAP's ops vector for SWD mode. * messy - is there a better way? */ arm->dap->ops = &swd_dap_ops; + /* First connect after init is not reconnecting. */ + dap->do_reconnect = false; return swd_connect(dap); }