Skip to content
Snippets Groups Projects
  1. Aug 09, 2011
  2. Aug 16, 2010
  3. Jul 17, 2010
  4. Jul 02, 2010
    • David Brownell's avatar
      initial "transport" framework · 93f2afa4
      David Brownell authored
      
      This adds the guts of a transport framework with initialization,
      which should work with current JTAG-only configurations (tested
      with FT2232).
      
      Each debug adapter can declare the transports it supports, and
      exactly one transport is initialized.  (with its commands) in
      any given OpenOCD session.
      
        * Define a new "struct transport with init hooks and a few
       "transport"  subcommands to support it:
      
           "list" ... list the transports configured (just "jtag" for now)
           "select" ... makes the debug session use that transport
           "init" ... initializes the selected transport (internal)
      
        * "interface_transports" ... declares transports the current interface
          can support.  (Some will do this from C code instead, when there are
          no hardware versioning (or other) issues to prevent it.
      
      Plus some FT2232 tweaks, including a few to streamline upcoming
      support for an SWD transport (initially for Luminary adapters).
      
      Eventually src/jtag should probably become src/transport, moving
      jtag-specific stuff  to transport/jtag.
      
      Signed-off-by: default avatarDavid Brownell <db@helium.(none)>
      93f2afa4
  5. Jun 03, 2010
  6. Mar 27, 2010
    • David Brownell's avatar
      jtag/tcl.c cleanup -- split out "adapter.c" · d60ebc0a
      David Brownell authored
      
      Clean up the jtag/tcl.c file, which was one of the biggest and
      messiest ones in that directory.  Do it by splitting out all the
      generic adapter commands to a separate "adapter.c" file (leaving
      the "tcl.c" file holding only JTAG utilities).
      
      Also rename the little-used "jtag interface" to "adapter_name", which
      should have been at least re-categorized earlier (it's not jtag-only).
      
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      d60ebc0a
  7. Mar 17, 2010
  8. Mar 15, 2010
  9. Mar 11, 2010
  10. Mar 02, 2010
    • David Brownell's avatar
      LPC1768 updates, IAR board support · 53b3d4dd
      David Brownell authored
      
      Fix some issues with the generic LPC1768 config file:
      
       - Handle the post-reset clock config:  4 MHz internal RC, no PLL.
         This affects flash and JTAG clocking.
      
       - Remove JTAG adapter config; they don't all support trst_and_srst
      
       - Remove the rest of the bogus "reset-init" event handler.
      
       - Allow explicit CCLK configuration, instead of assuming 12 MHz;
         some boards will use 100 Mhz (or the post-reset 4 MHz).
      
       - Simplify: rely on defaults for endianness and IR-Capture value
      
       - Update some comments too
      
      Build on those fixes to make a trivial config for the IAR LPC1768
      kickstart board (by Olimex) start working.
      
      Also, add doxygen to the lpc2000 flash driver, primarily to note a
      configuration problem with driver: it wrongly assumes the core clock
      rate never changes.  Configs that are safe for updating flash after
      "reset halt" will thus often be unsafe later ... e.g. for LPC1768,
      after switching to use PLL0 at 100 MHz.
      
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      53b3d4dd
  11. Feb 27, 2010
    • David Brownell's avatar
      new "stellaris recover" command · e70d42a7
      David Brownell authored
      
      Stellaris chips have a procedure for restoring the chip to
      what's effectively the "as-manufactured" state, with all the
      non-volatile memory erased.  That includes all flash memory,
      plus things like the flash protection bits and various control
      words which can for example disable debugger access.  clearly,
      this can be useful during development.
      
      Luminary/TI provides an MS-Windows utility to perform this
      procedure along with its Stellaris developer kits.  Now OpenOCD
      users will no longer need to use that MS-Windows utility.
      
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      e70d42a7
  12. Feb 21, 2010
  13. Feb 14, 2010
    • David Brownell's avatar
      NEWS: mention removal of obsolete commands · a2ce3a51
      David Brownell authored
      
      Removed remaining support for various commands, like advice for
      migrating old-style TAP declarations.
      
      The documentation no longer describes them either ... so if users have
      been delaying config updates, they may need to consult older releases.
      
      ALL this stuff has been clearly marked as "do not use" for at least a
      year now, so anyone still using it hasn't been holding up their end.
      
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      a2ce3a51
  14. Jan 23, 2010
    • David Brownell's avatar
      NEWS updates · 82c3c478
      David Brownell authored
      
      Summarize most ARM11 and Cortex-A8 updates as "acting much more
      like other ARMs", and mention code sharing.
      
      Clarify a few other points, including support for "reset-assert"
      on all ARMs except Cortex-M (which doesn't exactly need it).
      
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      82c3c478
  15. Jan 15, 2010
  16. Jan 14, 2010
    • David Brownell's avatar
      NOR: add optional "flash erase_address" sector padding · 73566405
      David Brownell authored
      
      Add a NOR flash mechanism where erase_address ranges can be padded
      out to sector boundaries, triggering a diagnostic:
      
        > flash erase_address 0x0001f980 16
        address range 0x0001f980 .. 0x0001f98f is not sector-aligned
        Command handler execution failed
        in procedure 'flash' called at file "command.c", line 647
        called at file "command.c", line 361
        >
      
        > flash erase_address pad 0x0001f980 16
        Adding extra erase range, 0x0001f800 to 0x0001f97f
        Adding extra erase range, 0x0001f990 to 0x0001fbff
        erased address 0x0001f980 (length 16) in 0.095975s (0.163 kb/s)
        >
      
      This addresses what would otherwise be something of a functional
      regression.  An earlier version of the interface had a dangerous
      problem:  it would silently erase data outside the range it was
      told to erase.  Fixing that bug turned up some folk who relied on
      that unsafe behavior.  (The classic problem with interface bugs!)
      Now they can get that behavior again.  If they really need it,
      just specify "pad".
      
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      73566405
  17. Jan 13, 2010
    • David Brownell's avatar
      Cortex-M3: improved core exception handling · d91941d5
      David Brownell authored
      
      This updates three aspects of debugger/exception interactions:
      
       - Save the user's "vector_catch" setting, and restore it after reset.
         Previously, it was obliterated (rather annoyingly) each time.
      
       - Don't catch BusFault and HardFault exceptions unless the user says
         to do so.  Target firmware may need to handle them.
      
       - Don't modify SHCSR to prevent escalating BusFault to HardFault.
         Target firmware may expect to handle it as a HardFault.
      
      Those simplifications fix several bugs.  In one annoying case, OpenOCD
      would cause the target to lock up on ome faults which triggered after
      the debugger disconnected.
      
      NOTE:  a known remaining issue is that OpenOCD can still leave DEMCR
      set after an otherwise-clean OpenOCD shutdown.
      
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      d91941d5
  18. Jan 09, 2010
  19. Dec 28, 2009
    • David Brownell's avatar
      Fix Luminary FT2232 layout docs/configs · ec297e4b
      David Brownell authored
      
      Most of this patch updates documentation and comments for various
      Luminary boards, supporting two bug fixes by helping to make sense
      of the current mess:
      
       - Recent rev C lm3s811 eval boards didn't work.  They must use
         the ICDI layout, which sets up some signals that the older
         boards didn't need.  This is actually safe and appropriate
         for *all* recent boards ... so just make "luminary.cfg" use
         the ICDI layout.
      
       - "luminary-lm3s811.cfg", was previously unusable!  No VID/PID;
         and the wrong vendor string.  Make it work, but reserve it
         for older boards where the ICDI layout is wrong.
      
       - Default the LM3748 eval board to "luminary.cfg", like the
         other boards.  If someone uses an external JTAG adapter, all
         boards will use the same workaround (override that default).
      
      The difference between the two FT2232 layouts is that eventually
      the EVB layout will fail cleanly when asked to enable SWO trace,
      but the ICDI layout will as cleanly be able to enable it.  Folk
      using "luminary.cfg" with Rev B boards won't see anything going
      wrong until SWO support is (someday) added.
      
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      ec297e4b
  20. Dec 26, 2009
  21. Dec 21, 2009
  22. Dec 19, 2009
    • David Brownell's avatar
      ETM: add "etm trigger_debug" command · abe8b437
      David Brownell authored
      
      In conjunction with manual register setup, this lets the ETM trigger
      cause entry to debug state.   It should make it easier to test and
      bugfix the ETM code, by enabling non-trace usage and isolating bugs
      specific to thef ETM support.  (One current issue being that trace
      data collection using the ETB doesn't yet behave.)
      
      For example, many ARM9 cores with an ETM should be able to implement
      four more (simple) breakpoints and two more (simple) watchpoints than
      the EmbeddedICE supports.  Or, they should be able to support complex
      breakpoints, incorporating ETM sequencer, counters, and/or subroutine
      entry/exit criteria int criteria used to trigger debug entry.
      
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      abe8b437
    • David Brownell's avatar
      ETM trigger_percent becomes an ETB command · 9abad965
      David Brownell authored
      
      This command was misplaced; it's not generic to all traceport drivers,
      only the ETB supports this kind of configuration.  So move it, and
      update the relevant documentation.
      
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      9abad965
    • David Brownell's avatar
      NEWS: mention libftdi 0.17 · bfadd799
      David Brownell authored
      bfadd799
  23. Dec 18, 2009
    • David Brownell's avatar
      NOR FLASH: only erase/unlock whole sectors · 3f18900b
      David Brownell authored
      
      Much to my surprise, I observed a "flash erase_address ..."
      command erasing data which I said should not be erased.
      
      The issue turns out to be generic NOR flash code which was
      silently, and rather dangerously, morphing partial-sector
      references into unrequested whole-sector ones.
      
      This patch removes that low-level morphing.  If desired, it
      can and should be done in higher level code.  (We might need
      to fix some stuff in the GDB server code.)
      
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      3f18900b
  24. Dec 05, 2009
  25. Dec 04, 2009
    • Nicolas Pitre's avatar
      basic ARM semihosting support · ed59dfc8
      Nicolas Pitre authored
      
      Semihosting enables code running on an ARM target to use the
      I/O facilities on the host computer. The target application must
      be linked against a library that forwards operation requests by
      using the SVC instruction that is trapped at the Supervisor Call
      vector by the debugger.  The "hosted" library version provided
      with CodeSourcery's Sourcery G++ Lite for ARM EABI is one example.
      
      This is currently available for ARM9 processors, but any ARM
      variant should be able to support this with little additional work.
      
      Tested using binaries compiled with Sourcery G++ Lite 2009q1-161
      and ARM RVCT 3.0.
      
      [dbrownell@users.sourceforge.net: doc tweaks, NEWS]
      
      Signed-off-by: default avatarNicolas Pitre <nico@marvell.com>
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      ed59dfc8
  26. Dec 01, 2009
  27. Nov 28, 2009
  28. Nov 26, 2009
  29. Nov 25, 2009
  30. Nov 24, 2009
  31. Nov 17, 2009
  32. Nov 15, 2009
    • David Brownell's avatar
      ARM11: use now-generic memory utils · 5d1a9033
      David Brownell authored
      
      Now the ARM11 cores can use the renamed arm_checksum_memory()
      and arm_blank_check_memory() routines ... do so.
      
      Sanity checked with "flash erase_check" of both NOR banks on an
      OMAP2420 ... the algorithm code dumped four lines of of "poll"
      status after each of almost 520 blocks (yes, *very* annoying) but
      gave plausible results after producing that spam.
      
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      5d1a9033
  33. Nov 05, 2009
  34. Nov 04, 2009
Loading