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

Reply via email to