zwelch [Tue, 9 Jun 2009 10:07:07 +0000 (10:07 +0000)]
Encapsulate the core jtag interface pointer:
- Add new jtag_config_khz to increase encapsulation of jtag->khz call.
- Add new jtag_get_speed_readable to encapsulate of jtag->speed_div call.
- Make definition of jtag static in core.c, remove extern from tcl.c.
zwelch [Tue, 9 Jun 2009 08:41:36 +0000 (08:41 +0000)]
Continue encapsulation of JTAG event callback sub-API:
- Move jtag_event_callbacks struct to core.c; it's an implementation detail.
- Move jtag_*_event_callbacks next to the definition of the new function type.
zwelch [Tue, 9 Jun 2009 08:41:29 +0000 (08:41 +0000)]
Add jtag_event_handler_t:
- Define the function signature used by the JTAG event callback mechanism.
- Provide Doxygen block for new type, including TODO for its return value.
zwelch [Tue, 9 Jun 2009 08:41:14 +0000 (08:41 +0000)]
Improve encapsulation of JTAG event handling:
- Move nvp_jtag_tap_event and jtag_tap_handle_event to tcl.c.
- Change both to be static; remove declaration of function from jtag.h.
zwelch [Tue, 9 Jun 2009 08:41:00 +0000 (08:41 +0000)]
Cleanup and encapsulate IR Capture verification:
- Add accessors for setting the jtag_verify_capture_ir flag.
- Use them in handle_verify_ircapture_cpmmand
- Change variable type to bool; make it static.
zwelch [Tue, 9 Jun 2009 08:40:46 +0000 (08:40 +0000)]
Move the jtag_error helper routines out of header file:
- Makes jtag_error static, add new get helper function for completeness.
- Improve and add documentation and style for these helpers.
zwelch [Tue, 9 Jun 2009 08:40:31 +0000 (08:40 +0000)]
Encapsulate jtag_reset_config using accessors:
- Update handle_reset_config_command in tcl.c to use new helpers.
- Replace direct accesses in JTAG interface and target drivers.
zwelch [Tue, 9 Jun 2009 08:40:10 +0000 (08:40 +0000)]
Add get and set accessors for jtag_speed:
- Setter calls the interface driver callback to improve core encapsulation.
- Use getter in standard JTAG interface drivers and ZY1000 minidriver.
zwelch [Tue, 9 Jun 2009 08:39:50 +0000 (08:39 +0000)]
Encapsulate the jtag_trst and jtag_srst variables:
- Add accessor functions to return their value.
- Use new SRST accessor in cortex_m3.c and mips_m4k.c
zwelch [Tue, 9 Jun 2009 04:15:13 +0000 (04:15 +0000)]
Split main jtag.c file into two layers:
- src/jtag/core.c: contains the low-level JTAG TAP and scanning routines.
- src/jtag/tcl.c: contains high-level JTAG TCL commands that use the core.
- Remove static keywords from routines in core.c, extern from tcl.c:
- jtag, jtag_interface global variables
- jtag_{examine,validate}_chain and jtag_tap_{init,free} functions
- Added myself to the copyright header in both of these files.
- Used 'svn cp' to add files, so versioning was preserved for both.
zwelch [Tue, 9 Jun 2009 02:23:44 +0000 (02:23 +0000)]
Cleanup jtag_tap_by_abs_position:
- Remove unused orig_n local variable.
- Merge variable declaration with first use.
- Update code to use current style guidelines.
zwelch [Tue, 9 Jun 2009 02:23:27 +0000 (02:23 +0000)]
Simplify and fix bug in jtag_tap_by_string:
- Bug fix: Use unsigned type and strtoul when parsing for position number.
- Simplify logic by returning directly when a tap is found by name.
- Reduce scope: declare temporary variables with first use.
- Bring code up to current style guidelines.
zwelch [Tue, 9 Jun 2009 01:16:35 +0000 (01:16 +0000)]
Change jtag_add_pathmove to set jtag_error rather than call exit():
- Add new error codes to encode the possible failure conditions.
- Add documentation to describe the routine's possible error codes.
zwelch [Tue, 9 Jun 2009 01:16:19 +0000 (01:16 +0000)]
Reduce scope or eliminate temporary variables in jtag_add_statemove:
- Change types of tms_bits and tms_count to unsigned, eliminates a cast.
- Use moves[] only if needed; a single move can use goal_state directly.
- Declare loop induction variable inside its control statement.
- Remove retval in favor of direct returns.
zwelch [Tue, 9 Jun 2009 00:58:23 +0000 (00:58 +0000)]
David Brownell <david-b@pacbell.net>:
Add configuration for an old AT91rm9200 board, the Cogent CSB 337.
Worth noting from the OpenOCD perspective:
- It got a real hardware trace port connector; wired up here as
much as we can, lacking inexpensive trace-aware dongles.
- This is the first in-tree use of the "arm920t cp15" command.
It adjusts the CPU clocking and enables i-cache, which gives
more than 4x speedup after booting Linux; it's visible even
just running U-Boot.
zwelch [Mon, 8 Jun 2009 13:12:17 +0000 (13:12 +0000)]
Factor interface list to its own command:
- Add handle_interface_list_command, used by handle_interface_command.
- Display output of new list to command console.
- Change first index of displayed drivers to 1; it's only cosmetic.
zwelch [Mon, 8 Jun 2009 13:12:12 +0000 (13:12 +0000)]
Cleanup and simplify handle_interface_command:
- Reduce indent: invert logic of strcmp test.
- Reduce scope: declare variables upon first use in loops.
- Reduce unsaid: compare end of table with NULL.
- Remove superfluous braces around blocks with one statment.
- Improve language that introduces the list of built-in drivers.
zwelch [Mon, 8 Jun 2009 10:58:28 +0000 (10:58 +0000)]
Simplify jtag_add_sleep:
- Add todo for removing keep_alive: is this a layering violation?
- Use jtag_set_error instead of accessing jtag_error directly.
- Remove superfluous retval temporary variable and empty return.
zwelch [Mon, 8 Jun 2009 10:57:18 +0000 (10:57 +0000)]
Simplify jtag_add_pathmove:
- Use jtag_set_error instead of accessing jtag_error directly.
- Eliminate superfluous retval temporary variable.
- Reduce scope of loop induction variable.
- Wrap to fit within 80 columns.
zwelch [Mon, 8 Jun 2009 10:56:49 +0000 (10:56 +0000)]
Simplify jtag_add_plain_dr_scan:
- Use jtag_set_error instead of accessing jtag_error directly.
- Wrap function arguments to fit everything in 80 columns.
- Move retval variable to location of first use.
zwelch [Mon, 8 Jun 2009 10:56:36 +0000 (10:56 +0000)]
Simplify jtag_add_dr_scan:
- Use jtag_set_error instead of accessing jtag_error directly.
- Wrap function arguments to fit everything in 80 columns.
- Move retval variable to location of first use.
zwelch [Mon, 8 Jun 2009 10:56:25 +0000 (10:56 +0000)]
Simplify jtag_add_plain_ir_scan:
- Use jtag_set_error instead of accessing jtag_error directly.
- Wrap function arguments to fit everything in 80 columns.
zwelch [Mon, 8 Jun 2009 10:56:18 +0000 (10:56 +0000)]
Simplify jtag_add_ir_scan_noverify:
- Use jtag_set_error instead of accessing jtag_error directly.
- Wrap and rename function arguments to fit everything in 80 columns.
- Move retval variable to location of first use.
zwelch [Mon, 8 Jun 2009 10:56:07 +0000 (10:56 +0000)]
Simplify jtag_execute_queue:
- Add static inline jtag_error_clear helper to return and clear jtag_error.
- Use new helper to shrink body of function to two lines.
zwelch [Mon, 8 Jun 2009 10:55:44 +0000 (10:55 +0000)]
Cleanup handle_runtest_command:
- Make command argument require exactly one argument; do not allow extras.
- Remove superfluous whitespace at end of function.
- Wrap function arguments to fit in 80 columns.
zwelch [Mon, 8 Jun 2009 10:55:36 +0000 (10:55 +0000)]
Clean up handle_jtag_reset_command:
- Make command require exactly two arguments; do not allow more than two.
- Move temporary variable declarations closer to point of first use.
- Remove superfluous braces around single statments.
- Wrap to 80 column width.
zwelch [Mon, 8 Jun 2009 10:55:24 +0000 (10:55 +0000)]
Extend handle_jtag_n{s,t}rst_delay_command routines:
- Add support to display the reset delays too, like the other commands.
- Always show the values, so users can see if they are being redundant.
zwelch [Mon, 8 Jun 2009 10:54:52 +0000 (10:54 +0000)]
Update JTAG reset delay command handlers:
- Fixes for error handling:
- Return a syntax error instead of calling exit(-1).
- Return error when more than one argument is provided too.
- Remove useless braces and indent after the if/return statements.
- Wrap function arguments to fit in 80 columns.
oharboe [Mon, 8 Jun 2009 06:18:13 +0000 (06:18 +0000)]
David Brownell <david-b@pacbell.net> Bugfix: $target_name cget/configure -work-area-backup commands
should return the "is it backed up?" flag, not the work area size.
oharboe [Mon, 8 Jun 2009 06:16:43 +0000 (06:16 +0000)]
David Brownell <david-b@pacbell.net>
- Don't let disabled TAPs be set as the current target
- Improve "targets" output:
* Remove undesirable "chain position" number; we discourage using them
* TAP and Target column updates:
+ make them long enough for current usage
+ improve labels, removing guesswork
+ "TapName" label patches scan_chain output
* Highlight the "current" target
* Display "tap disabled" as a new pseudo-state
* Update docs accordingly
zwelch [Mon, 8 Jun 2009 04:35:05 +0000 (04:35 +0000)]
Reorder configure script macros:
- Check for a compiler before looking for libraries or header files.
- Initialize automake before calling other AM_ macros.
- Disable libtool shared libraries by default.
- Remove checks for unused C++, Fortran, and Java compilers.
- Remove redundant AC_CANONICAL_HOST; called by AC_PROG_LIBTOOL.
zwelch [Mon, 8 Jun 2009 04:34:45 +0000 (04:34 +0000)]
Rework parallel port configure script option handling:
- Move AC_ARG_ENABLE for secondary parallel port options:
- These macros cause their configure options to appear unconditionally,
so they should not be placed inside conditional logic.
- Groups them with primary parallel port driver option.
- Update these options to show '-' instead of '_'; both still work.
- Update command help text to show host architecture/OS requirements.
- Display a warning when these options have been provided and the
configure script will ignore the setting that the user specified.
zwelch [Mon, 8 Jun 2009 00:42:15 +0000 (00:42 +0000)]
Finish off the dummy minidriver integration:
- Try to disambiguates minidriver options from "standard" driver options.
- Make minidummy symbols more explict about being a minidriver.
- Move minidummy.c into minidummy directory to put it with its header.
In configure.in:
- Improve configuration option to allow new minidriver implementations:
- Change option from --enable-minidummy to --enable-minidriver-dummy.
- Move it to the end of the list of options.
- Provides a clear pattern for future minidrivers.
- Update handling of HAVE_JTAG_MINIDRIVER_H:
- Check for external jtag_minidriver.h only with --enable-ecosboard.
- Otherwise, define it when --enable-minidriver-dummy is provided.
- Add check to ensure only one minidriver is enabled.
- When a minidriver is enabled, warn user that standard drivers are not built.
- Use proper AC_DEFINE semantics with MINIDRIVER_DUMMY.
In src/jtag/Makefile.am:
- Restructure handling of minidummy source files.
- Include minidummy driver header in the distribution.
In src/jtag/jtag.c:
- Restructure preprocessor logic to include:
- only one minidriver, or
- all configured standard drivers.
zwelch [Sun, 7 Jun 2009 23:35:29 +0000 (23:35 +0000)]
David Brownell <david-b@pacbell.net>:
Let disabled targets be ignored during normal operation:
- In target_examine(), ignore disabled TAPs
- Reset handling must not poke at them either:
* fail $target_name arp_* operations on disabled TAPs
* in startup.tcl, don't even issue the arp_* wait ops
ZW: removed superfluous braces from the patch to target.c.
zwelch [Sun, 7 Jun 2009 23:10:50 +0000 (23:10 +0000)]
David Brownell <david-b@pacbell.net>:
Various minor tweaks for the User's guide.
- Fix various minor (but repeated) typographic goofs;
- Talk about TAP "declaration" not "creation" (they exist
even if OpenOCD never learns about their board);
- Encourage board.cfg for reset config, not target.cfg
- Fill in some missing information (e.g. x16_as_x8)
- Add a cross reference to the FAQ on TAP ordering;
- Unclutter the concept index a bit (re core-specific commands)
- Provide a bit more info about TAP states
zwelch [Sun, 7 Jun 2009 05:24:27 +0000 (05:24 +0000)]
Factoring of jtag_examine_chain for maintainability:
- Improve variable type: change device_count to unsigned.
- Improves jtag_tap_count_enabled() API too (now returns unsigned).
zwelch [Sun, 7 Jun 2009 05:24:12 +0000 (05:24 +0000)]
Factoring of jtag_examine_chain for maintainability:
- Factor TAP ID matching into new helper function.
- Simplifies the main jtag_examine_chain loop logic considerably.
zwelch [Sun, 7 Jun 2009 05:23:40 +0000 (05:23 +0000)]
Factoring of jtag_examine_chain for maintainability:
- Factor end-of-chain verfication into new helper routine.
- Change 'unexpected' local variable name to 'triggered' and type to bool.