aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorDavid Brownell <dbrownell@users.sourceforge.net>2010-07-02 16:45:28 -0400
committerDavid Brownell <db@helium.(none)>2010-07-02 16:45:28 -0400
commit93f2afa45f4cfcb8afd08dae5a17996dba5c7a9c (patch)
tree0c03935bd09e77c5edd98e1b356f0ffbc3df239b /doc
parentdeb176d33514eb6b702b14043c338b2d0053f11d (diff)
downloadriscv-openocd-93f2afa45f4cfcb8afd08dae5a17996dba5c7a9c.zip
riscv-openocd-93f2afa45f4cfcb8afd08dae5a17996dba5c7a9c.tar.gz
riscv-openocd-93f2afa45f4cfcb8afd08dae5a17996dba5c7a9c.tar.bz2
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.texi44
1 files changed, 43 insertions, 1 deletions
diff --git a/doc/openocd.texi b/doc/openocd.texi
index a3ca124..a765727 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