summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/jtag/ft2232.c33
1 files changed, 18 insertions, 15 deletions
diff --git a/src/jtag/ft2232.c b/src/jtag/ft2232.c
index 10fa1b42..9265b436 100644
--- a/src/jtag/ft2232.c
+++ b/src/jtag/ft2232.c
@@ -773,11 +773,9 @@ static void ft2232_add_pathmove(tap_state_t* path, int num_states)
/* this loop verifies that the path is legal and logs each state in the path */
while (num_states)
{
- unsigned char tms_byte = 0; /* zero this on each MPSSE batch */
-
- int bit_count = 0;
-
- int num_states_batch = num_states > 7 ? 7 : num_states;
+ unsigned char tms_byte = 0; /* zero this on each MPSSE batch */
+ int bit_count = 0;
+ int num_states_batch = num_states > 7 ? 7 : num_states;
/* command "Clock Data to TMS/CS Pin (no Read)" */
buffer_write(0x4b);
@@ -785,26 +783,31 @@ static void ft2232_add_pathmove(tap_state_t* path, int num_states)
/* number of states remaining */
buffer_write(num_states_batch - 1);
- while (num_states_batch--)
- {
- if (tap_state_transition(tap_get_state(), false) == path[state_count])
+ while (num_states_batch--) {
+ /* either TMS=0 or TMS=1 must work ... */
+ if (tap_state_transition(tap_get_state(), false)
+ == path[state_count])
buf_set_u32(&tms_byte, bit_count++, 1, 0x0);
- else if (tap_state_transition(tap_get_state(), true) == path[state_count])
+ else if (tap_state_transition(tap_get_state(), true)
+ == path[state_count])
buf_set_u32(&tms_byte, bit_count++, 1, 0x1);
- else
- {
- LOG_ERROR( "BUG: %s -> %s isn't a valid TAP transition", tap_state_name(
- tap_get_state() ), tap_state_name(path[state_count]) );
+
+ /* ... or else the caller goofed BADLY */
+ else {
+ LOG_ERROR("BUG: %s -> %s isn't a valid "
+ "TAP state transition",
+ tap_state_name(tap_get_state()),
+ tap_state_name(path[state_count]));
exit(-1);
}
- tap_set_state(path[state_count]);
+ tap_set_state(path[state_count]);
state_count++;
num_states--;
}
buffer_write(tms_byte);
- }
+ }
tap_set_end_state(tap_get_state());
}