BeagleBoardJTAG

From eLinux.org
Revision as of 19:58, 10 July 2008 by Keesj (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

The BeagleBoard comes with a 14 pins TI JTAG connector. For JTAG pin out see section 8.17 of BeagleBoard HW Reference Manual (rev. A5) . This is the same header interface as used in other TI products and is NOT the standard 14-pins ARM layout. Depending on your JTAG tool, you'd need a 20-pin to 14-pin TI adapter to use an ARM debugger. The 14-pin TI JTAG connector that is used on BeagleBoard and is supported by a large number of JTAG emulation products and been tested using Lauterbach, Spectrum Digital XDS510USB+ and TI XDS560 emulation pods.

This is the Unverified TI JTAG pin-out

JTAG_TMS    1 -  - 2  JTAG_nTRST
JTAG_TDI    3 -  - 4  GND
VREF        5 -  x 6  KEY (empty)
JTAG_TDO    7 -  - 8  GND
JTAG_RTCK   9 -  - 10 GND
JTAG_TCK   11 -  - 12 GND
JTAG_EMU0  13 -  - 14 JTAG_EMU1

Note: JTAG on BeagleBoard uses 1.8V!

Open source

It would be very interesting to get the JTAG working with open source tools.

OpenOCD JTAG bring up

On IRC it was discussed what will be necessary to get OpenOCD working with OMAP3 on BeagleBoard:

  • OpenOCD compatible JTAG hardware interface with FTDI's FT2232 chip, e.g. Flyswatter.
  • Create an adapter to convert the Flyswatter 14-pins JTAG into 14-pins TI JTAG
  • Get latest OpenOCD source
  • Add Cortex-A8 CPU ID. Currently only Cortex-M3 is supported. Take this as example. Once you connect to target you should get error message expect cpuid of xxxxxx but got yyyyyy which should contain Cortex-A8 CPU ID.
  • Take CPU scan lengths from OMAP3530 CCS config.
  • Pull-down the EMU0/EMU1 pins on BeagleBoard. Jumper P3 can be used to pull-down EMU0. There is no jumper for EMU1, though. Unsure if EMU1 has to be pulled-down, too. If so, modify HW to pull down EMU1 using pin 14 of JTAG connector P2 or via R15.

TI DaVinci OpenOCD configuration can be used as example for above.

If above basics work, additionally MMU, cache support and some include files for A8 might be added to OpenOCD.

Note: If you made some progress regarding BeagleBoard OpenOCD support, please send a short note to BeagleBoard ML.


Creating an adapter

The Flyswatter we planned to use has A 14-pins ARM layout so we need to create a converter http://www.tincantools.com/assets/JTAG_pin_assignments.pdf

     ARM-14-JTAG                               TI-14-JTAG
VREF        1 - - 2  GND           JTAG_TMS    1 -  - 2  JTAG_nTRST
JTAG_nTRST  3 - - 4  GND           JTAG_TDI    3 -  - 4  GND
JTAG_TDI    5 - - 6  GND           VREF        5 -  x 6  KEY (empty)
JTAG_TMS    7 - - 8  GND           JTAG_TDO    7 -  - 8  GND
JTAG_TCK    9 - - 10 GND           JTAG_RTCK   9 -  - 10 GND
JTAG_TDO   11 - - 12 JTAG_SRST_N   JTAG_TCK   11 -  - 12 GND
VREF       13 - - 14 GND           JTAG_EMU0  13 -  - 14 JTAG_EMU1
   FlySwatter                TOP               Beagle

Unverified wiring diagram between the Tin Can Tools Flyswatter and the OMAP3 Beagle Board.

JTAG TI_JTAG Function name
3 2 JTAG_nTRST
5 3 JTAG_TDI
7 1 JTAG_TMS
9 11 JTAG_TCK
11 7 JTAG_TDO
13 5 VREF