2
0
mirror of git://git.code.sf.net/p/openocd/code synced 2025-07-23 22:58:57 +10:00
Commit Graph

230 Commits

Author SHA1 Message Date
zwelch
4a70eeffb0 More JTAG interface driver cleanup:
- Moves references to global jtag interface to default core implementation.
- Missed this reference in the earlier "pointless" patch.  Mea culpa.

Important: this has a side-effect.  Previously, the error return inside
the interface routine short-circuited the remainder of that function
when 'init' has not been called.  With this patch, the command queue
will be cleared in the case that 'init' has been called.  Since that
case indicates a buggy script, this does not seem to be a problem.


git-svn-id: svn://svn.berlios.de/openocd/trunk@1995 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-06-02 06:49:53 +00:00
zwelch
c10d4d9a00 More JTAG interface driver cleanup:
- Add jtag_callback_queue_reset() to reset the callback queue.
- Make interface_jtag_execute_queue() use new helper function.


git-svn-id: svn://svn.berlios.de/openocd/trunk@1994 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-06-02 06:33:19 +00:00
zwelch
e733ac36bf More JTAG interface driver cleanup:
- Make interface_jtag_execute_queue call new helper function.
- Add default_interface_jtag_execute_queue to wrap jtag interface access.

This patch may look useless on its own, but it helps to isolate the core
JTAG variables from the interface_jtag_* routines, so the later can be
moved into jtag_driver.c in a pending patch.


git-svn-id: svn://svn.berlios.de/openocd/trunk@1993 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-06-02 06:21:49 +00:00
zwelch
6ef5a622af Clean up jtag command queue handling:
- Rename last_command_pointer as next_command_pointer, because this variable
  stores the address where jtag_queue_command() will store a command pointer.
- Make that variable static, since it is only used internally in jtag.c.
- Remove superfluous accessor for that now-static variable.
- Deobfuscate use of variables in jtag_command_queue.
- Add jtag_command_queue_reset helper function.
- Use it in interface_jtag_execute_queue.


git-svn-id: svn://svn.berlios.de/openocd/trunk@1992 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-06-02 05:47:00 +00:00
zwelch
deed7fb56c Start clean-up of JTAG driver interface:
- Factor jtag_add_scan_check to call new jtag_add_scan_check_alloc helper.
- Use conditional logic to define two versions of the helper.
- These helpers will be moved to other files in future patches.


git-svn-id: svn://svn.berlios.de/openocd/trunk@1989 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-06-02 03:38:50 +00:00
zwelch
a8f3ba8f5f David Brownell <david-b@pacbell.net>:
Make the TCL "drscan" and "irscan" commands finish in RUN/IDLE
unless the user specifies otherwise ... usually they'd choose
something like DRPAUSE or IRPAUSE, avoiding RUN/IDLE.

The current "end" state is whatever the preceding commands left
in "cmd_queue_end_state", which to TCL scripts isn't knowable.
This change should forestall various surprises/bugs.

Also check that any "end" state specified is safe in case this
adapter's JTAG clock is free-running.  For now, just issue a
warning; eventually a hard failure is probably correct.


git-svn-id: svn://svn.berlios.de/openocd/trunk@1988 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-06-01 23:30:58 +00:00
zwelch
5120d1263b David Brownell <david-b@pacbell.net>:
Whitespace fixes in jtag.c ... mostly end-of-line crap.
Flag "jtag_device" command as obsolete in its helptext.


git-svn-id: svn://svn.berlios.de/openocd/trunk@1987 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-06-01 23:13:24 +00:00
zwelch
a88871bc6a Encapsulate JTAG Cable API and interface structure, plan for new header file.
git-svn-id: svn://svn.berlios.de/openocd/trunk@1984 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-06-01 23:01:24 +00:00
zwelch
35082f788b Encapsulate JTAG minidriver functions, plan for new header file.
git-svn-id: svn://svn.berlios.de/openocd/trunk@1983 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-06-01 22:54:42 +00:00
oharboe
7662bbeaa5 added jtag_add_statemove() helper fn(actual fn written by Dick Hollonbeck, I just moved it).
git-svn-id: svn://svn.berlios.de/openocd/trunk@1980 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-06-01 19:58:20 +00:00
zwelch
335fee3f36 Encapsulate the global "jtag" jtag_interface pointer:
- Add jtag_interface_quit, factored from exit_handler() in openocd.c.
- Remove its extern declaration.
- Add static keyword to its definition.


git-svn-id: svn://svn.berlios.de/openocd/trunk@1952 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-30 22:23:12 +00:00
zwelch
d00a5cfe97 David Brownell <david-b@pacbell.net>:
Make it so the magic "reset_config" keywords can be provided in any
order.  This eliminates needless error paths, and makes it easier
to define things at the right level (adapter, board, target).
It also includes two other behavioral changes:

  (1)	When "handle_reset_config" sees a parameter error, it
  	exits without changing anything.   This is best viewed
	as a bugfix.  (Old behavior:  restore defaults, even if
	they weren't previously active.)

  (2)	Only the behaviors that were explicitly specified get
  	changed.  (Old behavior:  everything else gets reset to
	the "default".)  So for example you can now specify SRST
	drive requirements without saying anything about the
	three unrelated topics you previously had to specify.

That second one might cause confusion for any configs that end
up calling "reset_config" twice, so it will deserve to be called
out in the release notes.  (There were no such configurations in
the current OpenOCD source tree.)

Update docs accordingly.  Note that at least some versions of
the texi-to-html tools can't handle "@xref{with spaces}", but
those work properly in PDF and in the info files.


git-svn-id: svn://svn.berlios.de/openocd/trunk@1944 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-30 01:32:19 +00:00
zwelch
ad8f1b4295 David Brownell <david-b@pacbell.net>:
Doc (mostly) update for jtag_khz:
 - switch to @deffn syntax
 - add entry for "jtag_rclk"
 - move deprecated "jtag_speed" into collection of deprecated calls

And for ft2232, don't be the only adapter to *log* an error if RTCK
is requested; it's already reported properly, like any other nonfatal
command parameter.  "jtag_rclk" just works as expected, without any
scarey messages.


git-svn-id: svn://svn.berlios.de/openocd/trunk@1910 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-24 21:13:29 +00:00
zwelch
b6d87ad03d Submitted by Magnus Lundin <lundin@mlu.mine.nu>:
- Add jtag_execute_queue in jtag_add_reset after interface_jtag_add_reset.
- Use tap_set_state to demark TAP_RESET, instead of cmd_queue_cur_state
  - cmd_queue_cur_state needs to be retired.


git-svn-id: svn://svn.berlios.de/openocd/trunk@1892 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-23 20:50:06 +00:00
kc8apf
0ce234491a Author: Michael Bruck <mbruck@digenius.de>
-jtag.c, interface_jtag_add_ir_scan() [2/2] (version without goto):
    	- change 'found' to bool
    	- add comments on loops



git-svn-id: svn://svn.berlios.de/openocd/trunk@1876 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-21 17:20:05 +00:00
kc8apf
788cad7244 Author: Michael Bruck <mbruck@digenius.de>
-jtag.c, interface_jtag_add_ir_scan() [1/2]:
    	- remove temporary scan_size and use tap->ir_length instead
    	- slight loop restructuring to reduce indentation level




git-svn-id: svn://svn.berlios.de/openocd/trunk@1868 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-21 04:54:38 +00:00
kc8apf
73e31653fc Author: Michael Bruck <mbruck@digenius.de>
-jtag.c, interface_jtag_add_dr_out():
        - use pointer 'field' instead of scan->fields[field_count]
        - restructure the main loop to clearly separate the two cases: TAP is not bypassed / TAP is bypassed
          (this is to keep the function similar to interface_jtag_add_dr_scan())
        - fix bug where only the first output field has its tap field set
        - add asserts to verify that target_tap points to the one not bypassed TAP



git-svn-id: svn://svn.berlios.de/openocd/trunk@1867 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-21 04:53:07 +00:00
kc8apf
e007342669 Author: Michael Bruck <mbruck@digenius.de>
-jtag.c, interface_jtag_add_dr_scan():
            - use pointer 'field' instead of scan->fields[field_count]
            - restructure the main loop to clearly separate the two cases: TAP is not bypassed / TAP is bypassed
            - add an assert that each non-bypassed TAP receives at least one field
            - add an assert that checks that no superfluous input fields were passed



git-svn-id: svn://svn.berlios.de/openocd/trunk@1866 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-21 04:50:00 +00:00
kc8apf
7e3fd48b6a Author: Michael Bruck <mbruck@digenius.de>
-jtag.c, interface_jtag_add_ir_scan():
        - use pointer 'field' instead of scan->fields[nth_tap]
        - add assertion to ensure that input data has correct size for TAP's IR



git-svn-id: svn://svn.berlios.de/openocd/trunk@1865 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-21 04:48:15 +00:00
kc8apf
d7dccfbf82 Author: Michael Bruck <mbruck@digenius.de>
- jtag.c: consolidate output scan field initialization in scan functions
    - jtag.c: add cmd_queue_scan_field_clone() to handle 1:1 field copies
    - jtag.c: fix bug where only the first output field in a dr scan has its tap field set



git-svn-id: svn://svn.berlios.de/openocd/trunk@1864 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-21 04:45:57 +00:00
kc8apf
2783a940e2 Author: Michael Bruck <mbruck@digenius.de>
- jtag.c: remove unused variable 'nth_tap' from DR scan functions



git-svn-id: svn://svn.berlios.de/openocd/trunk@1863 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-21 04:43:48 +00:00
kc8apf
8cb3e95b39 Author: Michael Bruck <mbruck@digenius.de>
- jtag.c: Use single 'for' statement to iterate over list of TAPs in scan functions



git-svn-id: svn://svn.berlios.de/openocd/trunk@1862 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-21 04:43:01 +00:00
kc8apf
3bc0997e28 Author: Michael Bruck <mbruck@digenius.de>
- jtag.c: consolidate all memory allocations in scan functions in one block, add out_fields pointer to set stage for further changes



git-svn-id: svn://svn.berlios.de/openocd/trunk@1861 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-21 04:41:50 +00:00
kc8apf
f96077ec8d Author: Michael Bruck <mbruck@digenius.de>
- add 'const' qualifier to function parameters in jtag.c that are not to be modified or freed by the function



git-svn-id: svn://svn.berlios.de/openocd/trunk@1860 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-21 04:39:41 +00:00
kc8apf
d14b6ca015 Author: Michael Bruck <mbruck@digenius.de>
- add doxygen comments to scan commands in jtag.c
    - move jtag_add_dr_scan next to interface_jtag_add_dr_scan to keep these function pairs together




git-svn-id: svn://svn.berlios.de/openocd/trunk@1859 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-21 04:37:31 +00:00
oharboe
64faff8f9c Spencer Oliver <spen@spen-soft.co.uk> use 7 tms out of reset
git-svn-id: svn://svn.berlios.de/openocd/trunk@1851 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-20 06:18:40 +00:00
kc8apf
b7b0452517 Author: Michael Bruck <mbruck@digenius.de>
- simplify code in interface_jtag_add_plain_dr_scan() by adding a local variable 'scan' to hold the scan_command_t



git-svn-id: svn://svn.berlios.de/openocd/trunk@1849 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-20 04:55:01 +00:00
kc8apf
1ed16c57bc Author: Michael Bruck <mbruck@digenius.de>
- move scan_size in interface_jtag_add_dr_out() into the scope of the inner loop and change it to unsigned
    - move loop variable j into for scope



git-svn-id: svn://svn.berlios.de/openocd/trunk@1848 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-20 04:54:15 +00:00
kc8apf
955d6af47a Author: Michael Bruck <mbruck@digenius.de>
- simplify code in interface_jtag_add_dr_out() by adding a local variable 'scan' to hold the scan_command_t



git-svn-id: svn://svn.berlios.de/openocd/trunk@1847 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-20 04:53:34 +00:00
kc8apf
645bde6e57 Author: Michael Bruck <mbruck@digenius.de>
- move scan_size in interface_jtag_add_dr_scan() into the scope of the inner loop and change it to unsigned



git-svn-id: svn://svn.berlios.de/openocd/trunk@1846 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-20 04:53:00 +00:00
kc8apf
fe54d5f5e6 Author: Michael Bruck <mbruck@digenius.de>
- simplify code in interface_jtag_add_dr_scan() by adding a local variable 'scan' to hold the scan_command_t



git-svn-id: svn://svn.berlios.de/openocd/trunk@1845 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-20 04:52:26 +00:00
kc8apf
044e3a4904 Author: Michael Bruck <mbruck@digenius.de>
- simplify code in interface_jtag_add_plain_ir_scan() by adding a local variable 'scan' to hold the scan_command_t



git-svn-id: svn://svn.berlios.de/openocd/trunk@1844 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-20 04:51:46 +00:00
kc8apf
c1b397e48c Author: Michael Bruck <mbruck@digenius.de>
- move scan_size in interface_jtag_add_ir_scan() into the scope of the inner loop and change it to unsigned



git-svn-id: svn://svn.berlios.de/openocd/trunk@1843 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-20 04:51:08 +00:00
kc8apf
8632901e7d Author: Michael Bruck <mbruck@digenius.de>
- simplify code in interface_jtag_add_ir_scan() by adding a local variable 'scan' to hold the scan_command_t




git-svn-id: svn://svn.berlios.de/openocd/trunk@1842 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-20 04:49:53 +00:00
kc8apf
98e3541333 Author: Michael Bruck <mbruck@digenius.de>
- rename local variable x to num_taps in interface_jtag_add_ir_scan



git-svn-id: svn://svn.berlios.de/openocd/trunk@1841 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-20 04:48:11 +00:00
kc8apf
5c9c7af198 Author: Michael Bruck <mbruck@digenius.de>
- rename input parameters 'num_fields' and 'fields' to 'in_num_fields' and 'in_fields' in all jtag.c interface functions



git-svn-id: svn://svn.berlios.de/openocd/trunk@1840 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-20 04:47:20 +00:00
oharboe
4147156707 added tms_sequence command to allow switching between old/new tms sequence
git-svn-id: svn://svn.berlios.de/openocd/trunk@1834 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-19 06:59:20 +00:00
kc8apf
378c29bfe5 Enable non-7-cycle state table for FT2232 and JLink
git-svn-id: svn://svn.berlios.de/openocd/trunk@1827 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-18 17:43:26 +00:00
kc8apf
a8b104aa74 Fix fallout from r1818
git-svn-id: svn://svn.berlios.de/openocd/trunk@1824 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-18 17:40:42 +00:00
kc8apf
15f2c37207 Change last_comand_pointer to last_command_pointer by Michael Bruck <mbruck@digenius.de>
git-svn-id: svn://svn.berlios.de/openocd/trunk@1823 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-18 17:29:59 +00:00
kc8apf
f9d861d357 Add jtag_queue_command() by Michael Bruck <mbruck@digenius.de> [7/8]
git-svn-id: svn://svn.berlios.de/openocd/trunk@1821 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-18 17:29:01 +00:00
kc8apf
48838d5193 Add jtag_queue_command() by Michael Bruck <mbruck@digenius.de> [6/8]
git-svn-id: svn://svn.berlios.de/openocd/trunk@1820 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-18 17:28:42 +00:00
kc8apf
89fd953cc8 Add jtag_queue_command() by Michael Bruck <mbruck@digenius.de> [5/8]
git-svn-id: svn://svn.berlios.de/openocd/trunk@1819 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-18 17:28:21 +00:00
kc8apf
7ea76ffdbc Add jtag_queue_command() by Michael Bruck <mbruck@digenius.de> [4/8]
git-svn-id: svn://svn.berlios.de/openocd/trunk@1818 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-18 17:28:00 +00:00
kc8apf
0e98ab34b3 Add jtag_queue_command() by Michael Bruck <mbruck@digenius.de> [3/8]
git-svn-id: svn://svn.berlios.de/openocd/trunk@1817 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-18 17:27:46 +00:00
kc8apf
373cbc01d0 Add jtag_queue_command() by Michael Bruck <mbruck@digenius.de> [2/8]
git-svn-id: svn://svn.berlios.de/openocd/trunk@1816 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-18 17:27:30 +00:00
kc8apf
39e9278ffc Add jtag_queue_command() by Michael Bruck <mbruck@digenius.de>
git-svn-id: svn://svn.berlios.de/openocd/trunk@1815 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-18 17:27:00 +00:00
kc8apf
4925bdd4d9 JTAG state table updates (short table still disabled). Provided by Dick Hollenbeck <dick@softplc.com>
git-svn-id: svn://svn.berlios.de/openocd/trunk@1812 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-18 17:06:36 +00:00
oharboe
231a71b7fb Michael Bruck <mbruck@digenius.de> change 'ir_scan' from 'int' to 'bool' to document its semantics
git-svn-id: svn://svn.berlios.de/openocd/trunk@1800 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-16 20:09:07 +00:00
oharboe
651cb917e7 fix broken ir/drscan -endstate option. The statemachine now actually ends up in said state.
git-svn-id: svn://svn.berlios.de/openocd/trunk@1784 b42882b7-edfa-0310-969c-e2dbd0fdcd60
2009-05-14 18:45:19 +00:00