summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorØyvind Harboe <oyvind.harboe@zylin.com>2010-03-22 08:27:03 +0100
committerØyvind Harboe <oyvind.harboe@zylin.com>2010-03-22 08:28:19 +0100
commit721502f1d3a0d506bc0e814926368fbedda60028 (patch)
treeb92116885daa6a7569f32a79c8727a31ff71c56d
parent4be9eded7f723af8fe755b1ef62469e87d1003bc (diff)
downloadopenocd+libswd-721502f1d3a0d506bc0e814926368fbedda60028.tar.gz
openocd+libswd-721502f1d3a0d506bc0e814926368fbedda60028.tar.bz2
openocd+libswd-721502f1d3a0d506bc0e814926368fbedda60028.tar.xz
openocd+libswd-721502f1d3a0d506bc0e814926368fbedda60028.zip
zy1000: fix optimisaion bug in dcc writes
Introduced & corrected since 0.4. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
-rw-r--r--src/jtag/zy1000/zy1000.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/src/jtag/zy1000/zy1000.c b/src/jtag/zy1000/zy1000.c
index 6f75e59b..b8abc894 100644
--- a/src/jtag/zy1000/zy1000.c
+++ b/src/jtag/zy1000/zy1000.c
@@ -828,23 +828,17 @@ void embeddedice_write_dcc(struct jtag_tap *tap, int reg_addr, uint8_t *buffer,
}
} else
{
- tap_state_t end_state = TAP_IDLE;
- tap_state_t shift_end_state = TAP_DRSHIFT;
- if (post_bits == 0)
- shift_end_state = end_state;
-
shiftValueInner(TAP_DRSHIFT, TAP_DRSHIFT, pre_bits, 0);
int i;
for (i = 0; i < count - 1; i++)
{
/* Fewer pokes means we get to use the FIFO more efficiently */
shiftValueInner(TAP_DRSHIFT, TAP_DRSHIFT, 32, fast_target_buffer_get_u32(buffer, little));
- shiftValueInner(TAP_DRSHIFT, shift_end_state, 6 + post_bits + pre_bits, (reg_addr | (1 << 5)));
+ shiftValueInner(TAP_DRSHIFT, TAP_IDLE, 6 + post_bits + pre_bits, (reg_addr | (1 << 5)));
buffer += 4;
}
shiftValueInner(TAP_DRSHIFT, TAP_DRSHIFT, 32, fast_target_buffer_get_u32(buffer, little));
- shiftValueInner(TAP_DRSHIFT, shift_end_state, 6, reg_addr | (1 << 5));
- shiftValueInner(shift_end_state, end_state, post_bits, 0);
+ shiftValueInner(TAP_DRSHIFT, TAP_IDLE, 6 + post_bits, (reg_addr | (1 << 5)));
}
}