From 53dea2f952303c9f1a87fa42d58fae9fad4648e2 Mon Sep 17 00:00:00 2001 From: oharboe Date: Wed, 7 Oct 2009 11:03:01 +0000 Subject: [PATCH] Do not check ir capture if there is no IDCODE git-svn-id: svn://svn.berlios.de/openocd/trunk@2812 b42882b7-edfa-0310-969c-e2dbd0fdcd60 --- src/jtag/core.c | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/src/jtag/core.c b/src/jtag/core.c index 854236f3..0b752ea4 100644 --- a/src/jtag/core.c +++ b/src/jtag/core.c @@ -1108,19 +1108,22 @@ static int jtag_validate_ircapture(void) break; } - /* Validate the two LSBs, which must be 01 per JTAG spec. - * REVISIT we might be able to verify some MSBs too, using - * ircapture/irmask attributes. - */ - val = buf_get_u32(ir_test, chain_pos, tap->ir_length); - if ((val & 0x3) != 1) { - 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); - - retval = ERROR_JTAG_INIT_FAILED; - goto done; + if (tap->hasidcode) + { + /* Validate the two LSBs, which must be 01 per JTAG spec. + * REVISIT we might be able to verify some MSBs too, using + * ircapture/irmask attributes. + */ + val = buf_get_u32(ir_test, chain_pos, tap->ir_length); + if ((val & 0x3) != 1) { + 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); + + retval = ERROR_JTAG_INIT_FAILED; + goto done; + } } LOG_DEBUG("%s: IR capture 0x%0*x", jtag_tap_name(tap), (tap->ir_length + 7) / tap->ir_length, val); -- 2.39.5