From: Edward Fewell Date: Fri, 6 Mar 2020 20:39:14 +0000 (-0600) Subject: drivers: xds110: Fix errors in routine that toggles X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=a34c336cbf7dbe3540cbce59a9b10e81c28fa32a;p=fw%2Fopenocd drivers: xds110: Fix errors in routine that toggles TCK during nSRST assert/deassert code. To support LPRF targets (CC13xx/CC26xx), TCK must be toggled for 50 ms while nSRST is asserted and right after it is released. This allows the core to halt in boot ROM before code is run that might interfere with debug access. The current routine has two issues. It shouldn't be run at all if the target is using SWD. And the delay needs to be a real-time 50 ms, so the number of TCK periods should be calculated off the set speed. Change-Id: If993031b84cf2a505ea67a6633602c4b01cd8e1e Signed-off-by: Edward Fewell Reviewed-on: http://openocd.zylin.com/5497 Tested-by: jenkins Reviewed-by: Tomas Vanek --- diff --git a/src/jtag/drivers/xds110.c b/src/jtag/drivers/xds110.c index 14bfe9c75..69d989520 100644 --- a/src/jtag/drivers/xds110.c +++ b/src/jtag/drivers/xds110.c @@ -1624,7 +1624,11 @@ static int xds110_reset(int trst, int srst) retval = ERROR_FAIL; /* Toggle TCK to trigger HIB on CC13x/CC26x devices */ - success = xds_cycle_tck(60000); + if (success && !xds110.is_swd_mode) { + /* Toggle TCK for about 50 ms */ + success = xds_cycle_tck(xds110.speed * 50); + } + if (!success) retval = ERROR_FAIL; }