How to identify rightly the board type

Discuss the generic proposals for SJTAG
Post Reply
User avatar
Yingwu Li
SJTAG Member
Posts: 2
Joined: Thu Feb 28, 2008 4:10 am
Location: Huawei, Shenzhen, China

How to identify rightly the board type

Post by Yingwu Li » Tue Mar 04, 2008 2:35 am

Many products have developed the system JTAG (SJTAG) architechture for the remote programming, or board test, or fault injection, etc.
Some appllication need STAPL files or SVF files. These files maybe are different to each other. The configuration table need to distinguish the files for each board. In the application of SJTAG, the first thing is to identify the true type of a board in the slot to get the true files for a task. But this is difficult to identify the ture type of a board in the SJTAG system because there are so many board types. When the board can not work for some faults occured in some time, this is impossible to query the true type of the board depended on itself. How to do? :(

We have some methods to solve well the problem in practice
1. Use the slot ID
2. Use the JTAG chain information
3. Use the board ID
Happy to discuss this with all experts.

Identify the possible types of a board through the solt ID
There are maybe many board types in the product. But the types of the board are limited after that has been inserted one solt. If getting the solt ID, then we can identify the possible types of the board. In the board based SJTAG, some address pins of JSM are connected to the slot ID.
(I am sorry that I don't know how to post the figure in the Forums :( )

We can get the solt ID through the JSM address and then can identify the possible types of the board through the solt ID. If we can not make certain the type of the board, there are some other methods to do it.

Identify board type through the JTAG chain configuration
The JTAG chain configuration are usually unlike in the different board. The JTAG chain configuration include the sum and the order of JTAG chains of ASP, the sum and the order of boundary scan (BS) devices of each JTAG chain.
According to the IEEE 1149.1 standard, we know the BS devices have such base characteristics.
Characteristic A: Some BS devices have the device identification (IDCODE) register, and the others have not. If the device has IDCODE register, the IDCODE instruction is set onto the instruction register in the Test-Logic-Reset controller state. If the IDCODE register is not included in the design, the BYPASS instruction is set onto the instruction register in the Test-Logic-Reset controller state.
Characteristic B: Each BS device shall provide a BYPASS instruction. A binary code for the BYPASS instruction shall be {111...1}. The BYPASS instruction shall select the bypass register to be connected for serial access between TDI and TDO in the Shift-DR controller state. The bypass register will load a logic 0 during the Capture-DR controller state and shift data during the Shift-DR controller state.
Characteristic C: Where a device identification register is included in the design, the component shall provide an IDCODE instruction. The IDCODE instruction shall select only the device identification register to be connected for serial access between TDI and TDO in the Shift-DR controller state. When the IDCODE instruction is selected, the device identification code shall be loaded into the device identification register on the rising edge of TCK after entry into the Capture-DR controller state. The device identifcation code is a 32-bit pattern and the least significant bit in the 32-bit pattern shall be 1.
According to the above three characteristics, we can get the JTAG chain configuration then to identify the types of the board.
Step 1: After the board has been initialized, the each JTAG chain of the JSM in the board is selected.
Step 2: Analyse the output data from the TDO after input a long characteristic serial bits from the TDI through the Shift-DR controller state based the three characteristics.
Step 3: After the analyse of the output data, we can know the sum and the order of JTAG chains of the ASP in the board, the sum and the order of BS devices of each JTAG chain in the JSM. We can also know the device identification codes in each JTAG chain. Then we have get the JTAG chain configuration to identify the types of a board usually.
Of course, it is possible there are two types board that have the same JTAG chain configuration for example they have used differrent no-BS devices only. In this case, we should design the differrent JTAG chain or design the board ID through the latter method to identify the different board types.

Identify the types of a board through designing the board ID
We can also design the board identification code to identify the diffent board. And the board ID can be implemented by the pins of the JSM to pull down or pull up.

We can get the board ID after reading the JSM register and then identfify the board type. Some business devices for JSM can provide such pins, but others can not. We can implement the funciton through a PLD device or through the pins of BS device in the JTAG chain to design the board ID. In this case, we can read the board ID through one JTAG chain of the JSM and the board ID has been implemented by the pins of the BS device in the JTAG chain to pull down or pull up. The BS device to identify the board maybe is a universal device in the board but usually it is a special PLD device.
After we have read the board ID, we can easily identify the types of the board. But if there are so many board types that need many IO pins to identify. Thereby it is maybe a perfect way to combine the three methods above to identify the board types.

SJTAG maybe take into account how to identify board in field
This is a question really to us. We have some methods to solve it. But the board configuration table is a little complex. SJTAG maybe take into account that how to identify automatically the board type especially when the board is unable to boot in the field.


Yingwu Li
HUAWEI TECHNOLOGIES CO.,LTD

MOD NOTE: Posts moved and merged :wink:

Post Reply