Skip to content
  • David Brownell's avatar
    JTAG: simple autoprobing · 6cb1d10c
    David Brownell authored
    
    
    This patch adds basic autoprobing support for the JTAG scan chains
    which cooperate.  To use, you can invoke OpenOCD with just:
    
     - interface spec: "-f interface/...cfg"
     - possibly with "-c 'reset_config ...'" for SRST/TRST
     - possibly with "-c 'jtag_khz ...'" for the JTAG clock
    
    Then set up config files matching the reported TAPs.  It doesn't
    declare targets ... just TAPs.  So facilities above the JTAG and
    SVF/XSVF levels won't be available without a real config; this is
    almost purely a way to generate diagnostics.
    
    Autoprobe was successful with most boards I tested, except ones
    incorporating C55x DSPs (which don't cooperate with this scheme
    for IR length autodetection).  Here's what one multi-TAP chip
    reported, with the "Warn:" prefixes removed:
    
     clock speed 500 kHz
     There are no enabled taps.  AUTO PROBING MIGHT NOT WORK!!
     AUTO auto0.tap - use "jtag newtap auto0 tap -expected-id 0x2b900f0f ..."
     AUTO auto1.tap - use "jtag newtap auto1 tap -expected-id 0x07926001 ..."
     AUTO auto2.tap - use "jtag newtap auto2 tap -expected-id 0x0b73b02f ..."
     AUTO auto0.tap - use "... -irlen 4"
     AUTO auto1.tap - use "... -irlen 4"
     AUTO auto2.tap - use "... -irlen 6"
     no gdb ports allocated as no target has been specified
    
    The patch tweaks IR setup a bit, so we can represent TAPs with
    undeclared IR length.
    
    Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
    6cb1d10c