All Boards How To Understand JTAG BSDL

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

All Boards How To Understand JTAG BSDL

All Boards How To Understand JTAG BSDL

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
Comments

https://cache.nxp.com/secured/NMG/MAD/IMX6D_IMX6Q_21x21_BSDL.zip?__gda__=1516854170_c0e3cc5142b8f17b...

IMX6D_21x21_BSDL_TO1.2.bsdl

0x2191e01d

# SDMA / no IDCODE
jtag newtap $_CHIPNAME sdma -irlen 4 -ircapture 0x00 -irmask 0x0f

# System JTAG Controller
if { [info exists SJC_TAPID] } {
        set _SJC_TAPID $SJC_TAPID
} else {
        set _SJC_TAPID 0x0191c01d
}
set _SJC_TAPID2 0x0191e01d
set _SJC_TAPID3 0x2191c01d
set _SJC_TAPID4 0x2191e01d    #here

jtag newtap $_CHIPNAME sjc -irlen 5 -ircapture 0x01 -irmask 0x1f \
        -expected-id $_SJC_TAPID -expected-id $_SJC_TAPID2 \
        -expected-id $_SJC_TAPID3 -expected-id $_SJC_TAPID4

now is set for _SJC_TAPID not _SDMATAPID

No ratings
Version history
Last update:
‎09-10-2020 02:47 AM
Updated by: