NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.
Debugging on DaVinci using OpenOCD
This page gives you short introduction how to debug DaVinci devices (e.g. DM355 EVM) using Olimex JTAG dongles (both "Tiny" and normal ones) and similar JTAG adapters based on ft2232 USB chips.
These devices are available from e.g. www.sparkfun.com. See openhardware.net for more details.
Current OpenOCD[edit]
As of 7 May 2009, a ti_dm355.cfg file is in the OpenOCD source tree. Releases 0.2.0 and later include it; or you can get a snapshot of the current source tree. Release 0.3.1 updates that support. You can use this with any JTAG adapter supported by OpenOCD, including the FT2232 ones from Olimex and Amontec. XDS100 support can be added easily enough, but TI's license for the schematics prevents distributing such driver tweaks with OpenOCD.
You will probably want to create an openocd.cfg file that may look something like this:
# these are the defaults, change them if you want gdb_port 3333 telnet_port 4444 tcl_port 6666 # **CHANGE THIS** line to reflect the JTAG adapter you use # for example, interface/jtagkey.cfg (or jtagkey-tiny) for Amontec source [find interface/olimex-jtag-tiny.cfg] # the ft2232 JTAG adapters don't support RTCK, so use a slow # clock (TCK) until after reset until the PLLs get set up jtag_khz 1500 # DM355 EVM support ... custom boards may be similar # READ THE CONFIG FILE for more information source [find board/dm355evm.cfg]
The ETM and ETB are set up; for now you'll probably need to read source code to find out how to use them to trace what the ARM is doing. The GDB linkage works in the normal way. Read the config file to see if you need to change the EMU0 and EMU1 signal settings on your board; current versions of OpenOCD (e.g. 0.3.1) know how to use ICEpick to enable the TAP for the ARM926 core and ETB.
There is a DaVinci NAND driver which you can use to update NAND data. Be sure to use the right OOB layout; several are defined.
There is basic dm6446 and dm365 support too.
Original EMail[edit]
Diego Dompe from RidgeRun Engineering reported success with an older version of OpenOCD: