OMAP3530 ICEPICK

From eLinux.org
Revision as of 00:38, 15 February 2009 by Dirk (talk | contribs) (Add description about UrJTAG cables)
Jump to: navigation, search

The page is about OMAP3530 ICEPICK. See BeagleBoard JTAG page for more info about JTAG on OMAP3530 used at BeagleBoard.

Adding TAPs to the Scan Chain

The TAP router must be programmed to add additional TAPs to the scan chain. The following JTAG scans must be completed before the CoreSight DAP is added to the scan chain.

## Function  : Update the JTAG preamble and post-amble counts.
   Parameter : The IR pre-amble count is '0'.
   Parameter : The IR post-amble count is '0'.
   Parameter : The DR pre-amble count is '0'.
   Parameter : The DR post-amble count is '0'.
   Parameter : The IR main count is '6'.
   Parameter : The DR main count is '1'.

## Function  : Do a send-only JTAG IR/DR scan.
   Parameter : The route to JTAG shift state is 'shortest transition'.
   Parameter : The JTAG shift state is 'shift-ir'.
   Parameter : The JTAG destination state is 'pause-ir'.
   Parameter : The bit length of the command is '6'.
   Parameter : The send data value is '0x00000007'.
   Parameter : The actual receive data is 'discarded'.

## Function  : Do a send-only JTAG IR/DR scan.
   Parameter : The route to JTAG shift state is 'shortest transition'.
   Parameter : The JTAG shift state is 'shift-dr'.
   Parameter : The JTAG destination state is 'pause-dr'.
   Parameter : The bit length of the command is '8'.
   Parameter : The send data value is '0x00000089'.
   Parameter : The actual receive data is 'discarded'.

## Function  : Do a send-only JTAG IR/DR scan.
   Parameter : The route to JTAG shift state is 'shortest transition'.
   Parameter : The JTAG shift state is 'shift-ir'.
   Parameter : The JTAG destination state is 'pause-ir'.
   Parameter : The bit length of the command is '6'.
   Parameter : The send data value is '0x00000002'.
   Parameter : The actual receive data is 'discarded'.

## Function  : Embed the port address in next command.
   Parameter : The port address field is '0x0f000000'.
   Parameter : The port address value is '3'.

## Function  : Do a send-only JTAG IR/DR scan.
   Parameter : The route to JTAG shift state is 'shortest transition'.
   Parameter : The JTAG shift state is 'shift-dr'.
   Parameter : The JTAG destination state is 'pause-dr'.
   Parameter : The bit length of the command is '32'.
   Parameter : The send data value is '0xa3002108'.
   Parameter : The actual receive data is 'discarded'.

## Function  : Do a send-only all-ones JTAG IR/DR scan.
   Parameter : The JTAG shift state is 'shift-ir'.
   Parameter : The JTAG destination state is 'run-test/idle'.
   Parameter : The bit length of the command is '6'.
   Parameter : The send data value is 'all-ones'.
   Parameter : The actual receive data is 'discarded'.

## Function  : Wait for a minimum number of TCLK pulses.
   Parameter : The count of TCLK pulses is '10'.

## Function  : Update the JTAG preamble and post-amble counts.
   Parameter : The IR pre-amble count is '0'.
   Parameter : The IR post-amble count is '6'.
   Parameter : The DR pre-amble count is '0'.
   Parameter : The DR post-amble count is '1'.
   Parameter : The IR main count is '4'.
   Parameter : The DR main count is '1'. 

Once the DAP is added to the scan chain, the debugger can communicate with the CortexA8 processor.

Screen shot of OMAP3530 scan chain from ARM's RealView ICE.

ICEPICK instructions

The following log shows a IR discovery scan of the icepick using urjtag.

Replace '<type>' of the cable command with the cable type you use. E.g.

  • cable JTAGkey for Amontec JTAGkey (FT2232) Cable
  • cable Flyswatter for TinCanTools Flyswatter Cable

See help cable for a list of supported debug interfaces.

jtag> cable <type>
Connected to libftd2xx driver.
jtag> detect
IR length: 6
Chain length: 1
Device Id: 0 (0x0000000000000000)
chain.c(133) Part 0 without active instruction
chain.c(184) Part 0 without active instruction
chain.c(133) Part 0 without active instruction
jtag> idcode
Reading 0 bytes if idcode
Read 00101111 11100000 01111010 00001011 00000000 00000000 00000000 00000000
jtag> discovery
Detecting IR length ... 6
Detecting DR length for IR 111111 ... 1
Detecting DR length for IR 000000 ... 1
Detecting DR length for IR 000001 ... 1
Detecting DR length for IR 000010 ... 1
Detecting DR length for IR 000011 ... 1
Detecting DR length for IR 000100 ... 32
Detecting DR length for IR 000101 ... 32
Detecting DR length for IR 000110 ... 1
Detecting DR length for IR 000111 ... 8
Detecting DR length for IR 001000 ... 32
Detecting DR length for IR 001001 ... 1
Detecting DR length for IR 001010 ... 1
Detecting DR length for IR 001011 ... 1
Detecting DR length for IR 001100 ... 1
Detecting DR length for IR 001101 ... 1
Detecting DR length for IR 001110 ... 1
Detecting DR length for IR 001111 ... 1
Detecting DR length for IR 010000 ... 1
Detecting DR length for IR 010001 ... 1
Detecting DR length for IR 010010 ... 1
Detecting DR length for IR 010011 ... 1
Detecting DR length for IR 010100 ... 1
Detecting DR length for IR 010101 ... 1
Detecting DR length for IR 010110 ... 1
Detecting DR length for IR 010111 ... Warning: TDO seems to be stuck at 0
-1
Detecting DR length for IR 011000 ... Warning: TDO seems to be stuck at 0
-1
...(even more DTO seems stucked)...
Detecting DR length for IR 011100 ... Warning: TDO seems to be stuck at 0
-1
Detecting DR length for IR 011101 ... Warning: TDO seems to be stuck at 0
Detecting DR length for IR 011111 ... 1
Detecting DR length for IR 100000 ... Warning: TDO seems to be stuck at 0
-1
Detecting DR length for IR 100100 ... Warning: TDO seems to be stuck at 0
-1
.... (The rest gets the same error codes)