1. 27 Feb, 2010 1 commit
    • David Brownell's avatar
      interface: define TMS sequence command · a3245bd7
      David Brownell authored
      
      
      For support of SWD we need to be able to clock out special bit
      sequences over TMS or SWDIO.  Create this as a generic operation,
      not yet called by anything, which is split as usual into:
      
       - upper level abstraction ... here, jtag_add_tms_seq();
       - midlayer implementation logic hooking that to the lowlevel code;
       - lowlevel minidriver operation ... here, interface_add_tms_seq();
       - message type for request queue, here JTAG_TMS.
      
      This is done slightly differently than other operations: there's a flag
      saying whether the interface driver supports this request.  (In fact a
      flag *word* so upper layers can learn about other capabilities too ...
      for example, supporting SWD operations.)
      
      That approach (flag) lets this method *eventually* be used to eliminate
      pathmove() and statemove() support from most adapter drivers, by moving
      all that logic into the mid-layer and increasing uniformity between the
      various drivers.  (Which will in turn reduce subtle bugginess.)
      
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      a3245bd7
  2. 03 Feb, 2010 1 commit
  3. 25 Jan, 2010 1 commit
  4. 14 Dec, 2009 1 commit
  5. 08 Dec, 2009 1 commit
  6. 05 Dec, 2009 1 commit
  7. 04 Dec, 2009 1 commit
    • Zachary T Welch's avatar
      separate Jim from jtag/core.c · 79a73a78
      Zachary T Welch authored
      After previous efforts, only one Jim routine remained in jtag/core.c,
      and moving it to jtag/tcl.c painlessly finishes separating these layers.
      The headers need separating, but the implementation is clean.
      79a73a78
  8. 01 Dec, 2009 1 commit
  9. 17 Nov, 2009 1 commit
  10. 16 Nov, 2009 3 commits
  11. 13 Nov, 2009 5 commits
  12. 09 Nov, 2009 1 commit
    • David Brownell's avatar
      finish removing deprecated/obsolete commands · d70d9634
      David Brownell authored
      
      
      It's been about a year since these were deprecated and, in most
      cases, removed.  There's no point in carrying that documentation,
      or backwards compatibility for "jtag_device" and "jtag_speed",
      around forever.  (Or a few remnants of obsolete code...)
      
      Removed a few obsolete uses of "jtag_speed":
      
       - The Calao stuff hasn't worked since July 2008.  (Those Atmel
         targets need to work with a 32KHz core clock after reset until
         board-specific init-reset code sets up the PLL and enables a
         faster JTAg clock.)
       - Parport speed controls don't actually work (tops out at about
         1 MHz on typical HW).
       - In general, speed controls need to live in board.cfg files (or
         sometimes target.cfg files), not interface.cfg ...
      
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      d70d9634
  13. 26 Oct, 2009 1 commit
    • 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
  14. 25 Oct, 2009 1 commit
  15. 20 Oct, 2009 1 commit
  16. 15 Oct, 2009 1 commit
  17. 10 Oct, 2009 1 commit
  18. 09 Oct, 2009 2 commits
  19. 08 Oct, 2009 2 commits
    • David Brownell's avatar
      prevent abort via polling during jtag_reset · a8234af0
      David Brownell authored
      
      
      Observed:
      
        openocd: core.c:318: jtag_checks: Assertion `jtag_trst == 0' failed.
      
      The issue was that nothing disabled background polling during calls
      from the TCL shell to "jtag_reset 1 1".  Fix by moving the existing
      poll-disable mechanism to the JTAG layer where it belongs, and then
      augmenting it to always pay attention to TRST and SRST.
      
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      a8234af0
    • David Brownell's avatar
      Stop ignoring most scan chain validation errors · 40c9668b
      David Brownell authored
      
      
      Among other things this causes startup errors to kick in the
      fallback "reset harder" logic during server startup.  Comments
      are also updated a bit, explaining what the various error paths
      signify (in at least my observation).
      
      There's one class of validation error that we can still plausibly
      ignore:  when wrong IDCODE values are observed.
      
      This change seems to have helped make an OMAP5912 behave much
      more reliably.  There's still some post-reset flakiness, but
      it's unrelated to scan verification.
      
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      40c9668b
  20. 07 Oct, 2009 3 commits
  21. 06 Oct, 2009 1 commit
  22. 05 Oct, 2009 2 commits
    • dbrownell's avatar
      Improve jtag_validate_ircapture() diagnostics. · 7a57c316
      dbrownell authored
      Bugfix the error message so it shows the disliked value, and add
      a debug message showing each TAP's IR capture value, all N bits.
      
      This just changes diagnostics ... it still ignores the parameters
      given to us at TAP declaration time.
      
      
      git-svn-id: svn://svn.berlios.de/openocd/trunk@2801 b42882b7-edfa-0310-969c-e2dbd0fdcd60
      7a57c316
    • dbrownell's avatar
      Add a new JTAG "setup" event; use for better DaVinci ICEpick support. · 7c7467b3
      dbrownell authored
      The model is that this fires after scanchain verification, when it's
      safe to call "jtag tapenable $TAPNAME".  So it will fire as part of
      non-error paths of "init" and "reset" command processing.  However it
      will *NOT* trigger during "jtag_reset" processing, which skips all
      scan chain verification, or after verification errors.
      
      ALSO:
       - switch DaVinci chips to use this new mechanism
       - log TAP activation/deactivation, since their IDCODEs aren't verified
       - unify "enum jtag_event" scripted event notifications
       - remove duplicative JTAG_TAP_EVENT_POST_RESET
      
      
      git-svn-id: svn://svn.berlios.de/openocd/trunk@2800 b42882b7-edfa-0310-969c-e2dbd0fdcd60
      7c7467b3
  23. 29 Sep, 2009 3 commits
  24. 26 Sep, 2009 2 commits
  25. 21 Sep, 2009 1 commit
    • dbrownell's avatar
      Update the jtag-examine_chain() logic to verify that there's no · d20103cd
      dbrownell authored
      garbage after the expected data (from the TAPs' BYPASS or IDCODE
      registers).
      
      NOTE that there was previously some code that looked like it was
      trying to do this ... which didn't work, because it was looping
      over the list of expected TAPs, and never checked *after* that
      list completed!  That could hide some *nasty* reset issues...
      
      Also replace a now-obsolete scanchain length test with one that
      behaves correctly; and update reporting of unexpected IDCODEs.
      
      
      git-svn-id: svn://svn.berlios.de/openocd/trunk@2739 b42882b7-edfa-0310-969c-e2dbd0fdcd60
      d20103cd
  26. 20 Sep, 2009 1 commit
    • dbrownell's avatar
      Debug message updates: · 0c4b119d
      dbrownell authored
       - Shrink messaging during resets, primarily by getting rid of
         "nothing happened" noise that hides *useful* information.
      
       - Improve: the "no IDCODE" message by identifying which tap only
         supports BYPASS; and the TAP event strings.
      
      Related minor code updates:
      
       - Remove two needless tests when examining the chain:  we know
         we have a TAP, and that all TAPs have names.
      
       - Clean up two loops, turning "while"s into "for"s which better
         show what's actually being done.
      
      
      git-svn-id: svn://svn.berlios.de/openocd/trunk@2736 b42882b7-edfa-0310-969c-e2dbd0fdcd60
      0c4b119d