]> git.sur5r.net Git - openocd/commitdiff
- added patch to fix brocken STR9 line
authormifi <mifi@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Tue, 22 Jan 2008 17:54:56 +0000 (17:54 +0000)
committermifi <mifi@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Tue, 22 Jan 2008 17:54:56 +0000 (17:54 +0000)
(thanks to oyvind Harboe for the patch)

git-svn-id: svn://svn.berlios.de/openocd/trunk@273 b42882b7-edfa-0310-969c-e2dbd0fdcd60

src/jtag/jtag.c

index 2d3d8c54bda904abd83d206da95b3e2d4bb05780..c205d83744a1f8224d5cb200b5e46b785962194c 100644 (file)
@@ -425,16 +425,7 @@ int jtag_add_ir_scan(int num_fields, scan_field_t *fields, enum tap_state state,
                (*last_cmd)->cmd.scan->fields[i].device = i;
                (*last_cmd)->cmd.scan->fields[i].num_bits = scan_size;
                (*last_cmd)->cmd.scan->fields[i].in_value = NULL;
-               if ((jtag_verify_capture_ir)&&(fields[i].in_handler==NULL))
-               {
-                       jtag_set_check_value((*last_cmd)->cmd.scan->fields+i, device->expected, device->expected_mask, NULL);
-               } else if (jtag_verify_capture_ir)
-               {
-                       (*last_cmd)->cmd.scan->fields[i].in_handler = fields[i].in_handler;
-                       (*last_cmd)->cmd.scan->fields[i].in_handler_priv = fields[i].in_handler_priv;
-                       (*last_cmd)->cmd.scan->fields[i].in_check_value = device->expected; 
-                       (*last_cmd)->cmd.scan->fields[i].in_check_mask = device->expected_mask;
-               }
+               (*last_cmd)->cmd.scan->fields[i].in_handler = NULL;     /* disable verification by default */
 
                /* search the list */
                for (j = 0; j < num_fields; j++)
@@ -444,6 +435,20 @@ int jtag_add_ir_scan(int num_fields, scan_field_t *fields, enum tap_state state,
                                found = 1;
                                (*last_cmd)->cmd.scan->fields[i].out_value = buf_cpy(fields[j].out_value, cmd_queue_alloc(CEIL(scan_size, 8)), scan_size);
                                (*last_cmd)->cmd.scan->fields[i].out_mask = buf_cpy(fields[j].out_mask, cmd_queue_alloc(CEIL(scan_size, 8)), scan_size);
+                       
+                               if (jtag_verify_capture_ir)
+                               {
+                                       if (fields[j].in_handler==NULL)
+                                       {
+                                               jtag_set_check_value((*last_cmd)->cmd.scan->fields+i, device->expected, device->expected_mask, NULL);
+                                       } else
+                                       {
+                                               (*last_cmd)->cmd.scan->fields[i].in_handler = fields[j].in_handler;
+                                               (*last_cmd)->cmd.scan->fields[i].in_handler_priv = fields[j].in_handler_priv;
+                                               (*last_cmd)->cmd.scan->fields[i].in_check_value = device->expected; 
+                                               (*last_cmd)->cmd.scan->fields[i].in_check_mask = device->expected_mask;
+                                       }
+                               }
                                
                                device->bypass = 0;
                                break;