jtag: use correct tap -ignore-version mask
authorSpencer Oliver <spen@spen-soft.co.uk>
Tue, 21 Feb 2012 10:13:21 +0000 (10:13 +0000)
committerAndreas Fritiofson <andreas.fritiofson@gmail.com>
Sun, 26 Feb 2012 01:14:39 +0000 (01:14 +0000)
when -ignore-version is used we should mask of the upper 4bits not 8bits.

Change-Id: I9ffe24c2aeeb414677357a647609fdf018890194
Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk>
Reviewed-on: http://openocd.zylin.com/473
Tested-by: jenkins
doc/openocd.texi
src/jtag/core.c

index 1aaac5843c44bd79b18644ac443d43a71d35447d..323136f373813f7bf447fa79fca893ae7a3fdf88 100644 (file)
@@ -3369,7 +3369,7 @@ hardware to find these values.
 option.  When vendors put out multiple versions of a chip, or use the same
 JTAG-level ID for several largely-compatible chips, it may be more practical
 to ignore the version field than to update config files to handle all of
-the various chip IDs.
+the various chip IDs. The version field is defined as bit 28-31 of the IDCODE.
 @item @code{-ircapture} @var{NUMBER}
 @*The bit pattern loaded by the TAP into the JTAG shift register
 on entry to the @sc{ircapture} state, such as 0x01.
index 6de168e61630ec2b94e100a550d16e2c07ddd4df..a36345b77af194b6fba39cd7865ed5dc60c7bc23 100644 (file)
@@ -958,8 +958,8 @@ static bool jtag_examine_chain_match_tap(const struct jtag_tap *tap)
        if (0 == tap->expected_ids_cnt && !idcode)
                return true;
 
-       /* optionally ignore the JTAG version field */
-       uint32_t mask = tap->ignore_version ? ~(0xff << 24) : ~0;
+       /* optionally ignore the JTAG version field - bits 28-31 of IDCODE */
+       uint32_t mask = tap->ignore_version ? ~(0xf << 28) : ~0;
 
        idcode &= mask;