ARM Technical Support Knowledge Articles

What do I set the ARM TAP IDCODE to?

Applies to: ARM1020/22E, ARM1026EJ-S, ARM1136, ARM720T, ARM7EJ-S, ARM7TDMI, ARM7TDMI-S, ARM920/922T, ARM926EJ-S, ARM940T, ARM946E-S, ARM966E-S, ARM968E-S, ARM9TDMI

Answer

Applies to: All Processor Cores

The recommended JTAG ID code complies with the IEEE JTAG standard which defines 4 fields within the 32-bit code.

31

28

27

12

11

1

0

Version

Part Number

Manufacturer ID

Marker

Marker [0] (Always '1')

Manufacturer ID [11:1] (11 bits)
You should set this to the JEDEC Manufacturer ID code to correspond to your particular company/implementation.

Version [31:28] (4 bits)
The top nibble (Version) is the core revision e.g. rev0 = 0x0, rev1 = 0x1, rev2 - 0x2 etc.

Part Number [27:12] (16 bits)
The Part Number field is arbitrary and Multi-ICE uses it to autodetect the device type so we have developed some general rules so that we can predict in advance what the ID codes will be for various devices:

ARM defines 2 types of device ID. They are distinguished by the top bit.

1. ARM core ID. Top bit is 0

(This example is an ARM966E-S)

Part No.

0

101

1001

0110

0110

ARM Core ID

Capability Bits

Family

Device Number

ARM Core ID [27]
ARM Core ID set to '0' denotes that the device is an ARM processor core.

Capability Bits [26:24] (3 bits)
The capability bits hold certain details about the processor core. These details are the E extension, whether the processor is a hard or soft macrocell and if it has Jazelle extensions.

When the ARM core ID bit [27] and the capability bits [26:24] are combined, the interpretation is as follows:

27

26

25

24

Description

0

0

0

0

ARM Processor pre E extension - hard macrocell

0

0

0

1

ARM Processor pre E extension - soft macrocell

0

0

1

X

Reserved

0

1

0

0

ARM processor with E extension - hard macrocell

0

1

0

1

ARM processor with E extension - soft macrocell

0

1

1

0

ARM Processor with J extension - hard macrocell

0

1

1

1

ARM Processor with J extension - soft macrocell

1

0

0

0

Reserved

1

0

0

1

Not a recognised executable ARM device (1)

1

0

1

0

Reserved

1

0

1

1

ARM Trace Buffer (2)

1

1

0

0

Reserved

1

1

0

1

Reserved

1

1

1

0

Reserved

1

1

1

1

Not a recognised executable ARM (1)
However this space also includes Boundary Scan Ids for ARMs. See the section below for details.

Family [23:20] (4 bits)
0x7 = ARM7, 0x9 = ARM9, 0xA = ARM10 etc.
Example : 1001 = 0x9 = ARM9

Device Number [19:12] (8 bits)
01100110 = 0x66

For an ARM9TDMI this gives 0x0900.

Some TAP ID codes

Here is a list of some popular TAP ID codes. Replace 'r' with the revision and 'mmm' with the manufacturer code.

  • ARM7TDMI: r0700mmm, rF0F0mmm
  • ARM7TDMI-S: rF1F0mmm
  • ARM7EJ-S: r7700mmm
  • ARM9TDMI: r0900mmm, rF0F0mmm
  • ARM720T: r0720mmm, rF0F0mmm
  • ARM920T: r0920mmm
  • ARM922T: r0922mmm
  • ARM940T: r0940mmm, rF0F0mmm
  • ARM926EJ-S: r7926mmm
  • ARM946E-S: r5946mmm
  • ARM966E-S: r5966mmm
  • ARM968E-S: r5968mmm
  • ARM1026EJ-S: r7A26mmm
  • ARM1136J-S: r7B36mmm

Some tools ignore the manufacturer code when identifying ARM core IDs, as the same ARM core may be manufactured by many manufacturers.

2. ARM Test Chip ID. Top bit is 1

Part No.

1

aaa aaaa

bbbb bbbb

Non ARM ID

Assigned by ARM

Assigned by customer

This is used for separate boundary scan TAP controllers that are put in ARM test chips.

However, this is not mandatory and there are many circumstances where it will be necessary to use alternative codes.

Non-ARM TAP ID Codes

The customer is free to assign the entire 16 bits according to their own requirements and preferences. However, it may be beneficial to avoid the specific patterns listed above for particular ARM cores, to prevent software from falsely identifying the non-ARM core as an ARM core.

See also:

 

Article last edited on: 2008-09-09 15:47:38

Rate this article

[Bad]
|
|
[Good]
Disagree? Move your mouse over the bar and click

Did you find this article helpful? Yes No

How can we improve this article?

Link to this article
Copyright © 2011 ARM Limited. All rights reserved. External (Open), Non-Confidential