Improve jtag_validate_ircapture() diagnostics.
Bugfix the error message so it shows the disliked value, and add a debug message showing each TAP's IR capture value, all N bits. This just changes diagnostics ... it still ignores the parameters given to us at TAP declaration time. git-svn-id: svn://svn.berlios.de/openocd/trunk@2801 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
parent
7c7467b34f
commit
7a57c31619
|
@ -1068,6 +1068,7 @@ static int jtag_validate_ircapture(void)
|
||||||
int total_ir_length = 0;
|
int total_ir_length = 0;
|
||||||
uint8_t *ir_test = NULL;
|
uint8_t *ir_test = NULL;
|
||||||
scan_field_t field;
|
scan_field_t field;
|
||||||
|
int val;
|
||||||
int chain_pos = 0;
|
int chain_pos = 0;
|
||||||
int retval;
|
int retval;
|
||||||
|
|
||||||
|
@ -1100,7 +1101,7 @@ static int jtag_validate_ircapture(void)
|
||||||
|
|
||||||
tap = NULL;
|
tap = NULL;
|
||||||
chain_pos = 0;
|
chain_pos = 0;
|
||||||
int val;
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
tap = jtag_tap_next_enabled(tap);
|
tap = jtag_tap_next_enabled(tap);
|
||||||
if (tap == NULL) {
|
if (tap == NULL) {
|
||||||
|
@ -1111,17 +1112,18 @@ static int jtag_validate_ircapture(void)
|
||||||
* REVISIT we might be able to verify some MSBs too, using
|
* REVISIT we might be able to verify some MSBs too, using
|
||||||
* ircapture/irmask attributes.
|
* ircapture/irmask attributes.
|
||||||
*/
|
*/
|
||||||
val = buf_get_u32(ir_test, chain_pos, 2);
|
val = buf_get_u32(ir_test, chain_pos, tap->ir_length);
|
||||||
if (val != 1) {
|
if ((val & 0x3) != 1) {
|
||||||
char *cbuf = buf_to_str(ir_test, total_ir_length, 16);
|
LOG_ERROR("%s: IR capture error; saw 0x%0*x not 0x..1",
|
||||||
|
jtag_tap_name(tap),
|
||||||
|
(tap->ir_length + 7) / tap->ir_length,
|
||||||
|
val);
|
||||||
|
|
||||||
LOG_ERROR("%s: IR capture error; saw 0x%s not 0x..1",
|
|
||||||
jtag_tap_name(tap), cbuf);
|
|
||||||
|
|
||||||
free(cbuf);
|
|
||||||
retval = ERROR_JTAG_INIT_FAILED;
|
retval = ERROR_JTAG_INIT_FAILED;
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
LOG_DEBUG("%s: IR capture 0x%0*x", jtag_tap_name(tap),
|
||||||
|
(tap->ir_length + 7) / tap->ir_length, val);
|
||||||
chain_pos += tap->ir_length;
|
chain_pos += tap->ir_length;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue