Beagleboard Troubleshooting: JTAG Tap Unexpected

''This page is specific to the Beagleboard. For non-board-specific troubleshooting, see OpenOCD Troubleshooting: JTAG Tap Unexpected.''

You start OpenOCD with the Flyswatter or Flyswatter2 and the and see an error like this:



Info : JTAG tap: omap3530.jrc tap/device found: 0x000000ff (mfg: 0x07f, part: 0x0000, ver: 0x0) Warn : JTAG tap: omap3530.jrc      UNEXPECTED: 0x000000ff (mfg: 0x07f, part: 0x0000, ver: 0x0) Error: JTAG tap: omap3530.jrc expected 1 of 1: 0x0b7ae02f (mfg: 0x017, part: 0xb7ae, ver: 0x0)

OpenOCD has read the board's CPU tap ID as 0x000000ff. If you see the value 0x000000ff or 0x00000000, OpenOCD has failed to read the tap ID correctly. This guide will walk you through troubleshooting the issue.

Solution 1: Restart with -c "init" -c "reset init"
An issue with OpenOCD and the Beagleboard sometimes prevents OpenOCD from initializing the JTAG chain correctly. As described in the Flyswatter How To, you can prevent the issue by running the init and reset init commands on OpenOCD startup.

(with the Flyswatter2) openocd -f interface/flyswatter2.cfg -f board/ti_beagleboard.cfg -c "init" -c "reset init"
 * Unplug the USB cable from the Flyswatter or Flyswatter2.
 * Unplug the power cable from the Beagleboard.
 * Plug both devices back in.
 * Start OpenOCD as follows:

(with the Flyswatter) openocd -f interface/flyswatter.cfg -f board/ti_beagleboard.cfg -c "init" -c "reset init"

If using Ubuntu, use the sudo command as normal. sudo openocd -f interface/flyswatter2.cfg -f board/ti_beagleboard.cfg -c "init" -c "reset init"

Solution 2: Check the JTAG Cable Connections
OpenOCD won't be able to read the Beagleboard's CPU tap ID if the JTAG ribbon cable is connected incorrectly. Make sure the cable is secured at both ends and aligned correctly on the pins.

Make sure the JTAG cable isn't connected backwards. The pin numbers are marked on the Beagleboard in small print around the JTAG header. On the ribbon cable included with the Beagleboard Adapter Kit, Pin 1 is marked with a red stripe. Make sure it aligns with Pin 1 on the board.



Solution 3: Disable Adaptive Clocking
OpenOCD sometimes has issues initializing the Beagleboard's JTAG with the Flyswatter2 adaptive clocking enabled. Adaptive clocking is enabled in the config file omap3530.cfg, called from ti_beagleboard.cfg. You will need to run OpenOCD with a modified config file that doesn't enable adaptive clocking.


 * Download the file above to OpenOCD's /target folder:
 * Unplug the USB cable from the Flyswatter2.
 * Unplug the power cable from the Beagleboard.
 * Plug both devices back in.
 * Start OpenOCD as follows:

openocd -f interface/flyswatter2.cfg -f target/omap3530_norclk.cfg -c "init" -c "reset init"

If using Ubuntu, use the sudo command as normal. sudo openocd -f interface/flyswatter2.cfg -f target/omap3530_norclk.cfg -c "init" -c "reset init"

After OpenOCD starts successfully the first time you may be able to start it again as normal. Unplug the Flyswatter/Flyswatter2 and the Beagleboard and restart as in Solution 1. If you need to resort to disabling adaptive clocking again, you can still enable adaptive clocking manually once OpenOCD starts. Connect to OpenOCD via telnet or GDB as normal and enter the following command:

jtag_rclk 1000