diff options
author | David Brownell <dbrownell@users.sourceforge.net> | 2010-07-02 16:45:28 -0400 |
---|---|---|
committer | David Brownell <db@helium.(none)> | 2010-07-02 16:45:28 -0400 |
commit | 93f2afa45f4cfcb8afd08dae5a17996dba5c7a9c (patch) | |
tree | 0c03935bd09e77c5edd98e1b356f0ffbc3df239b /doc | |
parent | deb176d33514eb6b702b14043c338b2d0053f11d (diff) | |
download | openocd_libswd-93f2afa45f4cfcb8afd08dae5a17996dba5c7a9c.tar.gz openocd_libswd-93f2afa45f4cfcb8afd08dae5a17996dba5c7a9c.tar.bz2 openocd_libswd-93f2afa45f4cfcb8afd08dae5a17996dba5c7a9c.tar.xz openocd_libswd-93f2afa45f4cfcb8afd08dae5a17996dba5c7a9c.zip |
initial "transport" framework
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: David Brownell <db@helium.(none)>
Diffstat (limited to 'doc')
-rw-r--r-- | doc/openocd.texi | 44 |
1 files changed, 43 insertions, 1 deletions
diff --git a/doc/openocd.texi b/doc/openocd.texi index a3ca1247..a765727c 100644 --- a/doc/openocd.texi +++ b/doc/openocd.texi @@ -2096,6 +2096,14 @@ target. List the debug adapter drivers that have been built into the running copy of OpenOCD. @end deffn +@deffn Command {interface transports} transport_name+ +Specifies the transports supported by this debug adapter. +The adapter driver builds-in similar knowledge; use this only +when external configuration (such as jumpering) changes what +the hardware can support. +@end deffn + + @deffn Command {adapter_name} Returns the name of the debug adapter driver being used. @@ -2428,7 +2436,41 @@ Turn power switch to target on/off. No arguments: print status. @end deffn -@end deffn +@section Transport Configuration +As noted earlier, depending on the version of OpenOCD you use, +and the debug adapter you are using, +several transports may be available to +communicate with debug targets (or perhaps to program flash memory). +@deffn Command {transport list} +displays the names of the transports supported by this +version of OpenOCD. +@end deffn + +@deffn Command {transport select} transport_name +Select which of the supported transports to use in this OpenOCD session. +The transport must be supported by the debug adapter hardware and by the +version of OPenOCD you are using (including the adapter's driver). +No arguments: print selected transport.. +@end deffn + +@subsection JTAG Transport +JTAG is the original transport supported by OpenOCD, and most +of the OpenOCD commands support it. +JTAG transports expose a chain of one or more Test Access Points (TAPs), +each of which must be explicitly declared. +JTAG supports both debugging and boundary scan testing. +Flash programming support is built on top of debug support. +@subsection SWD ransport +SWD (Serial Wire Debug) is an ARM-specific transport which exposes one +Debug Access Point (DAP, which must be explicitly declared. +(SWD uses fewer signal wires than JTAG.) +SWD is debug-oriented, and does not support boundary scan testing. +Flash programming support is built on top of debug support. +(Some processors support both JTAG and SWD.) +@subsection SPI ransport +The Serial Peripheral Interface (SPI) is a general purpose transport +which uses four wire signaling. Some processors use it as part of a +solution for flash programming. @anchor{JTAG Speed} @section JTAG Speed |