- correct line endings from previous commit
[openocd.git] / README
1                                     OpenOCD
2
3                          Free and Open On-Chip Debugging, In-System Programming 
4                                                    and Boundary-Scan Testing
5                                   Copyright (c) 2004-2007 Dominic Rath
6
7 The debugger uses an IEEE 1149-1 compliant JTAG TAP bus master to access on-chip
8 debug functionality available on ARM7 and ARM9 based microcontrollers /
9 system-on-chip solutions.
10
11 User interaction is realized through a telnet command line interface and a gdb
12 (The GNU Debugger) remote protocol server.
13
14 1. JTAG hardware
15
16 Currently, OpenOCD supports the following JTAG interfaces:
17
18 - Parallel port wigglers. These devices connect to a PC's parallel port,
19 providing direct access to the JTAG lines. The OpenOCD contains descriptions
20 of a few Wiggler layouts, including the original 'Wiggler' design. Other
21 layouts (i.e. mapping of parallel port pins to JTAG lines) can be added easily.
22 Typical Wiggler speeds are around 12kByte/s code download to an ARM7's RAM.
23
24 The list of supported parallel port devices includes:
25
26   * Macraigor Wiggler JTAG cable
27   * Gateworks GW16012 JTAG programmer
28   * Xilinx DLC5 JTAG parallel cable III
29   * Ka-Ro TRITON starterkit II JTAG cable
30   * Lattice parallel port JTAG cable
31   * ST FlashLINK programming cable
32
33 - The Amontec JTAG Accelerator. This is a configuration for Amontec's Chameleon
34 dongle, a parallel port interface based on a Xilinx CoolRunner CPLD. It uses
35 the IEEE1284 EPP parallel port specification, providing many times the
36 performance achievable with wiggler-style devices. Additional information is
37 available on www.amontec.com.
38 Typical JTAG Accelerator speeds are around 120-160kByte/s to an ARM7's RAM.
39
40 - FTDI FT2232 based USB devices. The FT2232 (but not FT232 or FT245) features a
41 multi-protocol synchronous serial engine (MPSSE) that can be used to run the
42 serial JTAG protocol. There are several implemenations of FT2232 based devices:
43
44 * USBJTAG: http://www.fh-augsburg.de/~hhoegl/proj/usbjtag/usbjtag.html
45 The USBJTAG was designed by Prof. Hubert Hoegl to provide a high-speed USB
46 interface for use with the OpenOCD. Schematics are available at the USBJTAG
47 website, and a homebrew device can easily be built using the FTDI evaluation
48 module DLP2232M.
49
50 * OOCD-Link: http://www.joernonline.de/dw/doku.php?id=en:projects:oocdlink
51 Similar to the USBJTAG, this design comes with free schematics, too.
52
53 * Amontec JTAGkey: www.amontec.com
54 The Amontec JTAGkey offers support for a wide variety of target voltages from
55 1.4V to 5V. It also allows the JTAG lines and reset signals to be tri-stated,
56 allowing easy interfacing with a wide variety of targets.
57
58 * Amontec JTAGkey-Tiny: www.amontec.com
59 The Amontec JTAGkey offers support for a wide variety of target voltages from
60 2.8V to 5V. It also allows the reset signals to be tri-stated, allowing easy
61 interfacing with a wide variety of targets.
62
63 * Olimex ARM-USB-OCD: www.olimex.com
64 The Olimex ARM-USB-OCD offers support for a wide vriety of target voltages from
65 2.0V to 5V. It also allows targets to be powered from the ARM-USB-OCD and
66 features and additional RS232 UART.
67
68 * eVerve Signalyzer: www.signalyzer.com
69 The Signalyzer offers support for a wide variety of target voltages from 1.2V to
70 5.5V. A second connector provides access to a TTL level UART.
71
72 * TinCanTools 'Flyswatter' USB JTAG programmer.
73
74 * Turtelizer 2: http://www.ethernut.de/en/hardware/turtelizer/index.html
75 Another USB JTAG programmer, with freely available schematics. It supports
76 target voltages from 1.65V to 5.5V.
77
78 * Hitex STR9-comSTICK: http://www.ehitex.de/p_info.php?products_id=292
79 A STR912FW44x microcontroller "board" with USB and JTAG functionality.
80
81 * Luminary Micro development board evb_lm3s811 JTAG interface.
82
83 * ASIX PRESTO: http://www.asix-tools.com/prg_presto.htm
84 The ASIX PRESTO is a USB JTAG programmer for a wide range of components, e.g.
85 microcontrollers, serial EEPROM and Flash memory chips, CPLDs and others.
86
87 * usbprog: http://www.embedded-projects.net/index.php?page_id=165
88 The usbprog is a freely programmable USB adapter, which can (among other
89 things) use a firmware which turns it into a JTAG programmer/debugger.
90
91 All FT2232 based devices may be accessed using either FTDI's proprietary FTD2XX
92 library (www.ftdichip.com) or using an open-source replacement from
93 http://www.intra2net.com/de/produkte/opensource/ftdi/index.php, also included
94 with many Linux distributions.
95
96 2. Supported cores
97
98 This version of openocd supports the following ARM7/9 cores:
99
100 - ARM7TDMI(-s)
101 - ARM9TDMI
102 - ARM920t
103 - ARM922t
104 - ARM926ej-s
105 - ARM966e
106 - Cortex-M3
107
108 Support for Intel XScale CPUs is also included:
109
110 - PXA25x
111 - PXA27x
112 - IXP42x
113
114 And support for the Marvell Feroceon CPU core as found in the
115 Orion SOC family is included as well.
116
117 3. Host platforms
118
119 OpenOCD was originally developed on x86-Linux, but has since then been ported
120 to run on Windows/Cygwin, native Windows with MinGW, FreeBSD, IA64-Linux,
121 AMD64-Linux, Alpha-Linux, ARM-Linux, and PowerPC OS-X.
122
123 4. Documentation
124
125 Documentation for the OpenOCD is hosted in the Berlios OpenFacts Wiki at
126 http://openfacts.berlios.de/index-en.phtml?title=Open_On-Chip_Debugger.
127
128 5. Licensing
129
130 OpenOCD is licensed under the terms of the GNU General Public License, see the
131 file COPYING for details.
132