aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-02-27 06:44:45 +0000
committeroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-02-27 06:44:45 +0000
commit5a15c6d8079ac3e8b0677ae9665e841856a42772 (patch)
treef2907a4a51fe24687a8276f8aa47d88b129e1862
parent0686e944f300e433d449eaa5c7bc576c1e65fd1a (diff)
Nicolas Pitre listed some more devices.
git-svn-id: svn://svn.berlios.de/openocd/trunk@356 b42882b7-edfa-0310-969c-e2dbd0fdcd60
-rw-r--r--README261
-rw-r--r--doc/openocd.texi3823
2 files changed, 2044 insertions, 2040 deletions
diff --git a/README b/README
index 3c93424e..4e790117 100644
--- a/README
+++ b/README
@@ -1,129 +1,132 @@
- OpenOCD
-
- Free and Open On-Chip Debugging, In-System Programming
- and Boundary-Scan Testing
- Copyright (c) 2004-2007 Dominic Rath
-
-The debugger uses an IEEE 1149-1 compliant JTAG TAP bus master to access on-chip
-debug functionality available on ARM7 and ARM9 based microcontrollers /
-system-on-chip solutions.
-
-User interaction is realized through a telnet command line interface and a gdb
-(The GNU Debugger) remote protocol server.
-
-1. JTAG hardware
-
-Currently, OpenOCD supports the following JTAG interfaces:
-
-- Parallel port wigglers. These devices connect to a PC's parallel port,
-providing direct access to the JTAG lines. The OpenOCD contains descriptions
-of a few Wiggler layouts, including the original 'Wiggler' design. Other
-layouts (i.e. mapping of parallel port pins to JTAG lines) can be added easily.
-Typical Wiggler speeds are around 12kByte/s code download to an ARM7's RAM.
-
-The list of supported parallel port devices includes:
-
- * Macraigor Wiggler JTAG cable
- * Gateworks GW16012 JTAG programmer
- * Xilinx DLC5 JTAG parallel cable III
- * Ka-Ro TRITON starterkit II JTAG cable
- * Lattice parallel port JTAG cable
- * ST FlashLINK programming cable
-
-- The Amontec JTAG Accelerator. This is a configuration for Amontec's Chameleon
-dongle, a parallel port interface based on a Xilinx CoolRunner CPLD. It uses
-the IEEE1284 EPP parallel port specification, providing many times the
-performance achievable with wiggler-style devices. Additional information is
-available on www.amontec.com.
-Typical JTAG Accelerator speeds are around 120-160kByte/s to an ARM7's RAM.
-
-- FTDI FT2232 based USB devices. The FT2232 (but not FT232 or FT245) features a
-multi-protocol synchronous serial engine (MPSSE) that can be used to run the
-serial JTAG protocol. There are several implemenations of FT2232 based devices:
-
-* USBJTAG: http://www.fh-augsburg.de/~hhoegl/proj/usbjtag/usbjtag.html
-The USBJTAG was designed by Prof. Hubert Hoegl to provide a high-speed USB
-interface for use with the OpenOCD. Schematics are available at the USBJTAG
-website, and a homebrew device can easily be built using the FTDI evaluation
-module DLP2232M.
-
-* OOCD-Link: http://www.joernonline.de/dw/doku.php?id=en:projects:oocdlink
-Similar to the USBJTAG, this design comes with free schematics, too.
-
-* Amontec JTAGkey: www.amontec.com
-The Amontec JTAGkey offers support for a wide variety of target voltages from
-1.4V to 5V. It also allows the JTAG lines and reset signals to be tri-stated,
-allowing easy interfacing with a wide variety of targets.
-
-* Amontec JTAGkey-Tiny: www.amontec.com
-The Amontec JTAGkey offers support for a wide variety of target voltages from
-2.8V to 5V. It also allows the reset signals to be tri-stated, allowing easy
-interfacing with a wide variety of targets.
-
-* Olimex ARM-USB-OCD: www.olimex.com
-The Olimex ARM-USB-OCD offers support for a wide vriety of target voltages from
-2.0V to 5V. It also allows targets to be powered from the ARM-USB-OCD and
-features and additional RS232 UART.
-
-* eVerve Signalyzer: www.signalyzer.com
-The Signalyzer offers support for a wide variety of target voltages from 1.2V to
-5.5V. A second connector provides access to a TTL level UART.
-
-* TinCanTools 'Flyswatter' USB JTAG programmer.
-
-* Turtelizer 2: http://www.ethernut.de/en/hardware/turtelizer/index.html
-Another USB JTAG programmer, with freely available schematics. It supports
-target voltages from 1.65V to 5.5V.
-
-* Hitex STR9-comSTICK: http://www.ehitex.de/p_info.php?products_id=292
-A STR912FW44x microcontroller "board" with USB and JTAG functionality.
-
-* Luminary Micro development board evb_lm3s811 JTAG interface.
-
-* ASIX PRESTO: http://www.asix-tools.com/prg_presto.htm
-The ASIX PRESTO is a USB JTAG programmer for a wide range of components, e.g.
-microcontrollers, serial EEPROM and Flash memory chips, CPLDs and others.
-
-* usbprog: http://www.embedded-projects.net/index.php?page_id=165
-The usbprog is a freely programmable USB adapter, which can (among other
-things) use a firmware which turns it into a JTAG programmer/debugger.
-
-All FT2232 based devices may be accessed using either FTDI's proprietary FTD2XX
-library (www.ftdichip.com) or using an open-source replacement from
-http://www.intra2net.com/de/produkte/opensource/ftdi/index.php, also included
-with many Linux distributions.
-
-2. Supported cores
-
-This version of openocd supports the following ARM7/9 cores:
-
-- ARM7TDMI(-s)
-- ARM9TDMI
-- ARM920t
-- ARM922t
-- ARM926ej-s
-- ARM966e
-- Cortex-M3
-
-Support for Intel XScale CPUs is also included:
-
-- PXA25x
-- PXA27x
-- IXP42x
-
-3. Host platforms
-
-OpenOCD was originally developed on x86-Linux, but has since then been ported
-to run on Windows/Cygwin, native Windows with MinGW, FreeBSD, IA64-Linux,
-AMD64-Linux, Alpha-Linux, ARM-Linux, and PowerPC OS-X.
-
-4. Documentation
-
-Documentation for the OpenOCD is hosted in the Berlios OpenFacts Wiki at
-http://openfacts.berlios.de/index-en.phtml?title=Open_On-Chip_Debugger.
-
-5. Licensing
-
-OpenOCD is licensed under the terms of the GNU General Public License, see the
-file COPYING for details.
-
+ OpenOCD
+
+ Free and Open On-Chip Debugging, In-System Programming
+ and Boundary-Scan Testing
+ Copyright (c) 2004-2007 Dominic Rath
+
+The debugger uses an IEEE 1149-1 compliant JTAG TAP bus master to access on-chip
+debug functionality available on ARM7 and ARM9 based microcontrollers /
+system-on-chip solutions.
+
+User interaction is realized through a telnet command line interface and a gdb
+(The GNU Debugger) remote protocol server.
+
+1. JTAG hardware
+
+Currently, OpenOCD supports the following JTAG interfaces:
+
+- Parallel port wigglers. These devices connect to a PC's parallel port,
+providing direct access to the JTAG lines. The OpenOCD contains descriptions
+of a few Wiggler layouts, including the original 'Wiggler' design. Other
+layouts (i.e. mapping of parallel port pins to JTAG lines) can be added easily.
+Typical Wiggler speeds are around 12kByte/s code download to an ARM7's RAM.
+
+The list of supported parallel port devices includes:
+
+ * Macraigor Wiggler JTAG cable
+ * Gateworks GW16012 JTAG programmer
+ * Xilinx DLC5 JTAG parallel cable III
+ * Ka-Ro TRITON starterkit II JTAG cable
+ * Lattice parallel port JTAG cable
+ * ST FlashLINK programming cable
+
+- The Amontec JTAG Accelerator. This is a configuration for Amontec's Chameleon
+dongle, a parallel port interface based on a Xilinx CoolRunner CPLD. It uses
+the IEEE1284 EPP parallel port specification, providing many times the
+performance achievable with wiggler-style devices. Additional information is
+available on www.amontec.com.
+Typical JTAG Accelerator speeds are around 120-160kByte/s to an ARM7's RAM.
+
+- FTDI FT2232 based USB devices. The FT2232 (but not FT232 or FT245) features a
+multi-protocol synchronous serial engine (MPSSE) that can be used to run the
+serial JTAG protocol. There are several implemenations of FT2232 based devices:
+
+* USBJTAG: http://www.fh-augsburg.de/~hhoegl/proj/usbjtag/usbjtag.html
+The USBJTAG was designed by Prof. Hubert Hoegl to provide a high-speed USB
+interface for use with the OpenOCD. Schematics are available at the USBJTAG
+website, and a homebrew device can easily be built using the FTDI evaluation
+module DLP2232M.
+
+* OOCD-Link: http://www.joernonline.de/dw/doku.php?id=en:projects:oocdlink
+Similar to the USBJTAG, this design comes with free schematics, too.
+
+* Amontec JTAGkey: www.amontec.com
+The Amontec JTAGkey offers support for a wide variety of target voltages from
+1.4V to 5V. It also allows the JTAG lines and reset signals to be tri-stated,
+allowing easy interfacing with a wide variety of targets.
+
+* Amontec JTAGkey-Tiny: www.amontec.com
+The Amontec JTAGkey offers support for a wide variety of target voltages from
+2.8V to 5V. It also allows the reset signals to be tri-stated, allowing easy
+interfacing with a wide variety of targets.
+
+* Olimex ARM-USB-OCD: www.olimex.com
+The Olimex ARM-USB-OCD offers support for a wide vriety of target voltages from
+2.0V to 5V. It also allows targets to be powered from the ARM-USB-OCD and
+features and additional RS232 UART.
+
+* eVerve Signalyzer: www.signalyzer.com
+The Signalyzer offers support for a wide variety of target voltages from 1.2V to
+5.5V. A second connector provides access to a TTL level UART.
+
+* TinCanTools 'Flyswatter' USB JTAG programmer.
+
+* Turtelizer 2: http://www.ethernut.de/en/hardware/turtelizer/index.html
+Another USB JTAG programmer, with freely available schematics. It supports
+target voltages from 1.65V to 5.5V.
+
+* Hitex STR9-comSTICK: http://www.ehitex.de/p_info.php?products_id=292
+A STR912FW44x microcontroller "board" with USB and JTAG functionality.
+
+* Luminary Micro development board evb_lm3s811 JTAG interface.
+
+* ASIX PRESTO: http://www.asix-tools.com/prg_presto.htm
+The ASIX PRESTO is a USB JTAG programmer for a wide range of components, e.g.
+microcontrollers, serial EEPROM and Flash memory chips, CPLDs and others.
+
+* usbprog: http://www.embedded-projects.net/index.php?page_id=165
+The usbprog is a freely programmable USB adapter, which can (among other
+things) use a firmware which turns it into a JTAG programmer/debugger.
+
+All FT2232 based devices may be accessed using either FTDI's proprietary FTD2XX
+library (www.ftdichip.com) or using an open-source replacement from
+http://www.intra2net.com/de/produkte/opensource/ftdi/index.php, also included
+with many Linux distributions.
+
+2. Supported cores
+
+This version of openocd supports the following ARM7/9 cores:
+
+- ARM7TDMI(-s)
+- ARM9TDMI
+- ARM920t
+- ARM922t
+- ARM926ej-s
+- ARM966e
+- Cortex-M3
+
+Support for Intel XScale CPUs is also included:
+
+- PXA25x
+- PXA27x
+- IXP42x
+
+And support for the Marvell Feroceon CPU core as found in the
+Orion SOC family is included as well.
+
+3. Host platforms
+
+OpenOCD was originally developed on x86-Linux, but has since then been ported
+to run on Windows/Cygwin, native Windows with MinGW, FreeBSD, IA64-Linux,
+AMD64-Linux, Alpha-Linux, ARM-Linux, and PowerPC OS-X.
+
+4. Documentation
+
+Documentation for the OpenOCD is hosted in the Berlios OpenFacts Wiki at
+http://openfacts.berlios.de/index-en.phtml?title=Open_On-Chip_Debugger.
+
+5. Licensing
+
+OpenOCD is licensed under the terms of the GNU General Public License, see the
+file COPYING for details.
+
diff --git a/doc/openocd.texi b/doc/openocd.texi
index d19a09ee..e42c33cb 100644
--- a/doc/openocd.texi
+++ b/doc/openocd.texi
@@ -1,1911 +1,1912 @@
-\input texinfo @c -*-texinfo-*-
-@c %**start of header
-@setfilename openocd.info
-@settitle Open On-Chip Debugger (openocd)
-@c %**end of header
-
-@include version.texi
-
-@titlepage
-@title Open On-Chip Debugger (openocd)
-@subtitle Edition @value{EDITION} for openocd version @value{VERSION}
-@subtitle @value{UPDATED}
-@page
-@vskip 0pt plus 1filll
-@end titlepage
-
-@contents
-
-@node Top, About, , (dir)
-@top OpenOCD
-
-This is edition @value{EDITION} of the openocd manual for version
-@value{VERSION}, @value{UPDATED}
-
-@menu
-* About:: About Openocd.
-* Developers::
-* Building:: Building Openocd
-* Running:: Running Openocd
-* Configuration:: Openocd Configuration.
-* Commands:: Openocd Commands
-* Sample Scripts:: Sample Target Scripts
-* GDB and Openocd:: Using GDB and Openocd
-* FAQ:: Frequently Asked Questions
-* License:: GNU Free Documentation License
-* Index:: Main index.
-@end menu
-
-@node About
-@unnumbered About
-@cindex about
-
-The Open On-Chip Debugger (openocd) aims to provide debugging, in-system programming
-and boundary-scan testing for embedded target devices. The targets are interfaced
-using JTAG (IEEE 1149.1) compliant hardware, but this may be extended to other
-connection types in the future.
-
-Openocd currently supports Wiggler (clones), FTDI FT2232 based JTAG interfaces, the
-Amontec JTAG Accelerator, and the Gateworks GW1602. It allows ARM7 (ARM7TDMI and ARM720t),
-ARM9 (ARM920t, ARM922t, ARM926ej--s, ARM966e--s), XScale (PXA25x, IXP42x) and
-Cortex-M3 (Luminary Stellaris LM3 and ST STM32) based cores to be debugged.
-
-Flash writing is supported for external CFI compatible flashes (Intel and AMD/Spansion
-command set) and several internal flashes (LPC2000, AT91SAM7, STR7x, STR9x, LM3
-and STM32x). Preliminary support for using the LPC3180's NAND flash controller is included.
-
-@node Developers
-@chapter Developers
-@cindex developers
-
-Openocd has been created by Dominic Rath as part of a diploma thesis written at the
-University of Applied Sciences Augsburg (@uref{http://www.fh-augsburg.de}).
-Others interested in improving the state of free and open debug and testing technology
-are welcome to participate.
-
-Other developers have contributed support for additional targets and flashes as well
-as numerous bugfixes and enhancements. See the AUTHORS file for regular contributors.
-
-@node Building
-@chapter Building
-@cindex building openocd
-
-You can download the current SVN version with SVN client of your choice from the
-following repositories:
-
- (@uref{svn://svn.berlios.de/openocd/trunk})
-
-or
-
- (@uref{http://svn.berlios.de/svnroot/repos/openocd/trunk})
-
-Using the SVN command line client, you could use the following command to fetch the
-latest version (make sure there is no (non-svn) directory called "openocd" in the
-current directory):
-
-@smallexample
- svn checkout svn://svn.berlios.de/openocd/trunk
-@end smallexample
-
-Building the OpenOCD requires a recent version of the GNU autotools.
-On my build system, I'm using autoconf 2.13 and automake 1.9. For building on Windows,
-you have to use Cygwin. Make sure that your @env{PATH} environment variable contains no
-other locations with Unix utils (like UnxUtils) - these can't handle the Cygwin
-paths, resulting in obscure dependency errors (This is an observation I've gathered
-from the logs of one user - correct me if I'm wrong).
-
-You further need the appropriate driver files, if you want to build support for
-a FTDI FT2232 based interface:
-@itemize @bullet
-@item @b{ftdi2232} libftdi (@uref{http://www.intra2net.com/opensource/ftdi/})
-@item @b{ftd2xx} libftd2xx (@uref{http://www.ftdichip.com/Drivers/D2XX.htm})
-@item When using the Amontec JTAGkey, you have to get the drivers from the Amontec
-homepage (@uref{www.amontec.com}), as the JTAGkey uses a non-standard VID/PID.
-@end itemize
-
-Please note that the ftdi2232 variant (using libftdi) isn't supported under Cygwin.
-You have to use the ftd2xx variant (using FTDI's D2XX) on Cygwin.
-
-In general, the D2XX driver provides superior performance (several times as fast),
-but has the draw-back of being binary-only - though that isn't as worse, as it isn't
-a kernel module, only a user space library.
-
-To build OpenOCD (on both Linux and Cygwin), use the following commands:
-@smallexample
- ./bootstrap
-@end smallexample
-Bootstrap generates the configure script, and prepares building on your system.
-@smallexample
- ./configure
-@end smallexample
-Configure generates the Makefiles used to build OpenOCD
-@smallexample
- make
-@end smallexample
-Make builds the OpenOCD, and places the final executable in ./src/
-
-The configure script takes several options, specifying which JTAG interfaces
-should be included:
-
-@itemize @bullet
-@item
---enable-parport
-@item
---enable-parport_ppdev
-@item
---enable-amtjtagaccel
-@item
---enable-ft2232_ftd2xx
-@footnote{Using the latest D2XX drivers from FTDI and following their installation
-instructions, I had to use @option{--enable-ft2232_libftd2xx} for the OpenOCD to
-build properly}
-@item
---enable-ft2232_libftdi
-@item
---with-ftd2xx=/path/to/d2xx/
-@end itemize
-
-If you want to access the parallel port using the PPDEV interface you have to specify
-both the @option{--enable-parport} AND the @option{--enable-parport_ppdev} option since
-the @option{--enable-parport_ppdev} option actually is an option to the parport driver
-(see @uref{http://forum.sparkfun.com/viewtopic.php?t=3795} for more info).
-
-Cygwin users have to specify the location of the FTDI D2XX package. This should be an
-absolute path containing no spaces.
-
-Linux users should copy the various parts of the D2XX package to the appropriate
-locations, i.e. /usr/include, /usr/lib.
-
-@node Running
-@chapter Running
-@cindex running openocd
-@cindex --configfile
-@cindex --debug_level
-@cindex --logfile
-@cindex --search
-The OpenOCD runs as a daemon, waiting for connections from clients (Telnet or GDB).
-Run with @option{--help} or @option{-h} to view the available command line arguments.
-
-It reads its configuration by default from the file openocd.cfg located in the current
-working directory. This may be overwritten with the @option{-f <configfile>} command line
-switch.
-
-To enable debug output (when reporting problems or working on OpenOCD itself), use
-the @option{-d} command line switch. This sets the debug_level to "3", outputting
-the most information, including debug messages. The default setting is "2", outputting
-only informational messages, warnings and errors. You can also change this setting
-from within a telnet or gdb session (@option{debug_level <n>}).
-
-You can redirect all output from the daemon to a file using the @option{-l <logfile>} switch.
-
-Search paths for config/script files can be added to openocd by using
-the @option{-s <search>} switch.
-
-@node Configuration
-@chapter Configuration
-@cindex configuration
-The Open On-Chip Debugger (OpenOCD) runs as a daemon, and reads it current configuration
-by default from the file openocd.cfg in the current directory. A different configuration
-file can be specified with the @option{-f <conf.file>} given at the openocd command line.
-
-The configuration file is used to specify on which ports the daemon listens for new
-connections, the JTAG interface used to connect to the target, the layout of the JTAG
-chain, the targets that should be debugged, and connected flashes.
-
-@section Daemon configuration
-
-@itemize @bullet
-@item @b{telnet_port} <@var{number}>
-@cindex telnet_port
-Port on which to listen for incoming telnet connections
-@item @b{gdb_port} <@var{number}>
-@cindex gdb_port
-First port on which to listen for incoming GDB connections. The GDB port for the
-first target will be gdb_port, the second target will listen on gdb_port + 1, and so on.
-@item @b{gdb_detach} <@var{resume|reset|halt|nothing}>
-@cindex gdb_detach
-Configures what openocd will do when gdb detaches from the daeman.
-Default behaviour is <@var{resume}>
-@item @b{gdb_memory_map} <@var{enable|disable}>
-@cindex gdb_memory_map
-Set to <@var{enable}> so that openocd will send the memory configuration to gdb when
-requested. gdb will then know when to set hardware breakpoints, and program flash
-using the gdb load command. @option{gdb_flash_program enable} will also need enabling
-for flash programming to work.
-Default behaviour is <@var{disable}>
-@item @b{gdb_flash_program} <@var{enable|disable}>
-@cindex gdb_flash_program
-Set to <@var{enable}> so that openocd will program the flash memory when a
-vFlash packet is received.
-Default behaviour is <@var{disable}>
-@item @b{daemon_startup} <@var{mode}> either @samp{attach} or @samp{reset}
-@cindex daemon_startup
-Tells the OpenOCD whether it should reset the target when the daemon is launched, or
-if it should just attach to the target.
-@end itemize
-
-@section JTAG interface configuration
-
-@itemize @bullet
-@item @b{interface} <@var{name}>
-@cindex interface
-Use the interface driver <@var{name}> to connect to the target. Currently supported
-interfaces are
-@itemize @minus
-@item parport
-PC parallel port bit-banging (Wigglers, PLD download cable, ...)
-@end itemize
-@itemize @minus
-@item amt_jtagaccel
-Amontec Chameleon in its JTAG Accelerator configuration connected to a PC's EPP
-mode parallel port
-@end itemize
-@itemize @minus
-@item ft2232
-FTDI FT2232 based devices using either the open-source libftdi or the binary only
-FTD2XX driver. The FTD2XX is superior in performance, but not available on every
-platform. The libftdi uses libusb, and should be portable to all systems that provide
-libusb.
-@end itemize
-@itemize @minus
-@item ep93xx
-Cirrus Logic EP93xx based single-board computer bit-banging (in development)
-@end itemize
-@end itemize
-
-@itemize @bullet
-@item @b{jtag_speed} <@var{number}>
-@cindex jtag_speed
-Limit the maximum speed of the JTAG interface. Usually, a value of zero means maximum
-speed. The actual effect of this option depends on the JTAG interface used.
-
-@itemize @minus
-@item wiggler: maximum speed / @var{number}
-@item ft2232: 6MHz / (@var{number}+1)
-@item amt jtagaccel: 8 / 2**@var{number}
-@end itemize
-
-Note: Make sure the jtag clock is no more than @math{1/6th × CPU-Clock}. This is
-especially true for synthesized cores (-S).
-
-@item @b{reset_config} <@var{signals}> [@var{combination}] [@var{trst_type}] [@var{srst_type}]
-@cindex reset_config
-The configuration of the reset signals available on the JTAG interface AND the target.
-If the JTAG interface provides SRST, but the target doesn't connect that signal properly,
-then OpenOCD can't use it. <@var{signals}> can be @samp{none}, @samp{trst_only},
-@samp{srst_only} or @samp{trst_and_srst}.
-[@var{combination}] is an optional value specifying broken reset signal implementations.
-@samp{srst_pulls_trst} states that the testlogic is reset together with the reset of
-the system (e.g. Philips LPC2000, "broken" board layout), @samp{trst_pulls_srst} says
-that the system is reset together with the test logic (only hypothetical, I haven't
-seen hardware with such a bug, and can be worked around).
-
-The [@var{trst_type}] and [@var{srst_type}] parameters allow the driver type of the
-reset lines to be specified. Possible values are @samp{trst_push_pull} (default)
-and @samp{trst_open_drain} for the test reset signal, and @samp{srst_open_drain}
-(default) and @samp{srst_push_pull} for the system reset. These values only affect
-JTAG interfaces with support for different drivers, like the Amontec JTAGkey and JTAGAccelerator.
-
-@item @b{jtag_device} <@var{IR length}> <@var{IR capture}> <@var{IR mask}> <@var{IDCODE instruction}>
-@cindex jtag_device
-Describes the devices that form the JTAG daisy chain, with the first device being
-the one closest to TDO. The parameters are the length of the instruction register
-(4 for all ARM7/9s), the value captured during Capture-IR (0x1 for ARM7/9), and a mask
-of bits that should be validated when doing IR scans (all four bits (0xf) for ARM7/9).
-The IDCODE instruction will in future be used to query devices for their JTAG
-identification code. This line is the same for all ARM7 and ARM9 devices.
-Other devices, like CPLDs, require different parameters. An example configuration
-line for a Xilinx XC9500 CPLD would look like this:
-@smallexample
-jtag_device 8 0x01 0x0e3 0xfe
-@end smallexample
-The instruction register (IR) is 8 bits long, during Capture-IR 0x01 is loaded into
-the IR, but only bits 0-1 and 5-7 should be checked, the others (2-4) might vary.
-The IDCODE instruction is 0xfe.
-
-@item @b{jtag_nsrst_delay} <@var{ms}>
-@cindex jtag_nsrst_delay
-How long (in miliseconds) the OpenOCD should wait after deasserting nSRST before
-starting new JTAG operations.
-@item @b{jtag_ntrst_delay} <@var{ms}>
-@cindex jtag_ntrst_delay
-How long (in miliseconds) the OpenOCD should wait after deasserting nTRST before
-starting new JTAG operations.
-
-The jtag_n[st]rst_delay options are useful if reset circuitry (like a reset supervisor,
-or on-chip features) keep a reset line asserted for some time after the external reset
-got deasserted.
-@end itemize
-
-@section parport options
-
-@itemize @bullet
-@item @b{parport_port} <@var{number}>
-@cindex parport_port
-Either the address of the I/O port (default: 0x378 for LPT1) or the number of
-the @file{/dev/parport} device
-
-When using PPDEV to access the parallel port, use the number of the parallel port:
-@option{parport_port 0} (the default). If @option{parport_port 0x378} is specified
-you may encounter a problem.
-@item @b{parport_cable} <@var{name}>
-@cindex parport_cable
-The layout of the parallel port cable used to connect to the target.
-Currently supported cables are
-@itemize @minus
-@item wiggler
-@cindex wiggler
-Original Wiggler layout, also supported by several clones, such
-as the Olimex ARM-JTAG
-@item old_amt_wiggler
-@cindex old_amt_wiggler
-The Wiggler configuration that comes with Amontec's Chameleon Programmer. The new
-version available from the website uses the original Wiggler layout ('@var{wiggler}')
-@item chameleon
-@cindex chameleon
-Describes the connection of the Amontec Chameleon's CPLD when operated in
-configuration mode. This is only used to program the Chameleon itself, not
-a connected target.
-@item dlc5
-@cindex dlc5
-Xilinx Parallel cable III.
-@item triton
-@cindex triton
-The parallel port adapter found on the 'Karo Triton 1 Development Board'.
-This is also the layout used by the HollyGates design
-(see @uref{http://www.lartmaker.nl/projects/jtag/}).
-@item flashlink
-@cindex flashlink
-ST Parallel cable.
-@end itemize
-@item @b{parport_write_on_exit} <@var{on|off}>
-@cindex parport_write_on_exit
-This will configure the parallel driver to write a known value to the parallel
-interface on exiting openocd
-@end itemize
-
-@section amt_jtagaccel options
-@itemize @bullet
-@item @b{parport_port} <@var{number}>
-@cindex parport_port
-Either the address of the I/O port (default: 0x378 for LPT1) or the number of the
-@file{/dev/parport} device
-@end itemize
-@section ft2232 options
-
-@itemize @bullet
-@item @b{ft2232_device_desc} <@var{description}>
-@cindex ft2232_device_desc
-The USB device description of the FTDI FT2232 device. If not specified, the FTDI
-default value is used. This setting is only valid if compiled with FTD2XX support.
-@item @b{ft2232_layout} <@var{name}>
-@cindex ft2232_layout
-The layout of the FT2232 GPIO signals used to control output-enables and reset
-signals. Valid layouts are
-@itemize @minus
-@item usbjtag
-The "USBJTAG-1" layout described in the original OpenOCD diploma thesis
-@item jtagkey
-Amontec JTAGkey and JTAGkey-tiny
-@item signalyzer
-Signalyzer
-@item olimex-jtag
-Olimex ARM-USB-OCD
-@item m5960
-American Microsystems M5960
-@item evb_lm3s811
-Luminary Micro EVB_LM3S811 as a JTAG interface (not onboard processor), no TRST or
-SRST signals on external connector
-@item comstick
-Hitex STR9 comstick
-@item stm32stick
-Hitex STM32 Performance Stick
-@item flyswatter
-Tin Can Tools Flyswatter
-@item turtelizer2
-egnite Software turtelizer2
-@item oocdlink
-OOCDLink
-@end itemize
-
-@item @b{ft2232_vid_pid} <@var{vid}> <@var{pid}>
-The vendor ID and product ID of the FTDI FT2232 device. If not specified, the FTDI
-default values are used. This command is not available on Windows.
-@item @b{ft2232_latency} <@var{ms}>
-On some systems using ft2232 based JTAG interfaces the FT_Read function call in
-ft2232_read() fails to return the expected number of bytes. This can be caused by
-USB communication delays and has proved hard to reproduce and debug. Setting the
-FT2232 latency timer to a larger value increases delays for short USB packages but it
-also reduces the risk of timeouts before receiving the expected number of bytes.
-The OpenOCD default value is 2 and for some systems a value of 10 has proved useful.
-@end itemize
-
-@section ep93xx options
-@cindex ep93xx options
-Currently, there are no options available for the ep93xx interface.
-
-@page
-@section Target configuration
-
-@itemize @bullet
-@item @b{target} <@var{type}> <@var{endianess}> <@var{reset_mode}> <@var{JTAG pos}>
-<@var{variant}>
-@cindex target
-Defines a target that should be debugged. Currently supported types are:
-@itemize @minus
-@item arm7tdmi
-@item arm720t
-@item arm9tdmi
-@item arm920t
-@item arm922t
-@item arm926ejs
-@item arm966e
-@item cortex_m3
-@item xscale
-@end itemize
-
-If you want to use a target board that is not on this list, see Adding a new
-target board
-
-Endianess may be @option{little} or @option{big}.
-
-The reset_mode specifies what should happen to the target when a reset occurs:
-@itemize @minus
-@item reset_halt
-@cindex reset_halt
-Immediately request a target halt after reset. This allows targets to be debugged
-from the very first instruction. This is only possible with targets and JTAG
-interfaces that correctly implement the reset signals.
-@item reset_init
-@cindex reset_init
-Similar to @option{reset_halt}, but executes the script file defined to handle the
-'reset' event for the target. Like @option{reset_halt} this only works with
-correct reset implementations.
-@item reset_run
-@cindex reset_run
-Simply let the target run after a reset.
-@item run_and_halt
-@cindex run_and_halt
-Let the target run for some time (default: 1s), and then request halt.
-@item run_and_init
-@cindex run_and_init
-A combination of @option{reset_init} and @option{run_and_halt}. The target is allowed
-to run for some time, then halted, and the @option{reset} event script is executed.
-@end itemize
-
-On JTAG interfaces / targets where system reset and test-logic reset can't be driven
-completely independent (like the LPC2000 series), or where the JTAG interface is
-unavailable for some time during startup (like the STR7 series), you can't use
-@option{reset_halt} or @option{reset_init}.
-
-@item @b{target_script} <@var{target#}> <@var{event}> <@var{script_file}>
-@cindex target_script
-Event is either @option{reset}, @option{post_halt}, @option{pre_resume} or @option{gdb_program_config}
-
-TODO: describe exact semantic of events
-@item @b{run_and_halt_time} <@var{target#}> <@var{time_in_ms}>
-@cindex run_and_halt_time
-The amount of time the debugger should wait after releasing reset before it asserts
-a debug request. This is used by the @option{run_and_halt} and @option{run_and_init}
-reset modes.
-@item @b{working_area} <@var{target#}> <@var{address}> <@var{size}>
-<@var{backup}|@var{nobackup}>
-@cindex working_area
-Specifies a working area for the debugger to use. This may be used to speed-up
-downloads to target memory and flash operations, or to perform otherwise unavailable
-operations (some coprocessor operations on ARM7/9 systems, for example). The last
-parameter decides whether the memory should be preserved <@var{backup}>. If possible, use
-a working_area that doesn't need to be backed up, as that slows down operation.
-@end itemize
-
-@subsection arm7tdmi options
-@cindex arm7tdmi options
-target arm7tdmi <@var{endianess}> <@var{reset_mode}> <@var{jtag#}>
-The arm7tdmi target definition requires at least one additional argument, specifying
-the position of the target in the JTAG daisy-chain. The first JTAG device is number 0.
-The optional [@var{variant}] parameter has been removed in recent versions.
-The correct feature set is determined at runtime.
-
-@subsection arm720t options
-@cindex arm720t options
-ARM720t options are similar to ARM7TDMI options.
-
-@subsection arm9tdmi options
-@cindex arm9tdmi options
-ARM9TDMI options are similar to ARM7TDMI options. Supported variants are
-@option{arm920t}, @option{arm922t} and @option{arm940t}.
-This enables the hardware single-stepping support found on these cores.
-
-@subsection arm920t options
-@cindex arm920t options
-ARM920t options are similar to ARM9TDMI options.
-
-@subsection arm966e options
-@cindex arm966e options
-ARM966e options are similar to ARM9TDMI options.
-
-@subsection xscale options
-@cindex xscale options
-Supported variants are @option{ixp42x}, @option{ixp45x}, @option{ixp46x},
-@option{pxa250}, @option{pxa255}, @option{pxa26x}.
-
-@section Flash configuration
-@cindex Flash configuration
-
-@itemize @bullet
-@item @b{flash bank} <@var{driver}> <@var{base}> <@var{size}> <@var{chip_width}>
-<@var{bus_width}> <@var{target#}> [@var{driver_options ...}]
-@cindex flash bank
-Configures a flash bank at <@var{base}> of <@var{size}> bytes and <@var{chip_width}>
-and <@var{bus_width}> bytes using the selected flash <driver>.
-
-@item @b{flash auto_erase} <@option{on}|@option{off}>
-@cindex flash auto_erase
-auto erase flash banks prior to writing. Currently only works when using
-@option{flash write_image} command. Default is @option{off}.
-@end itemize
-
-@subsection lpc2000 options
-@cindex lpc2000 options
-
-@b{flash bank lpc2000} <@var{base}> <@var{size}> 0 0 <@var{target#}> <@var{variant}>
-<@var{clock}> [@var{calc_checksum}]
-LPC flashes don't require the chip and bus width to be specified. Additional
-parameters are the <@var{variant}>, which may be @var{lpc2000_v1} (older LPC21xx and LPC22xx)
-or @var{lpc2000_v2} (LPC213x, LPC214x, LPC210[123], LPC23xx and LPC24xx), the number
-of the target this flash belongs to (first is 0), the frequency at which the core
-is currently running (in kHz - must be an integral number), and the optional keyword
-@var{calc_checksum}, telling the driver to calculate a valid checksum for the exception
-vector table.
-
-@subsection cfi options
-@cindex cfi options
-
-@b{flash bank cfi} <@var{base}> <@var{size}> <@var{chip_width}> <@var{bus_width}>
-<@var{target#}>
-CFI flashes require the number of the target they're connected to as an additional
-argument. The CFI driver makes use of a working area (specified for the target)
-to significantly speed up operation.
-
-@var{chip_width} and @var{bus_width} are specified in bytes.
-
-@subsection at91sam7 options
-@cindex at91sam7 options
-
-@b{flash bank at91sam7} 0 0 0 0 <@var{target#}>
-AT91SAM7 flashes only require the @var{target#}, all other values are looked up after
-reading the chip-id and type.
-
-@subsection str7 options
-@cindex str7 options
-
-@b{flash bank str7x} <@var{base}> <@var{size}> 0 0 <@var{target#}> <@var{variant}>
-variant can be either STR71x, STR73x or STR75x.
-
-@subsection str9 options
-@cindex str9 options
-
-@b{flash bank str9x} <@var{base}> <@var{size}> 0 0 <@var{target#}>
-The str9 needs the flash controller to be configured prior to Flash programming, eg.
-@smallexample
-str9x flash_config 0 4 2 0 0x80000
-@end smallexample
-This will setup the BBSR, NBBSR, BBADR and NBBADR registers respectively.
-
-@subsection str9 options (str9xpec driver)
-
-@b{flash bank str9xpec} <@var{base}> <@var{size}> 0 0 <@var{target#}>
-Before using the flash commands the turbo mode will need enabling using str9xpec
-@option{enable_turbo} <@var{num>.}
-
-Only use this driver for locking/unlocking the device or configuring the option bytes.
-Use the standard str9 driver for programming.
-
-@subsection stellaris (LM3Sxxx) options
-@cindex stellaris (LM3Sxxx) options
-
-@b{flash bank stellaris} <@var{base}> <@var{size}> 0 0 <@var{target#}>
-stellaris flash plugin only require the @var{target#}.
-
-@subsection stm32x options
-@cindex stm32x options
-
-@b{flash bank stm32x} <@var{base}> <@var{size}> 0 0 <@var{target#}>
-stm32x flash plugin only require the @var{target#}.
-
-@node Commands
-@chapter Commands
-@cindex commands
-
-The Open On-Chip Debugger (OpenOCD) allows user interaction through a telnet interface
-(default: port 4444) and a GDB server (default: port 3333). The command line interpreter
-is available from both the telnet interface and a GDB session. To issue commands to the
-interpreter from within a GDB session, use the @option{monitor} command, e.g. use
-@option{monitor poll} to issue the @option{poll} command. All output is relayed through the
-GDB session.
-
-@section Daemon
-
-@itemize @bullet
-@item @b{sleep} <@var{msec}>
-@cindex sleep
-Wait for n milliseconds before resuming. Useful in connection with script files
-(@var{script} command and @var{target_script} configuration).
-
-@item @b{shutdown}
-@cindex shutdown
-Close the OpenOCD daemon, disconnecting all clients (GDB, Telnet).
-
-@item @b{debug_level} [@var{n}]
-@cindex debug_level
-Display or adjust debug level to n<0-3>
-
-@item @b{log_output} <@var{file}>
-@cindex log_output
-Redirect logging to <file> (default: stderr)
-
-@item @b{script} <@var{file}>
-@cindex script
-Execute commands from <file>
-
-@end itemize
-
-@subsection Target state handling
-@itemize @bullet
-@item @b{poll} [@option{on}|@option{off}]
-@cindex poll
-Poll the target for its current state. If the target is in debug mode, architecture
-specific information about the current state are printed. An optional parameter
-allows continuous polling to be enabled and disabled.
-
-@item @b{halt} [@option{ms}]
-@cindex halt
-Send a halt request to the target and waits for it to halt for [@option{ms}].
-Default [@option{ms}] is 5 seconds if no arg given.
-Optional arg @option{ms} is a timeout in milliseconds. Using 0 as the [@option{ms}]
-will stop openocd from waiting.
-
-@item @b{wait_halt} [@option{ms}]
-@cindex wait_halt
-Wait for the target to enter debug mode. Optional [@option{m