aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorRichard Uhler <ruhler@mit.edu>2011-08-25 13:29:33 -0700
committerØyvind Harboe <oyvind.harboe@zylin.com>2011-09-02 16:50:01 +0200
commit1411ad11c182d02769bb0954f7f5b01d66652a6b (patch)
treef8388ffdd507b81b5bbcaa431a0ce6153dde4604 /doc
parent48e8d2d21c2f7c19a7d6616115f06fef99203d7e (diff)
Implementation of a new jtag remote_bitbang driver.
The driver sends ascii encoded bitbang commands over unix sockets or TCP to another process. This driver is useful for debugging software running on processors which are being simulated.
Diffstat (limited to 'doc')
-rw-r--r--doc/manual/jtag/drivers/remote_bitbang.txt53
-rw-r--r--doc/openocd.texi37
2 files changed, 90 insertions, 0 deletions
diff --git a/doc/manual/jtag/drivers/remote_bitbang.txt b/doc/manual/jtag/drivers/remote_bitbang.txt
new file mode 100644
index 00000000..5a800479
--- /dev/null
+++ b/doc/manual/jtag/drivers/remote_bitbang.txt
@@ -0,0 +1,53 @@
+/** @remote_bitbangpage OpenOCD Developer's Guide
+
+The remote_bitbang JTAG driver is used to drive JTAG from a remote process. The
+remote_bitbang driver communicates via TCP or UNIX sockets with some remote
+process using an ASCII encoding of the bitbang interface. The remote process
+presumably then drives the JTAG however it pleases. The remote process should
+act as a server, listening for connections from the openocd remote_bitbang
+driver.
+
+The remote bitbang driver is useful for debugging software running on
+processors which are being simulated.
+
+The bitbang interface consists of the following functions.
+
+blink on
+ Blink a light somewhere. The argument on is either 1 or 0.
+
+read
+ Sample the value of tdo.
+
+write tck tms tdi
+ Set the value of tck, tms, and tdi.
+
+reset trst srst
+ Set the value of trst, srst.
+
+An additional function, quit, is added to the remote_bitbang interface to
+indicate there will be no more requests and the connection with the remote
+driver should be closed.
+
+These five functions are encoded in ascii by assigning a single character to
+each possible request. The assignments are:
+
+ B - Blink on
+ b - Blink off
+ R - Read request
+ Q - Quit request
+ 0 - Write 0 0 0
+ 1 - Write 0 0 1
+ 2 - Write 0 1 0
+ 3 - Write 0 1 1
+ 4 - Write 1 0 0
+ 5 - Write 1 0 1
+ 6 - Write 1 1 0
+ 7 - Write 1 1 1
+ r - Reset 0 0
+ s - Reset 0 1
+ t - Reset 1 0
+ u - Reset 1 1
+
+The read response is encoded in ascii as either digit 0 or 1.
+
+ */
diff --git a/doc/openocd.texi b/doc/openocd.texi
index 8b7e5888..05c06b87 100644
--- a/doc/openocd.texi
+++ b/doc/openocd.texi
@@ -2321,6 +2321,43 @@ ft2232_vid_pid 0x0403 0xbdc8
@end example
@end deffn
+@deffn {Interface Driver} {remote_bitbang}
+Drive JTAG from a remote process. This sets up a UNIX or TCP socket connection
+with a remote process and sends ASCII encoded bitbang requests to that process
+instead of directly driving JTAG.
+
+The remote_bitbang driver is useful for debugging software running on
+processors which are being simulated.
+
+@deffn {Config Command} {remote_bitbang_port} number
+Specifies the TCP port of the remote process to connect to or 0 to use UNIX
+sockets instead of TCP.
+@end deffn
+
+@deffn {Config Command} {remote_bitbang_host} hostname
+Specifies the hostname of the remote process to connect to using TCP, or the
+name of the UNIX socket to use if remote_bitbang_port is 0.
+@end deffn
+
+For example, to connect remotely via TCP to the host foobar you might have
+something like:
+
+@example
+interface remote_bitbang
+remote_bitbang_port 3335
+remote_bitbang_host foobar
+@end example
+
+To connect to another process running locally via UNIX sockets with socket
+named mysocket:
+
+@example
+interface remote_bitbang
+remote_bitbang_port 0
+remote_bitbang_host mysocket
+@end example
+@end deffn
+
@deffn {Interface Driver} {usb_blaster}
USB JTAG/USB-Blaster compatibles over one of the userspace libraries
for FTDI chips. These interfaces have several commands, used to