BeagleBoardJTAG
The BeagleBoard comes with a 14 pin 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 pin 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 is supported by a large number of JTAG emulation products and has 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 plan to use has a 14 pin ARM layout, so we need to create a converter. From JTAG pin assignments document:
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 |