OpenOCD PandaBoard

Revision as of 09:45, 19 April 2012 by Prpplague (Talk | contribs)

Jump to: navigation, search


OpenOCD mainline includes preliminary support for Cortex-A9 and Pandaboard. See the OpenOCD homepage for instructions to checkout and build from source.

Invoke OpenOCD as:

openocd -f tcl/interface/flyswatter.cfg -f tcl/board/ti_pandaboard.cfg

replacing flyswatter.cfg with the appropriate config for your JTAG hardware.

The default configuration exposes 3 targets: one Cortex-A9 (core 0) and two Cortex-M3 cores. To connect to the second Cortex-A9 core, edit the following line in tcl/target/omap4430.cfg:

target create $_TARGETNAME cortex_a9 -chain-position $_CHIPNAME.dap -coreid 0

changing -coreid 0 to -coreid 1. At present it is not possible to connect to both Cortex-A9 cores simultaneously.

Working Items

  • halt, single-step, resume
  • breakpoints and watchpoints
  • reading/writing memory
  • inspecting core/register state

All memory accesses (including md/mw commands and disassembly) execute through the debug AHB on the L3 interconnect; resources on the L2 interconnect currently can not be accessed. This includes ROM, local PRCM, and anything in the Cortex-A9 "private memory region" (snoop-control unit, global interrupt controller, timers and watchdogs).

Non-Working Items

  • debugging A9 cores simultaneously
  • accessing L2 memory resources
  • unify a8/a9 code

Debug clocking

The debugger may not be able to access the A9 processor cores due to an issue with omap4430 clocking. If your debugger can identify JTAG devices, e.g.:

Info : 375 316 core.c:948 jtag_examine_chain_display(): JTAG tap: omap4430.jrc tap/device found: 0x3b95c02f (mfg: 0x017, part: 0xb95c, ver: 0x3)

but no Cortex-A9 target appears, you are probably running into this issue. Verify by connecting the debugger with no SD card inserted: if it now works, you're hitting this issue.

The current x-loader mainline includes a workaround.

JTAG Dongle Howtos