|
From: oharboe at B. <oh...@ma...> - 2009-04-22 15:54:04
|
Author: oharboe
Date: 2009-04-22 15:54:04 +0200 (Wed, 22 Apr 2009)
New Revision: 1509
Modified:
trunk/src/jtag/jlink.c
Log:
Zach Welch <zw...@su...> do not pad TMS
Modified: trunk/src/jtag/jlink.c
===================================================================
--- trunk/src/jtag/jlink.c 2009-04-22 11:37:27 UTC (rev 1508)
+++ trunk/src/jtag/jlink.c 2009-04-22 13:54:04 UTC (rev 1509)
@@ -623,6 +623,10 @@
int bit_index = tap_length % 8;
u8 bit = 1 << bit_index;
+ // we do not pad TMS, so be sure to initialize all bits
+ if (0 == bit_index)
+ tms_buffer[index] = tdi_buffer[index] = 0;
+
if (tms)
tms_buffer[index] |= bit;
else
@@ -669,16 +673,9 @@
if (!tap_length)
return ERROR_OK;
- /* Pad last byte so that tap_length is divisible by 8 */
- while (tap_length % 8 != 0)
- {
- /* More of the last TMS value keeps us in the same state,
- * analogous to free-running JTAG interfaces. */
- jlink_tap_append_step(last_tms, 0);
- }
+ // number of full bytes (plus one if some would be left over)
+ byte_length = tap_length / 8 + !!(tap_length % 8);
- byte_length = tap_length / 8;
-
usb_out_buffer[0] = EMU_CMD_HW_JTAG3;
usb_out_buffer[1] = 0;
usb_out_buffer[2] = (tap_length >> 0) & 0xff;
|