From 91f58cccbc4de091f434313af016c36efadfd883 Mon Sep 17 00:00:00 2001 From: drath Date: Mon, 14 Aug 2006 10:58:12 +0000 Subject: [PATCH] - updated configuration examples, installation instructions and README (including list of supported JTAG interfaces) git-svn-id: svn://svn.berlios.de/openocd/trunk@85 b42882b7-edfa-0310-969c-e2dbd0fdcd60 --- INSTALL | 11 ++- README | 94 ++++++++++++++----- doc/configs/arm7_ft2232.cfg | 5 +- doc/configs/arm7_ftd2xx.cfg | 29 ------ .../{arm9_ftd2xx.cfg => arm9_ft2232.cfg} | 8 +- 5 files changed, 86 insertions(+), 61 deletions(-) delete mode 100644 doc/configs/arm7_ftd2xx.cfg rename doc/configs/{arm9_ftd2xx.cfg => arm9_ft2232.cfg} (85%) diff --git a/INSTALL b/INSTALL index f2008737e9..3f26ee269c 100644 --- a/INSTALL +++ b/INSTALL @@ -7,6 +7,9 @@ one of the following libraries: - libftdi (http://www.intra2net.com/opensource/ftdi/) - libftd2xx (http://www.ftdichip.com/Drivers/D2XX.htm) +On Windows, you need either Cygwin or MinGW, but compilation for MinGW is also +possible using a Cygwin host. + Basic Installation ================== @@ -16,7 +19,7 @@ necessary files generated. You have to explicitly enable desired JTAG interfaces during configure: -./configure --enable-parport --enable-ftdi2232 --enable-ftd2xx \ +./configure --enable-parport --enable-ft2232-libftdi (OR --enable-ft2232-ftd2xx) \ --enable-amtjtagaccel Under Windows/Cygwin, only the ftd2xx driver is supported for FT2232 based @@ -26,7 +29,11 @@ devices. You have to specify the location of the FTDI driver package with the Under Linux you can choose to build the parport driver with support for /dev/parportN instead of the default access with direct port I/O using --enable-parport_ppdev. This has the advantage of running OpenOCD without root -privileges at the expense of a slight performance decrease. +privileges at the expense of a slight performance decrease. This is also +available on FreeBSD using PPI, but the naming of the devices is different. + +Generic installation instructions +================================= These are generic installation instructions. diff --git a/README b/README index 30445f1b90..a725a94dc0 100644 --- a/README +++ b/README @@ -1,8 +1,8 @@ - openocd + OpenOCD - Free and Open On-Chip Debugging, In-System Programming - and Boundary-Scan Testing - Copyright (c) 2004, 2005 Dominic Rath + Free and Open On-Chip Debugging, In-System Programming + and Boundary-Scan Testing + Copyright (c) 2004, 2005, 2006 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 / @@ -11,39 +11,83 @@ system-on-chip solutions. User interaction is realized through a telnet command line interface and a gdb (The GNU Debugger) remote protocol server. -Initially, support for two JTAG TAP bus master interfaces with public hardware -schematics will be included, but support of additional hardware is an expressed -goal. - 1. JTAG hardware -Currently, openocd contains support for Wiggler-compatible paralell port -dongles and a USB interface based on the FTDI FT2232, called USBJTAG-1. -A new version of the USB interface, USB-JTAG v1.2, is available with complete -schematics (http://www.fh-augsburg.de/~hhoegl/proj/volksmikro/usb-jtag/050910/). +Currently, OpenOCD supports three types of 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 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. + +* 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. -It was tested using Amontec's (www.amontec.com) Chameleon POD in it's -Wiggler configuration, but homemade wigglers should work just as well. -In order to use the reset functionality (warm-reset, debug from reset, reset -and init), the choosen Wiggler has to connect the nSRST line. +* 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. -USBJTAG-1 is based on a FTDI DLP2232M module and a few additional parts. -Schematics are freely available. USB-JTAG v1.2 doesn't use the DLP2232M, but -has the FTDI chip soldered directly on the PCB. There are two drivers for these -modules implemented, one using the open source libftdi, the other using FTDI's -proprietary FTD2XX library. +* 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. + +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 cores: -- ARM7TDMI +- ARM7TDMI(-s) - ARM9TDMI +- ARM920t +- ARM922t +- ARM966e + +Support for Intel XScale CPUs (PXA25x, PXA27x and IXP4xx) is currently being +developed. + +The OpenOCD is only tested with little-endian targets, but support for +big-endian is planned. If you're interested in helping with this (and you +happen to have a big-endian ARM7/ARM9 system, feel free to contact +Dominic.Rath gmx.de. + +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, x86-64-Linux and +(though it's not fully working yet) PowerPC OS-X. + +4. Documentation -Support for cores with MMUs (ARM720t, ARM920t) is currently being merged. +Documentation for the OpenOCD is hosted in the Berlios OpenFacts Wiki at +http://openfacts.berlios.de/index-en.phtml?title=Open_On-Chip_Debugger. -3. Licensing +5. Licensing -openocd is licensed under the terms of the GNU General Public License, see the +OpenOCD is licensed under the terms of the GNU General Public License, see the file COPYING for details. diff --git a/doc/configs/arm7_ft2232.cfg b/doc/configs/arm7_ft2232.cfg index 369d09b112..bb302dbdc1 100644 --- a/doc/configs/arm7_ft2232.cfg +++ b/doc/configs/arm7_ft2232.cfg @@ -3,7 +3,10 @@ telnet_port 4444 gdb_port 3333 #interface -interface ftdi2232 +interface ft2232 +ft2232 "Amontec JTAGkey A" +ft2232 jtagkey +ft2232 0x0403 0xcff8 jtag_speed 0 #use combined on interfaces or targets that can't set TRST/SRST separately reset_config trst_and_srst srst_pulls_trst diff --git a/doc/configs/arm7_ftd2xx.cfg b/doc/configs/arm7_ftd2xx.cfg deleted file mode 100644 index 59dad02f27..0000000000 --- a/doc/configs/arm7_ftd2xx.cfg +++ /dev/null @@ -1,29 +0,0 @@ -#daemon configuration -telnet_port 4444 -gdb_port 3333 - -#interface -interface ftd2xx -ftd2xx_device_desc "Amontec JTAGkey A" -ftd2xx_layout jtagkey -ftd2xx_vid_pid 0x0403 0xcff8 -jtag_speed 2 -#use combined on interfaces or targets that can't set TRST/SRST separately -reset_config trst_and_srst srst_pulls_trst - -#jtag scan chain -#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE) -jtag_device 4 0x1 0xf 0xe - -#target configuration -daemon_startup reset -#target -#target arm7tdmi -target arm7tdmi little run_and_halt 0 arm7tdmi-s_r4 -target_script 0 reset h2294_init.script -run_and_halt_time 0 30 -working_area 0 0x40000000 0x40000 nobackup - -#flash configuration -flash bank lpc2000 0x0 0x40000 0 0 lpc2000_v1 0 14765 calc_checksum -flash bank cfi 0x80000000 0x400000 2 2 0 diff --git a/doc/configs/arm9_ftd2xx.cfg b/doc/configs/arm9_ft2232.cfg similarity index 85% rename from doc/configs/arm9_ftd2xx.cfg rename to doc/configs/arm9_ft2232.cfg index 84885dd294..2fecc7fef7 100644 --- a/doc/configs/arm9_ftd2xx.cfg +++ b/doc/configs/arm9_ft2232.cfg @@ -3,10 +3,10 @@ telnet_port 4444 gdb_port 3333 #interface -interface ftd2xx -ftd2xx_device_desc "Amontec JTAGkey A" -ftd2xx_layout "jtagkey" -ftd2xx_vid_pid 0x0403 0xcff8 +interface ft2232 +ft2232 "Amontec JTAGkey A" +ft2232 "jtagkey" +ft2232 0x0403 0xcff8 jtag_speed 1 #use combined on interfaces or targets that can't set TRST/SRST separately reset_config trst_and_srst -- 2.30.2