summaryrefslogtreecommitdiff
path: root/src/jtag
diff options
context:
space:
mode:
authormifi <mifi@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-01-22 17:54:56 +0000
committermifi <mifi@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-01-22 17:54:56 +0000
commit06f33996e87f6fddb241b2d6ebde552619440adc (patch)
tree3990e5512b218f91fdf9700867a121b4922d2adc /src/jtag
parent7d9e292751f4d71ced3253e04a3737efe2c8207d (diff)
downloadopenocd+libswd-06f33996e87f6fddb241b2d6ebde552619440adc.tar.gz
openocd+libswd-06f33996e87f6fddb241b2d6ebde552619440adc.tar.bz2
openocd+libswd-06f33996e87f6fddb241b2d6ebde552619440adc.tar.xz
openocd+libswd-06f33996e87f6fddb241b2d6ebde552619440adc.zip
- added patch to fix brocken STR9 line
(thanks to oyvind Harboe for the patch) git-svn-id: svn://svn.berlios.de/openocd/trunk@273 b42882b7-edfa-0310-969c-e2dbd0fdcd60
Diffstat (limited to 'src/jtag')
-rw-r--r--src/jtag/jtag.c25
1 files changed, 15 insertions, 10 deletions
diff --git a/src/jtag/jtag.c b/src/jtag/jtag.c
index 2d3d8c54..c205d837 100644
--- a/src/jtag/jtag.c
+++ b/src/jtag/jtag.c
@@ -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;