1. 13 Nov, 2009 6 commits
    • Zachary T Welch's avatar
      add command_handler_t type · ddb6138e
      Zachary T Welch authored
      This patch adds new typedefs for command handler callback functions.
      Users of this type signature were updated to use these new types.
      It uses the new __COMMAND_HANDLER macro to prevent duplication.
      ddb6138e
    • Zachary T Welch's avatar
      add COMMAND_HANDLER and COMMAND_HELPER macros · 3f9fd4e2
      Zachary T Welch authored
      The COMMAND_HANDLER and COMMAND_HELPER macros allow commands to be
      defined in a manner that decouples them from the exact order and type of
      their parameters.  Once converted, incremental changes to the command
      handler type can be addressed in incremental patches that do not need to
      touch the entire tree.
      
      These macros' implementation, __COMMAND_HANDLER, is used to define the
      new command_handler_t type, and additional patches will use it to derive
      new macros to define extended command types (e.g. flash, nand, pld).
      The CALL_COMMAND_HANDLER provides a means of calling helpers or nested
      handlers from withing a command handler.
      
      This patch uses C99 varadic macro expansion.  Please report compilers
      that cannot handle this code.
      3f9fd4e2
    • Zachary T Welch's avatar
      add command_output_handler_t · 1ae4d93c
      Zachary T Welch authored
      Add a typedef for command output handler function type, simplifying
      the appearance of functions that use it and eliminating duplicate code.
      1ae4d93c
    • David Brownell's avatar
      Cortex-A8: fix indent · 5eb638c7
      David Brownell authored
      
      
      The "remove (forward) declarations" patch goofed indentation on the
      "cortexa8_target" struct; fix.
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      5eb638c7
    • Zachary T Welch's avatar
      nand: rename device to nand · e8e94ab2
      Zachary T Welch authored
      To be more informative (and consistent with flash and pld trees), change
      'device' parameter name to 'nand' in NAND source files.  This change
      eliminates confusing 'device->device->' instance from the code, and
      it simplifies the forthcoming command handler patches.
      e8e94ab2
    • David Brownell's avatar
      ETM: start support for ETMv2+ · d47764ff
      David Brownell authored
      
      
      ARM11 and newer cores include updated ETM modules.  Recognize
      their version codes and some key config differences.  Sanity
      checked on an OMAP2, with an ETM11RV r0p1 (ETMv3.1).
      
      This still handles only scan chain 6, with at most 128 registers.
      Newer cores (mostly, Cortex) will need to use the DAP instead.
      
      Note that the newer ETM modules don't quite fit the quirky config
      model of the older ones ... having more port widths is easy, but
      the modes aren't the same.  That still needs to change.
      
      Fix a curious bug ... how did the register cache NOT get saved??
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      d47764ff
  2. 12 Nov, 2009 7 commits
  3. 11 Nov, 2009 19 commits
    • Zachary T Welch's avatar
      fix 'jtag interface' behavior · 5e1b500b
      Zachary T Welch authored
      Without this patch, running "openocd -c 'jtag interface'" segfaults.
      Now, it returns the string "undefined" when the interface is unset.
      5e1b500b
    • Zachary T Welch's avatar
      improve command registration · 158698e3
      Zachary T Welch authored
      Eliminate duplicate code for linking commands into a list.
      
      Adds a check to ensure the command does not already exist;
      if it does, return that one instead of creating a duplicate.
      158698e3
    • Zachary T Welch's avatar
      add help regardless of callback · 46d9ba4c
      Zachary T Welch authored
      Add help for commands regardless of whether a handler is involved.
      With this, all sorts of new commands can be found in 'help' text.
      Hopefully, all of them have been documented....
      
      Sadly, the lsort function appears to handle nested lists poorly, such
      that sub-commands do not group with their parents.
      46d9ba4c
    • Zachary T Welch's avatar
      eliminate duplicate helptext management · a1a3ee57
      Zachary T Welch authored
      Add helpers to manage adding entries to the helptext list.
      Adds support for arbitrarily nested commands.
      a1a3ee57
    • Zachary T Welch's avatar
      add command_name helper · 2d3cc1ea
      Zachary T Welch authored
      The command_name function returns a malloced string for a given
      command and its parents.  This can be used to display a message
      to the user, but it is used internally to handle registration
      and syntax errors.  This helps permit arbitrary command nesting.
      2d3cc1ea
    • Zachary T Welch's avatar
      wrap help command · f93c9808
      Zachary T Welch authored
      Use continuation characters to wrap the help command into 80 columns.
      f93c9808
    • Zachary T Welch's avatar
      remove obsolete doxygen comments · 2821115a
      Zachary T Welch authored
      Documenting command handler parameters is redundant and pointless.
      2821115a
    • Zachary T Welch's avatar
      remove more useless declarations · 39ab1c1a
      Zachary T Welch authored
      Removes forward declarations by moving command registration after
      defintion of the command handlers.
      39ab1c1a
    • Zachary T Welch's avatar
      e9974316
    • Zachary T Welch's avatar
      add const keyword to some APIs · ca594adb
      Zachary T Welch authored
      Add 'const' keyword to 'char *' parameters to allow command handlers to
      pass constant string arguments.  These changes allow the 'args' command
      handler to be changed to 'const' in a subsequent patch.
      ca594adb
    • Zachary T Welch's avatar
      change argv to args in command handlers · 9741e126
      Zachary T Welch authored
      Subsequent patches expect all command handlers to use a uniform
      parameter naming scheme.  In the entire tree, these two files used
      standard 'argv' instead of our non-standard 'args'.  This patch opts
      to reduces the noise required to unify the command handlers, using
      dominant 'args' form.
      
      A future patch may be used to convert us back to the standard argv, but
      that requires coordination with all developers to minimize disruptions.
      9741e126
    • Zachary T Welch's avatar
      script_debug(): improve types · e09d8938
      Zachary T Welch authored
      Use unsigned type for number of arguments.
      e09d8938
    • Zachary T Welch's avatar
      command.c: make private routines static · c9429693
      Zachary T Welch authored
      This patch also improves the signature of run_command function.
      c9429693
    • Zachary T Welch's avatar
      log: improve log_callback_fn signature · 6a2e83c0
      Zachary T Welch authored
      Use unsigned type for line number in log_callback_fn signature.
      6a2e83c0
    • Zachary T Welch's avatar
      time_support: improve use of types · 0cd414c7
      Zachary T Welch authored
      Update timeval_add_time to use long int; implement timeval_add with it.
      Update timeval_ms to check gettimeofday return value, return int64_t.
      0cd414c7
    • Zachary T Welch's avatar
      makefiles: improve build order · b7b4efcd
      Zachary T Welch authored
      Separates various groups of files to be built in logical succession.
      In each layer, the core module (target.c, nand.c, etc.) is built _after_
      their helper modules (e.g. image.c, nand_ecc.c) but _before_ any of
      their drivers (e.g. arm966e.c, mx3_nand.c).
      
      This allows problems introduced at the bottom of the stack to result
      in build failures as soon as possible, as the helpers and core should
      wrap portions of them.
      b7b4efcd
    • David Brownell's avatar
      ETM cleanup · d796ce0e
      David Brownell authored
      
      
      Various cleanups of ETM related code.
      
       - Saner error return paths
       - Simplify arm7_9 init ... no need for extra zeroing!
       - Shrink some lines
       - Tweak some diagnostics
       - Use shorter name for ETM struct type.
       - Don't exit()
      
      and similar.  The diagnostics look forward to having
      this ETM code work with more than just ARM7/ARM9.
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      d796ce0e
    • Zachary T Welch's avatar
      fix bug in ARM720: bugfix · 583a293a
      Zachary T Welch authored
      583a293a
    • David Brownell's avatar
      ARM720: bugfix · d570e4f6
      David Brownell authored
      
      
      The "ARM720 uses the new inheritance/nesting scheme" patch
      wrongly scrubbed a calloc() from arm720t_target_create().
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      d570e4f6
  4. 10 Nov, 2009 8 commits