Difference between revisions of "Beagleboard Troubleshooting: JTAG Tap Unexpected 0x000000ff"

From eLinux.org
Jump to: navigation, search
(Porting TinCanTools wiki content.)
 
(Adding proper categories)
 
Line 66: Line 66:
  
 
  jtag_rclk 1000
 
  jtag_rclk 1000
 +
 +
[[Category:TinCanTools]]
 +
[[Category:OpenOCD]]

Latest revision as of 03:03, 18 April 2012

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 Beagleboard and see an error like this:

Beagle ocdstartup jtagfailed.png


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.

  • 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 Flyswatter2)

openocd -f interface/flyswatter2.cfg -f board/ti_beagleboard.cfg -c "init" -c "reset init"

(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.

Beagle jtag wrong.png Beagle jtag wrong2.png Beagle jtag correct.png





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 omap3530_norclk.cfg
Right-click the link and select "Save As"

  • 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