How To Understand JTAG BSDL File
This example explains how to understand the BSDL file in order to create an OpenOCD configure file.
IR Len
That information can be retrieved directly:
attribute INSTRUCTION_LENGTH of imx_device: entity is 5;
This means that IR Len is 5, then in OpenOCD config it will be informed this way:
-irlen 5
IR Capture
The IR Capture also can be retrieved directly:
attribute INSTRUCTION_CAPTURE of imx_device : entity is "XXX01";
This means that IR Capture is 1, then in OpenOCD config it will be informed this way:
-ircapture 0x1
IR Mask
The IR Mask is based on IR Len size. Just create a binary number with "IR Len" bits 1.
If the IR Len is 4 then the IR Mask will be 0xF (1111). Case the IR Len is 5 the IR Mask will be 0x1F (11111).
In this BSDL example (IR Len = 5) the OpenOCD config needs to inform the IR Mask this way:
-irmask 0x1f
TAP ID
attribute IDCODE_REGISTER of imx_device : entity is
"0010" & -- Version
"000110" & -- Design Center Number
"0100000001" & -- Sequence Number
"00000001110" & -- Manufacturer Identity
"1"; -- IEEE 1149.1 Requirement
This code can be converted directly to TAP ID:
Binary:
0010-0001-1001-0000-0001-0000-0001-1101
Hexadecimal:
2-1-9-0-1-0-1-D
Then in OpenOCD configure you will create:
if { [info exists SDMATAPID ] } {
set _SDMATAPID $SDMATAPID
} else {
set _SDMATAPID 0x2190101d
}
The final configure line will be:
jtag newtap $_CHIPNAME smda -irlen 5 -ircapture 0x1 -irmask 0x1f -expected-id $_SDMATAPID