if (presto->jtag_tck == 0)
{
- presto_sendbyte(0xA4);
- presto->jtag_tck = 1;
+ presto_sendbyte(0xA4); /* jtag activity */
+ presto->jtag_tck = 1; /* clock remains high after the function returns */
+ /* do just a single tick first, accelerated shifting needs TCK=1 */
}
-
else if (!tdo_req && tms == presto->jtag_tms)
{
if (presto->jtag_tdi_count == 0)
}
if (tdo_req)
- presto_sendbyte(0xD4 | cmdparam);
+ presto_sendbyte(0xD4|cmdparam);
else
presto_sendbyte(0xC4|cmdparam);
presto->jtag_tdi_count = 0;
}
- presto_sendbyte(0xCA);
- presto->jtag_tck = 0;
+ if (presto->jtag_tck == 1)
+ {
+ presto_sendbyte(0xCA);
+ presto->jtag_tck = 0;
+ }
presto_sendbyte(0xA0);
{
long waits;
+ if (presto->jtag_tck == 1)
+ {
+ presto_sendbyte(0xCA);
+ presto->jtag_tck = 0;
+ }
+
if (us > 100000)
{
presto_bitq_flush();
{
unsigned char cmd;
+ if (presto->jtag_tck == 1)
+ {
+ presto_sendbyte(0xCA);
+ presto->jtag_tck = 0;
+ }
+
cmd = 0xE8;
if (presto->jtag_tms)
cmd |= 0x04;