This patch is intended to collect feedback on a change to the JTAG API.
I do *not* intend to commit any of this until after a discussion & 0.2 release:
1. remove TAP_INVALID as a legal argument. The caller *must* provide
an end state.
2. deprecate jtag_add_end_state(). It is the calling code's responsibility
to figure out what the end state should be. Today this is handled
by a global variable, but the calling code can, in time, be converted to
handle this more cleanly.
Steps:
1. A patch like the attached one. Remove TAP_INVALID as a valid argument.
This should be a pretty safe change and have no effect whatsoever. Commit
it and wait a week or so for any fallout to be reported(inconceivable, but
I'm just being paranoid about this step). I will redo this patch against svn
head when it is time to implement step #1(it took 5 minutes to put together).
2. remove all code in jtag.c that assumes that TAP_INVALID can be passed
in as an argument. Commit & wait.
3. remove all code in interface drivers that assumes TAP_INVALID can be
passed in. Commit & wait.
4. rename jtag_add_end_state() to deprecated_add_end_state(). Commit & wait.
Done!
At this point the code is "littered" with usage of global variables. This usage
should be cleaned up in due course, but on a schedule that allows testing each
commit.
Comments?
--
Øyvind Harboe
Embedded software and hardware consulting services
http://consulting.zylin.com
Index: C:/workspace/openocd/src/flash/str9xpec.c
===================================================================
--- C:/workspace/openocd/src/flash/str9xpec.c (revision 1857)
+++ C:/workspace/openocd/src/flash/str9xpec.c (working copy)
@@ -572,7 +572,7 @@
- jtag_add_dr_scan(1, &field, TAP_INVALID);
+ jtag_add_dr_scan(1, &field, cmd_queue_end_state);
jtag_execute_queue();
} while(!(status & ISC_STATUS_BUSY));
@@ -658,7 +658,7 @@
- jtag_add_dr_scan(1, &field, TAP_INVALID);
+ jtag_add_dr_scan(1, &field, cmd_queue_end_state);
return ERROR_OK;
}
@@ -765,7 +765,7 @@
- jtag_add_dr_scan(1, &field, TAP_INVALID);
+ jtag_add_dr_scan(1, &field,
cmd_queue_end_state);
jtag_execute_queue();
status = buf_get_u32(scanbuf, 0, 8);
@@ -825,7 +825,7 @@
- jtag_add_dr_scan(1, &field, TAP_INVALID);
+ jtag_add_dr_scan(1, &field, cmd_queue_end_state);
jtag_execute_queue();
status = buf_get_u32(scanbuf, 0, 8);
@@ -1032,7 +1032,7 @@
- jtag_add_dr_scan(1, &field, TAP_INVALID);
+ jtag_add_dr_scan(1, &field, cmd_queue_end_state);
jtag_execute_queue();
} while(!(status & ISC_STATUS_BUSY));
Index: C:/workspace/openocd/src/jtag/jtag.h
===================================================================
--- C:/workspace/openocd/src/jtag/jtag.h (revision 1857)
+++ C:/workspace/openocd/src/jtag/jtag.h (working copy)
@@ -750,6 +750,12 @@
* approperiate
*/
extern int interface_jtag_add_reset(int trst, int srst);
+/* deprecated fn that sets cmd_queue_end_state=endstate.
+ * The goal is to do away with the use of cmd_queue_end_state
+ * global variable entirely.
+ *
+ * It is the responsibility of the application to take care of this.
+ */
extern void jtag_add_end_state(tap_state_t endstate);
extern int interface_jtag_add_end_state(tap_state_t endstate);
extern void jtag_add_sleep(u32 us);
Index: C:/workspace/openocd/src/target/arm11.h
===================================================================
--- C:/workspace/openocd/src/target/arm11.h (revision 1857)
+++ C:/workspace/openocd/src/target/arm11.h (working copy)
@@ -47,7 +47,7 @@
23 * ARM11_REGCACHE_MODEREGS +
\
9 * ARM11_REGCACHE_FREGS)
-#define ARM11_TAP_DEFAULT TAP_INVALID
+#define ARM11_TAP_DEFAULT cmd_queue_end_state
#define CHECK_RETVAL(action)
\
Index: C:/workspace/openocd/src/target/arm720t.c
===================================================================
--- C:/workspace/openocd/src/target/arm720t.c (revision 1857)
+++ C:/workspace/openocd/src/target/arm720t.c (working copy)
@@ -118,15 +118,15 @@
if (in)
{
fields[1].in_value = (u8 *)in;
- jtag_add_dr_scan(2, fields, TAP_INVALID);
+ jtag_add_dr_scan(2, fields, cmd_queue_end_state);
jtag_add_callback(arm7flip32, (u8 *)in);
} else
{
- jtag_add_dr_scan(2, fields, TAP_INVALID);
+ jtag_add_dr_scan(2, fields, cmd_queue_end_state);
}
if (clock)
- jtag_add_runtest(0, TAP_INVALID);
+ jtag_add_runtest(0, cmd_queue_end_state);
#ifdef _DEBUG_INSTRUCTION_EXECUTION_
if((retval = jtag_execute_queue()) != ERROR_OK)
Index: C:/workspace/openocd/src/target/arm7tdmi.c
===================================================================
--- C:/workspace/openocd/src/target/arm7tdmi.c (revision 1857)
+++ C:/workspace/openocd/src/target/arm7tdmi.c (working copy)
@@ -146,9 +146,9 @@
2,
arm7tdmi_num_bits,
values,
- TAP_INVALID);
+ cmd_queue_end_state);
- jtag_add_runtest(0, TAP_INVALID);
+ jtag_add_runtest(0, cmd_queue_end_state);
return ERROR_OK;
}
@@ -186,11 +186,11 @@
fields[1].out_value = NULL;
fields[1].in_value = (u8 *)in;
- jtag_add_dr_scan(2, fields, TAP_INVALID);
+ jtag_add_dr_scan(2, fields, cmd_queue_end_state);
jtag_add_callback(arm7flip32, (u8 *)in);
- jtag_add_runtest(0, TAP_INVALID);
+ jtag_add_runtest(0, cmd_queue_end_state);
#ifdef _DEBUG_INSTRUCTION_EXECUTION_
{
@@ -276,11 +276,11 @@
fields[1].out_value = NULL;
jtag_alloc_in_value32(&fields[1]);
- jtag_add_dr_scan(2, fields, TAP_INVALID);
+ jtag_add_dr_scan(2, fields, cmd_queue_end_state);
jtag_add_callback4(arm7endianness, in, (jtag_callback_data_t)size,
(jtag_callback_data_t)be, (jtag_callback_data_t)fields[1].in_value);
- jtag_add_runtest(0, TAP_INVALID);
+ jtag_add_runtest(0, cmd_queue_end_state);
#ifdef _DEBUG_INSTRUCTION_EXECUTION_
{
Index: C:/workspace/openocd/src/target/arm920t.c
===================================================================
--- C:/workspace/openocd/src/target/arm920t.c (revision 1857)
+++ C:/workspace/openocd/src/target/arm920t.c (working copy)
@@ -126,11 +126,11 @@
fields[3].out_value = &nr_w_buf;
fields[3].in_value = NULL;
- jtag_add_dr_scan(4, fields, TAP_INVALID);
+ jtag_add_dr_scan(4, fields, cmd_queue_end_state);
fields[1].in_value = (u8 *)value;
- jtag_add_dr_scan(4, fields, TAP_INVALID);
+ jtag_add_dr_scan(4, fields, cmd_queue_end_state);
jtag_add_callback(arm_le_to_h_u32, (u8 *)value);
@@ -179,7 +179,7 @@
fields[3].out_value = &nr_w_buf;
fields[3].in_value = NULL;
- jtag_add_dr_scan(4, fields, TAP_INVALID);
+ jtag_add_dr_scan(4, fields, cmd_queue_end_state);
#ifdef _DEBUG_INSTRUCTION_EXECUTION_
LOG_DEBUG("addr: 0x%x value: %8.8x", reg_addr, value);
@@ -226,7 +226,7 @@
fields[3].out_value = &nr_w_buf;
fields[3].in_value = NULL;
- jtag_add_dr_scan(4, fields, TAP_INVALID);
+ jtag_add_dr_scan(4, fields, cmd_queue_end_state);
arm9tdmi_clock_out(jtag_info, arm_opcode, 0, NULL, 0);
arm9tdmi_clock_out(jtag_info, ARMV4_5_NOP, 0, NULL, 1);
Index: C:/workspace/openocd/src/target/arm926ejs.c
===================================================================
--- C:/workspace/openocd/src/target/arm926ejs.c (revision 1857)
+++ C:/workspace/openocd/src/target/arm926ejs.c (working copy)
@@ -156,7 +156,7 @@
fields[3].out_value = &nr_w_buf;
fields[3].in_value = NULL;
- jtag_add_dr_scan(4, fields, TAP_INVALID);
+ jtag_add_dr_scan(4, fields, cmd_queue_end_state);
/*TODO: add timeout*/
do
@@ -164,7 +164,7 @@
/* rescan with NOP, to wait for the access to complete */
access = 0;
nr_w_buf = 0;
- jtag_add_dr_scan(4, fields, TAP_INVALID);
+ jtag_add_dr_scan(4, fields, cmd_queue_end_state);
jtag_add_callback(arm_le_to_h_u32, (u8 *)value);
@@ -226,7 +226,7 @@
fields[3].out_value = &nr_w_buf;
fields[3].in_value = NULL;
- jtag_add_dr_scan(4, fields, TAP_INVALID);
+ jtag_add_dr_scan(4, fields, cmd_queue_end_state);
/*TODO: add timeout*/
do
{
@@ -233,7 +233,7 @@
/* rescan with NOP, to wait for the access to complete */
access = 0;
nr_w_buf = 0;
- jtag_add_dr_scan(4, fields, TAP_INVALID);
+ jtag_add_dr_scan(4, fields, cmd_queue_end_state);
if ((retval = jtag_execute_queue()) != ERROR_OK)
{
return retval;
Index: C:/workspace/openocd/src/target/arm966e.c
===================================================================
--- C:/workspace/openocd/src/target/arm966e.c (revision 1857)
+++ C:/workspace/openocd/src/target/arm966e.c (working copy)
@@ -188,11 +188,11 @@
fields[2].out_value = &nr_w_buf;
fields[2].in_value = NULL;
- jtag_add_dr_scan(3, fields, TAP_INVALID);
+ jtag_add_dr_scan(3, fields, cmd_queue_end_state);
fields[1].in_value = (u8 *)value;
- jtag_add_dr_scan(3, fields, TAP_INVALID);
+ jtag_add_dr_scan(3, fields, cmd_queue_end_state);
jtag_add_callback(arm_le_to_h_u32, (u8 *)value);
@@ -243,7 +243,7 @@
fields[2].out_value = &nr_w_buf;
fields[2].in_value = NULL;
- jtag_add_dr_scan(3, fields, TAP_INVALID);
+ jtag_add_dr_scan(3, fields, cmd_queue_end_state);
#ifdef _DEBUG_INSTRUCTION_EXECUTION_
LOG_DEBUG("addr: 0x%x value: %8.8x", reg_addr, value);
Index: C:/workspace/openocd/src/target/arm9tdmi.c
===================================================================
--- C:/workspace/openocd/src/target/arm9tdmi.c (revision 1857)
+++ C:/workspace/openocd/src/target/arm9tdmi.c (working copy)
@@ -203,7 +203,7 @@
if (in)
{
fields[0].in_value=(u8 *)in;
- jtag_add_dr_scan(3, fields, TAP_INVALID);
+ jtag_add_dr_scan(3, fields, cmd_queue_end_state);
jtag_add_callback(arm_le_to_h_u32, (u8 *)in);
}
@@ -209,10 +209,10 @@
}
else
{
- jtag_add_dr_scan(3, fields, TAP_INVALID);
+ jtag_add_dr_scan(3, fields, cmd_queue_end_state);
}
- jtag_add_runtest(0, TAP_INVALID);
+ jtag_add_runtest(0, cmd_queue_end_state);
#ifdef _DEBUG_INSTRUCTION_EXECUTION_
{
@@ -262,11 +262,11 @@
fields[2].out_value = NULL;
fields[2].in_value = NULL;
- jtag_add_dr_scan(3, fields, TAP_INVALID);
+ jtag_add_dr_scan(3, fields, cmd_queue_end_state);
jtag_add_callback(arm_le_to_h_u32, (u8 *)in);
- jtag_add_runtest(0, TAP_INVALID);
+ jtag_add_runtest(0, cmd_queue_end_state);
#ifdef _DEBUG_INSTRUCTION_EXECUTION_
{
@@ -329,11 +329,11 @@
fields[2].out_value = NULL;
fields[2].in_value = NULL;
- jtag_add_dr_scan(3, fields, TAP_INVALID);
+ jtag_add_dr_scan(3, fields, cmd_queue_end_state);
jtag_add_callback4(arm9endianness, in, (jtag_callback_data_t)size,
(jtag_callback_data_t)be, (jtag_callback_data_t)fields[0].in_value);
- jtag_add_runtest(0, TAP_INVALID);
+ jtag_add_runtest(0, cmd_queue_end_state);
#ifdef _DEBUG_INSTRUCTION_EXECUTION_
{
Index: C:/workspace/openocd/src/target/arm_adi_v5.c
===================================================================
--- C:/workspace/openocd/src/target/arm_adi_v5.c (revision 1857)
+++ C:/workspace/openocd/src/target/arm_adi_v5.c (working copy)
@@ -88,7 +88,7 @@
- jtag_add_dr_scan(2, fields, TAP_INVALID);
+ jtag_add_dr_scan(2, fields, cmd_queue_end_state);
return ERROR_OK;
}
@@ -121,7 +121,7 @@
if (invalue)
{
fields[1].in_value = (u8 *)invalue;
- jtag_add_dr_scan(2, fields, TAP_INVALID);
+ jtag_add_dr_scan(2, fields, cmd_queue_end_state);
jtag_add_callback(arm_le_to_h_u32, (u8 *)invalue);
} else
@@ -127,7 +127,7 @@
} else
{
- jtag_add_dr_scan(2, fields, TAP_INVALID);
+ jtag_add_dr_scan(2, fields, cmd_queue_end_state);
}
return ERROR_OK;
Index: C:/workspace/openocd/src/target/arm_jtag.c
===================================================================
--- C:/workspace/openocd/src/target/arm_jtag.c (revision 1857)
+++ C:/workspace/openocd/src/target/arm_jtag.c (working copy)
@@ -53,7 +53,7 @@
if (no_verify_capture==NULL)
{
- jtag_add_ir_scan(1, &field, TAP_INVALID);
+ jtag_add_ir_scan(1, &field, cmd_queue_end_state);
} else
{
/* FIX!!!! this is a kludge!!! arm926ejs.c should
reimplement this arm_jtag_set_instr to
@@ -59,7 +59,7 @@
/* FIX!!!! this is a kludge!!! arm926ejs.c should
reimplement this arm_jtag_set_instr to
* have special verification code.
*/
- jtag_add_ir_scan_noverify(1, &field, TAP_INVALID);
+ jtag_add_ir_scan_noverify(1, &field,
cmd_queue_end_state);
}
}
@@ -86,7 +86,7 @@
1,
num_bits,
values,
- TAP_INVALID);
+ cmd_queue_end_state);
jtag_info->cur_scan_chain = new_scan_chain;
}
Index: C:/workspace/openocd/src/target/embeddedice.c
===================================================================
--- C:/workspace/openocd/src/target/embeddedice.c (revision 1857)
+++ C:/workspace/openocd/src/target/embeddedice.c (working copy)
@@ -259,7 +259,7 @@
fields[2].check_value = NULL;
fields[2].check_mask = NULL;
- jtag_add_dr_scan(3, fields, TAP_INVALID);
+ jtag_add_dr_scan(3, fields, cmd_queue_end_state);
fields[0].in_value = reg->value;
fields[0].check_value = check_value;
@@ -271,7 +271,7 @@
*/
buf_set_u32(fields[1].out_value, 0, 5,
embeddedice_reg_arch_info[EICE_COMMS_CTRL]);
- jtag_add_dr_scan_check(3, fields, TAP_INVALID);
+ jtag_add_dr_scan_check(3, fields, cmd_queue_end_state);
return ERROR_OK;
}
@@ -307,7 +307,7 @@
buf_set_u32(fields[2].out_value, 0, 1, 0);
fields[2].in_value = NULL;
- jtag_add_dr_scan(3, fields, TAP_INVALID);
+ jtag_add_dr_scan(3, fields, cmd_queue_end_state);
while (size > 0)
{
@@ -318,7 +318,7 @@
buf_set_u32(fields[1].out_value, 0, 5,
embeddedice_reg_arch_info[EICE_COMMS_CTRL]);
fields[0].in_value = (u8 *)data;
- jtag_add_dr_scan(3, fields, TAP_INVALID);
+ jtag_add_dr_scan(3, fields, cmd_queue_end_state);
jtag_add_callback(arm_le_to_h_u32, (u8 *)data);
data++;
@@ -413,7 +413,7 @@
while (size > 0)
{
buf_set_u32(fields[0].out_value, 0, 32, *data);
- jtag_add_dr_scan(3, fields, TAP_INVALID);
+ jtag_add_dr_scan(3, fields, cmd_queue_end_state);
data++;
size--;
@@ -464,11 +464,11 @@
buf_set_u32(fields[2].out_value, 0, 1, 0);
fields[2].in_value = NULL;
- jtag_add_dr_scan(3, fields, TAP_INVALID);
+ jtag_add_dr_scan(3, fields, cmd_queue_end_state);
gettimeofday(&lap, NULL);
do
{
- jtag_add_dr_scan(3, fields, TAP_INVALID);
+ jtag_add_dr_scan(3, fields, cmd_queue_end_state);
if ((retval = jtag_execute_queue()) != ERROR_OK)
return retval;
Index: C:/workspace/openocd/src/target/embeddedice.h
===================================================================
--- C:/workspace/openocd/src/target/embeddedice.h (revision 1857)
+++ C:/workspace/openocd/src/target/embeddedice.h (working copy)
@@ -121,7 +121,7 @@
3,
embeddedice_num_bits,
values,
- TAP_INVALID);
+ cmd_queue_end_state);
}
void embeddedice_write_dcc(jtag_tap_t *tap, int reg_addr, u8 *buffer, int
little, int count);
Index: C:/workspace/openocd/src/target/etb.c
===================================================================
--- C:/workspace/openocd/src/target/etb.c (revision 1857)
+++ C:/workspace/openocd/src/target/etb.c (working copy)
@@ -63,7 +63,7 @@
field.in_value = NULL;
- jtag_add_ir_scan(1, &field, TAP_INVALID);
+ jtag_add_ir_scan(1, &field, cmd_queue_end_state);
free(field.out_value);
}
@@ -86,7 +86,7 @@
/* select INTEST instruction */
etb_set_instr(etb, 0x2);
- jtag_add_dr_scan(1, &field, TAP_INVALID);
+ jtag_add_dr_scan(1, &field, cmd_queue_end_state);
etb->cur_scan_chain = new_scan_chain;
@@ -190,7 +190,7 @@
buf_set_u32(fields[2].out_value, 0, 1, 0);
fields[2].in_value = NULL;
- jtag_add_dr_scan(3, fields, TAP_INVALID);
+ jtag_add_dr_scan(3, fields, cmd_queue_end_state);
for (i = 0; i < num_frames; i++)
{
@@ -204,7 +204,7 @@
buf_set_u32(fields[1].out_value, 0, 7, 0);
fields[0].in_value = (u8 *)(data+i);
- jtag_add_dr_scan(3, fields, TAP_INVALID);
+ jtag_add_dr_scan(3, fields, cmd_queue_end_state);
jtag_add_callback(etb_getbuf, (u8 *)(data+i));
}
@@ -252,7 +252,7 @@
fields[2].check_value = NULL;
fields[2].check_mask = NULL;
- jtag_add_dr_scan(3, fields, TAP_INVALID);
+ jtag_add_dr_scan(3, fields, cmd_queue_end_state);
/* read the identification register in the second run, to make sure we
* don't read the ETB data register twice, skipping every second entry
@@ -262,7 +262,7 @@
fields[0].check_value = check_value;
fields[0].check_mask = check_mask;
- jtag_add_dr_scan_check(3, fields, TAP_INVALID);
+ jtag_add_dr_scan_check(3, fields, cmd_queue_end_state);
free(fields[1].out_value);
free(fields[2].out_value);
Index: C:/workspace/openocd/src/target/etm.c
===================================================================
--- C:/workspace/openocd/src/target/etm.c (revision 1857)
+++ C:/workspace/openocd/src/target/etm.c (working copy)
@@ -347,7 +347,7 @@
fields[2].check_value = NULL;
fields[2].check_mask = NULL;
- jtag_add_dr_scan(3, fields, TAP_INVALID);
+ jtag_add_dr_scan(3, fields, cmd_queue_end_state);
fields[0].in_value = reg->value;
fields[0].check_value = check_value;
@@ -353,7 +353,7 @@
fields[0].check_value = check_value;
fields[0].check_mask = check_mask;
- jtag_add_dr_scan_check(3, fields, TAP_INVALID);
+ jtag_add_dr_scan_check(3, fields, cmd_queue_end_state);
free(fields[1].out_value);
free(fields[2].out_value);
@@ -430,7 +430,7 @@
buf_set_u32(fields[2].out_value, 0, 1, 1);
fields[2].in_value = NULL;
- jtag_add_dr_scan(3, fields, TAP_INVALID);
+ jtag_add_dr_scan(3, fields, cmd_queue_end_state);
return ERROR_OK;
}
Index: C:/workspace/openocd/src/target/feroceon.c
===================================================================
--- C:/workspace/openocd/src/target/feroceon.c (revision 1857)
+++ C:/workspace/openocd/src/target/feroceon.c (working copy)
@@ -158,9 +158,9 @@
- jtag_add_dr_scan(3, fields, TAP_INVALID);
+ jtag_add_dr_scan(3, fields, cmd_queue_end_state);
- /* no jtag_add_runtest(0, TAP_INVALID) here */
+ /* no jtag_add_runtest(0, cmd_queue_end_state) here */
return ERROR_OK;
}
Index: C:/workspace/openocd/src/target/mips_ejtag.c
===================================================================
--- C:/workspace/openocd/src/target/mips_ejtag.c (revision 1857)
+++ C:/workspace/openocd/src/target/mips_ejtag.c (working copy)
@@ -50,7 +50,7 @@
- jtag_add_ir_scan(1, &field, TAP_INVALID);
+ jtag_add_ir_scan(1, &field, cmd_queue_end_state);
}
return ERROR_OK;
@@ -73,7 +73,7 @@
- jtag_add_dr_scan(1, &field, TAP_INVALID);
+ jtag_add_dr_scan(1, &field, cmd_queue_end_state);
if (jtag_execute_queue() != ERROR_OK)
{
@@ -100,7 +100,7 @@
- jtag_add_dr_scan(1, &field, TAP_INVALID);
+ jtag_add_dr_scan(1, &field, cmd_queue_end_state);
if (jtag_execute_queue() != ERROR_OK)
{
@@ -131,7 +131,7 @@
- jtag_add_dr_scan(1, &field, TAP_INVALID);
+ jtag_add_dr_scan(1, &field, cmd_queue_end_state);
if ((retval = jtag_execute_queue()) != ERROR_OK)
{
Index: C:/workspace/openocd/src/target/xscale.c
===================================================================
--- C:/workspace/openocd/src/target/xscale.c (revision 1857)
+++ C:/workspace/openocd/src/target/xscale.c (working copy)
@@ -211,7 +211,7 @@
u8 tmp[4];
field.in_value = tmp;
- jtag_add_ir_scan(1, &field, TAP_INVALID);
+ jtag_add_ir_scan(1, &field, cmd_queue_end_state);
/* FIX!!!! isn't this check superfluous? verify_ircapture
handles this? */
jtag_check_value_mask(&field, tap->expected,
tap->expected_mask);
@@ -261,7 +261,7 @@
u8 tmp2;
fields[2].in_value = &tmp2;
- jtag_add_dr_scan(3, fields, TAP_INVALID);
+ jtag_add_dr_scan(3, fields, cmd_queue_end_state);
jtag_check_value_mask(fields+0, &field0_check_value,
&field0_check_mask);
jtag_check_value_mask(fields+2, &field2_check_value,
&field2_check_mask);
@@ -284,7 +284,7 @@
jtag_add_end_state(TAP_IDLE);
- jtag_add_dr_scan(3, fields, TAP_INVALID);
+ jtag_add_dr_scan(3, fields, cmd_queue_end_state);
/* DANGER!!! this must be here. It will make sure that the arguments
* to jtag_set_check_value() does not go out of scope! */
@@ -346,7 +346,7 @@
jtag_add_end_state(TAP_IDLE);
xscale_jtag_set_instr(xscale->jtag_info.tap, xscale->jtag_info.dbgtx);
- jtag_add_runtest(1, TAP_INVALID); /* ensures that we're in the TAP_IDLE
state as the above could be a no-op */
+ jtag_add_runtest(1, cmd_queue_end_state); /* ensures that we're in the
TAP_IDLE state as the above could be a no-op */
/* repeat until all words have been collected */
int attempts=0;
@@ -724,7 +724,7 @@
u8 tmp2;
fields[2].in_value = &tmp2;
- jtag_add_dr_scan(3, fields, TAP_INVALID);
+ jtag_add_dr_scan(3, fields, cmd_queue_end_state);
jtag_check_value_mask(fields+0, &field0_check_value,
&field0_check_mask);
jtag_check_value_mask(fields+2, &field2_check_value,
&field2_check_mask);
@@ -799,7 +799,7 @@
- jtag_add_dr_scan(2, fields, TAP_INVALID);
+ jtag_add_dr_scan(2, fields, cmd_queue_end_state);
fields[0].num_bits = 32;
fields[0].out_value = packet;
@@ -815,7 +815,7 @@
memcpy(&value, packet, sizeof(u32));
cmd = parity(value);
- jtag_add_dr_scan(2, fields, TAP_INVALID);
+ jtag_add_dr_scan(2, fields, cmd_queue_end_state);
}
jtag_execute_queue();
@@ -861,7 +861,7 @@
- jtag_add_dr_scan(2, fields, TAP_INVALID);
+ jtag_add_dr_scan(2, fields, cmd_queue_end_state);
return ERROR_OK;
}
_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development