From 53dea2f952303c9f1a87fa42d58fae9fad4648e2 Mon Sep 17 00:00:00 2001
From: oharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
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 854236f3d..0b752ea42 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);
-- 
GitLab