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