BeagleBoardJTAG

From eLinux.org
Revision as of 05:43, 17 December 2008 by Dirk (talk | contribs) (Move OpenOCD infos to BeagleBoardOpenOCD page)
Jump to: navigation, search

The page is about JTAG on OMAP3530 used at BeagleBoard.

Beagle JTAG connection

The BeagleBoard comes with a 14 pin TI JTAG connector. For JTAG pin out see section 8.16 of BeagleBoard HW Reference Manual (rev. B5). 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.

Note: JTAG on BeagleBoard uses 1.8V!

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. Note that it will not work with the Spectrum Digital XDS510USB (non-plus) as it does not support a target with 1.8V JTAG.

The following picture is from a TI OMAP JTAG presentation:

Ti arm jtag.jpg

Beagle uses the 14-pin TI header.

Note: TI uses some different pin names. Translation:

  • TVD => VREF at Beagle
  • TCLKR == RTCK
  • TCLKO == TCK
  • #### == Key (empty))
  • TDI => GND at Beagle

Beagle 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

See 14 pin ARM to TI adapter for a verified JTAG adapter from TinCanTools.

Open source JTAG software

It would be very interesting to get the JTAG working with open source tools. The main open source JTAG software is OpenOCD. See Beagle board OpenOCD page about status and usage of OpenOCD for Beagle.

JTAG hardware

For BeagleBoard JTAG debugging, there are some HW interfaces available. Several can be found on the TI tools directory.

TinCanTools Flyswatter

TinCanTools is currently working at Flyswatter support for OpenOCD for OMAP3530. They also have a BeagleBoard Adapter Kit.

Costs:

In case you like to order Flyswatter and Adapter Kit international, here an example for Europe (Germany):

  • Flyswatter: US-$ 49.95
  • BeagleBoard Adapter Kit: US-$ 18.00
  • International shipping: US-$ 27.00 (select USPS, it's the cheapest!)

Sum: US-$ 94.95 => EUR 65.28 + EUR 8.76 VAT (Germany) = EUR 74.04

Flyswatter will use OpenOCD (Beagle (OMAP3xx) support under development),

BDI 2000

Example

Chuck Fleming reports:

The BDI2000 appears to work with the omap35xx.cfg and regOMAP3500.def files that come with the BDI hardware. I had to modify the 10-pin cable so that the BeagleBoard JTAG header matched the BDI target A connector:

beagle>reset
- TARGET: processing reset request
- TARGET: BDI executes scan chain init string
- TARGET: Bypass check 0x00000001 => 0x00000002
- TARGET: JTAG exists check passed
- Core#0: ID code is 0x0B6D602F
- Core#0: DP-CSW  is 0xF0000000
- Core#0: DBG-AP  at 0xD4011000
- Core#0: DIDR    is 0x15141012
- TARGET: BDI removes RESET
- TARGET: BDI waits for RESET inactive
- TARGET: Reset sequence passed
- TARGET: resetting target passed
- TARGET: processing target startup ....
- TARGET: processing target startup passed
beagle>halt
     Core number       : 0
     Core state        : debug mode (ARM)
     Debug entry cause : Debug Request
     Current PC        : 0x40200000
     Current CPSR      : 0x000001d3 (Supervisor)
beagle>rdall
          User     FIQ     Superv   Abort     IRQ      Undef
GPR00: 480029fc 480029fc 480029fc 480029fc 480029fc 480029fc
GPR01: 00000000 00000000 00000000 00000000 00000000 00000000
GPR02: 00000001 00000001 00000001 00000001 00000001 00000001
GPR03: 00000060 00000060 00000060 00000060 00000060 00000060
GPR04: 00000000 00000000 00000000 00000000 00000000 00000000
GPR05: 80f2f2f4 80f2f2f4 80f2f2f4 80f2f2f4 80f2f2f4 80f2f2f4
GPR06: 80f2f2f4 80f2f2f4 80f2f2f4 80f2f2f4 80f2f2f4 80f2f2f4
GPR07: 80e9ee88 80e9ee88 80e9ee88 80e9ee88 80e9ee88 80e9ee88
GPR08: 80e3ffdc 34484608 80e3ffdc 80e3ffdc 80e3ffdc 80e3ffdc
GPR09: 80e3fec8 26a1c132 80e3fec8 80e3fec8 80e3fec8 80e3fec8
GPR10: 00000018 08040f16 00000018 00000018 00000018 00000018
GPR11: 80e3fecc 3c278260 80e3fecc 80e3fecc 80e3fecc 80e3fecc
GPR12: 0000006e 24200625 0000006e 0000006e 0000006e 0000006e
GPR13: 00000000 00000000 80e3feb0 00000000 00000000 d1868045
GPR14: 00000000 00000000 80e84f44 00000000 00000000 d55a4cc8
PC   : 40200000
CPSR : 000001d3
SPSR :          00000000 00000000 00000000 00000000 00000000
beagle>md 0x40200000
40200000 : e320f000 e320f000 e320f000 e320f000  .. ... ... ... .
40200010 : e320f000 e320f000 e320f000 eafffffc  .. ... ... .....
40200020 : b6273502 e7aa052b 047694c8 91ca77d8  .5'.+.....v..w..
40200030 : 12b9579e ef2eef1b 00543892 494f9bc1  .W.......8T...OI
40200040 : 3f63013d 82eee656 b7adfe8d 993f1368  =.c?V.......h.?.
40200050 : 51f1cf9b 0464a23e bea76e3c 3d275f5c  ...Q>.d.<n..\_'=
40200060 : 76554290 6776c892 a6cd088f 6dd4529a  .BUv..vg.....R.m
40200070 : 067261b8 e5f80e9e cb4ea075 25a9dd95  .ar.....u.N....%
40200080 : 779db8c6 0496597b 7d5f8d5a 24f44cd6  ...w{Y..Z._}.L.$
40200090 : 99ab46f9 9ddc06d9 fd34567a 2035bab8  .F......zV4...5
402000a0 : a16b6760 fe863cf7 29046202 39fb0d49  `gk..<...b.)I..9
402000b0 : dc9fd18c e50f536c 09ae66dd cad9ff91  ....lS...f......
402000c0 : c46bdbdb be791808 89ff83fa 2d3bc71e  ..k...y.......;-
402000d0 : 43f5a3b6 0aed1747 ba3c4752 6af0573a  ...CG...RG<.:W.j
402000e0 : 3570da77 9a1dc961 324b876c 5d592060  w.p5a...l.K2` Y]
402000f0 : b870f487 1277c035 4609dcf4 53b534c4  ..p.5.w....F.4.S
beagle>ti
     Core number       : 0
     Core state        : debug mode (ARM)
     Debug entry cause : Single Step
     Current PC        : 0x40200004
     Current CPSR      : 0x000001d3 (Supervisor)
beagle>ti
     Core number       : 0
     Core state        : debug mode (ARM)
     Debug entry cause : Single Step
     Current PC        : 0x40200008
     Current CPSR      : 0x000001d3 (Supervisor)
beagle>

BDI config

The BDI config files might help getting OpenOCD to work with BeagleBoard.

This configuration assumes the "default" EMU 0 and 1 configuration (both not connected/high state). In this EM setup at first only one TAP is exported. A set of commands must be run on the first tap (embedded ICE) to enable access to the core:

SCANINIT    t1:w1000:t0:w1000:  ;toggle TRST,
SCANINIT    ch10:w1000:         ;clock TCK with TMS high and wait
SCANINIT    i6=07:d8=89:i6=02:  ;connect and select router
SCANINIT    d32=81000080:       ;IP control: KeepPowered
SCANINIT    d32=a3002048:       ;TAP3: DebugConnect, ForcePower, ForceActive
SCANINIT    d32=81000081:       ;IP control: KeepPowered, SysReset
SCANINIT    d32=a3002148:       ;enable TAP3
SCANINIT    cl10:i10=ffff       ;clock 10 times in RTI, scan bypass

Lauterbach

Lauterbach Debugger supports OMAP3503/15/25/30.

XDS510 and CCS

XDS510 and CCS (code composer studio) can be used to debug OMAP3503/15/25/30. Configuration screen shot. For CCS setup see TI OMAP JTAG presentation, too (start page: 16).

PEEDI

PEEDI JTAG/BDM Emulator and Flash Programmer of Ronetix supports OMAP3. A configuration file for the Beagleboard can be found here: omap3530.cfg

PEEDI has a built-in support for GNU gbd based debuggers and a built-in Flash Programmer. The Flash Programmer is capable to program:

  • NOR Flash devices (over 900)
  • NAND and OneNAND Flash devices (small page, larger page, 8/16 bit), various methods of ECC calculation, bad block management.
  • DataFlash devices
  • SPI DataFlash devices
  • images located on a TFTP/FTP/HTTP server or a MMC/SD card (which allows standalone mode).

The PEEDI package includes also an PEEDI to TI14 adapter and an TI20 to TI14 adapter.

ARM RealView ICE

The new release of software (3.3) for the ARM RealView ICE supports Texas Instruments’ range of OMAP3 processors.

Linux kernel debugging

If you like to debug Linux kernel (with one of the above JTAG tools?) using GDB have a look to debugging Linux kernel using GDB article.