- # IR == IDCODE: The device ID code is shifted out via DR next.
- self.putx([0, ['IDCODE: %s (ver=%s, part=%s, manuf=%s, res=%s)' % \
- decode_device_id_code(bits)]])
+ # IR == IDCODE: The 32bit device ID code is shifted out via DR next.
+
+ id_hex, manuf, ver, part = decode_device_id_code(bits[:-1])
+ cc = '0x%x' % int('0b' + bits[:-1][-12:-8], 2)
+ ic = '0x%x' % int('0b' + bits[:-1][-7:-1], 2)
+
+ self.putf(0, 0, [1, ['Reserved (BS TAP)', 'BS', 'B']])
+ self.putf(1, 1, [1, ['Reserved', 'Res', 'R']])
+ self.putf(9, 12, [0, ['Continuation code: %s' % cc, 'CC', 'C']])
+ self.putf(2, 8, [0, ['Identity code: %s' % ic, 'IC', 'I']])
+ self.putf(2, 12, [1, ['Manufacturer: %s' % manuf, 'Manuf', 'M']])
+ self.putf(13, 28, [1, ['Part: %s' % part, 'Part', 'P']])
+ self.putf(29, 32, [1, ['Version: %s' % ver, 'Version', 'V']])
+
+ self.ss = self.samplenums[1][0]
+ self.putx([2, ['IDCODE: %s (%s: %s/%s)' % \
+ decode_device_id_code(bits[:-1])]])