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 <efewell@ti.com>
Reviewed-on: http://openocd.zylin.com/5497
Tested-by: jenkins
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
This commit is contained in:
Edward Fewell 2020-03-06 14:39:14 -06:00 committed by Tomas Vanek
parent b5d2b1224f
commit a34c336cbf

View File

@ -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;
}