JTAG Tools
JTAG Tools is a software package which enables working with JTAG-aware
(IEEE 1149.1) hardware devices (parts) and boards through JTAG adapter.
This package has open and modular architecture with ability to write
miscellaneous extensions (like board testers, flash memory programmers,
and so on).
JTAG Tools package is free software, covered by the GNU General Public
License, and you are welcome to change it and/or distribute copies of it
under certain conditions. There is absolutely no warranty for JTAG Tools.
Please read COPYING file for more info.
Warning: This software may damage your hardware!
Feedback and contributions are welcome.
Download
Latest released version is jtag-0.5.1 available in source form from the
SourceForge
download site.
News
JTAG Tools is no longer developed here.
The further development resumed in UrJTAG project.
jtag-0.5.1 (2003-10-11):
- Added new JTAG declarations for
- Altera EP1C20F400 (Rojhalat Ibrahim)
- Altera EPM7128AETC100 (Rojhalat Ibrahim)
- Added additional checks for valid ByteBlaster cable connection and enabled all variants
of the cable (patch 793313, Rojhalat Ibrahim).
- Used real data bus width for data reading in PXA2x0, SA1110, and SH7727 bus drivers
(based on patch 792591, thanks to Guennadi Liakhovetski).
- Added 'initbus' command to allow dynamic bus driver loading.
- Added support for flashes with multiple block erase regions for 'flashmem' (Bradley D. LaRonde).
- Added BOOT_DEF register emulation for PXA2x0 bus driver.
- Fixed inverted TRST signal for Macraigor Wiggler JTAG Cable see patch 799377 for more info,
thanks to Mike Tesch for reporting).
- Added Ka-Ro TRITON (PXA255/250) JTAG Cable driver (patch 805103, Andreas Mohr).
- Added initial JEDEC detection for flash chips (Bradley D. LaRonde).
- Added support for AMD Am29LV800B flash (Bradley D. LaRonde).
- Added support for 1 x 16 AMD flash (Bradley D. LaRonde).
- Spelling and documentation fixes (patch 805108, Andreas Mohr).
- Fixed minor bugs.
- Updated translations:
jtag-0.5 (2003-08-19):
- Fixed bug with SELECT, AUTOFD, and STROBE signals handling
(bug 745824).
- Added new commands 'peek' and 'poke'
(patch 747447,
Matan Ziv-Av).
- Fixed bugs in SH7727 bus driver (thanks to Rainer Dörken).
- Added bus drivers for Hitachi SH7750R and Broadcom BCM1250
(patch 753300,
Matan Ziv-Av).
- Added bus driver for Hitachi SH7751R
(patch 773533,
Matan Ziv-Av).
- Added bus width detection using MD3 and MD4 signals in SH7727 bus driver (thanks to Rainer Dörken).
- Changes in 'discovery' command:
- removed explicit JTAG chain length detection
(patch 753298,
Matan Ziv-Av)
- simplified output messages
- removed support for report results to file
- Added new command 'part', syntax changes for 'set', 'get', 'dr', 'instruction', and 'print' commands.
- Added support for multiple buses, added new 'bus' command to change active bus.
- Added initial JTAG declarations for Broadcom BCM3310 (see
support request 770145
for more info, thanks to Ramses VI).
- Added JTAG declarations for Samsung S3C4510B (Jiun-Shian Ho).
- Added bus driver for Samsung S3C4510X (Jiun-Shian Ho).
- Fixed invalid memory allocation size (core dump) in jtag_parse_line() function.
- Added new 'include' command.
- Added new commands 'signal', 'register', 'bit', and enhanced 'instruction' command to allow create JTAG declarations from command line (or script).
- Added new 'eraseflash' command
(patch 772267,
Thomas Fröhlich).
- JTAG declarations are now executed as scripts.
- Added support for parts without IDCODE instruction.
- Added support for "downto" in bit vectors and "observe_only" into bsdl2jtag
(patch 787346,
Brad Parker).
- Added support for Intel SCS command set
(patch 787978,
Jani Monoses).
- Added support for 1 x 8 bit AMD Flash
(patch 772499,
Matan Ziv-Av).
- Added support for 1 x 8 bit Intel Flash
(patch 753295,
Matan Ziv-Av).
- Minor bugs fixed.
- New translations:
jtag-0.4 (2003-05-29):
- Added support for executing scripts directly from stdin (parameter '-').
- Disabled external bus cycles for PXA250 for addresses above 0x04000000.
- Fixed bug in BUSY signal handling in Linux ppdev driver.
- Optimized bus drivers to increase bus access speed (readmem, flashmem, ...).
- Added new command 'endian' to configure access mode to external files.
- Added JTAG declarations for
- Broadcom BCM5421S
(patch 743129,
Matan Ziv-Av)
- DEC SA1100 (thanks to Jachym Holecek)
- Added bus driver for Hitachi SH7727 (based on
patch 743140,
Matan Ziv-Av).
- Added support for printing current JTAG frequency.
- Added support for 'signal' keyword (as alias for 'pin') into JTAG declarations.
- Minor bugs fixed.
jtag-0.3.2 (2003-04-04):
- Added driver for Keith & Koep JTAG Cable.
- Ported to NetBSD/i386 (Jachym Holecek).
- Added JTAG declarations for Xilinx XCR3256XL-FT256 (Jachym Holecek).
jtag-0.3.1 (2003-03-19):
- Added support for Intel PXA255 A0 (thanks to Mike Sprauve).
- Added support for running scripts specified as jtag command line parameters.
- Added support for comments in scripts. Lines started with `#' are treated as comments.
- Added support for Linux ppdev parallel port driver. Non-root users can use JTAG Tools now.
- Added new `bsdl2jtag' conversion tool (Matan Ziv-Av).
jtag-0.3 (2003-02-25):
- Changes in interactive commands:
- enhanced 'dr' command functionality
- new 'set signal' command
- new 'get signal' command
- new 'script' command (Alessandro Zummo)
- Added support for JTAG cables:
- Mpcbdm JTAG Cable (Christian Pellegrin)
- Arcom JTAG Cable
(patch 682310,
Ian Campbell)
- Added JTAG declarations for
- Intel IXP425 (Christian Pellegrin)
- Xilinx XC2C256-TQ144 (Alessandro Zummo)
- Broadcom BCM1250 (Matan Ziv-Av)
- Hitachi SH7727 (Matan Ziv-Av)
- Added bus driver for Intel IXP425 (Christian Pellegrin).
- Added support for all 6 static memory banks for Intel SA1110
(bug 682660).
- Added support for bidirectional 'B' boundary scan bits (Christian Pellegrin).
- Added support for 1 x 16 bit memory configuration (Christian Pellegrin).
- Added buffered file reads/writes (Christian Pellegrin).
- Added support for flash drivers (August Hörandl).
- Added flash driver for AMD chips (August Hörandl).
- Added support for rc and history files (Alessandro Zummo).
- Added support for localization.
- Some bugs fixed.
jtag-0.2.2 (2003-02-04):
- Added new manufacturer: Cypress.
(patch 669157,
Chris Ellec)
- Added new 'frequency' command to limit maximum TCK frequency
- Added support for parallel ports with I/O addresses above 0x3FF
jtag-0.2.1 (2003-01-13):
- Fixed compile error
(bug 665923,
thanks to Chris Ellec).
- Added support for Macraigor Wiggler JTAG Cable (Stas Khirman).
- Added support for Altera ByteBlaster/ByteBlaster II/ByteBlasterMV Parallel Port Download Cable.
- Fixed some other bugs.
jtag-0.2 (2003-01-08):
- Completed JTAG declarations for Xilinx XCR3128XL-CS144.
- Fixed crash if flash memory is not detected.
- Added new 'discovery' command for discovery unknown JTAG chains.
- Added JTAG cable driver support and new 'cable' command.
jtag-0.1 (2002-11-25):
Thanks
Ian Campbell,
Alex (d18c7db),
Rainer Dörken,
Chris Ellec,
Thomas Fröhlich,
Jiun-Shian Ho,
Jachym Holecek,
August Hörandl,
Rojhalat Ibrahim,
Stas Khirman,
Bradley D. LaRonde,
Guennadi Liakhovetski,
Andreas Mohr,
Jani Monoses,
Brad Parker,
Christian Pellegrin,
Ramses VI,
Mike Tesch,
Holger Schurig,
Matan Ziv-Av,
Alessandro Zummo
Supported host operating systems
JTAG Tools should run on all Unix like operating systems including
MS Windows with Cygwin installed.
Supported hardware
JTAG adapters/cables (see help cable
command for more info):
JTAG-aware parts (chips):
- Altera EP1C20F400
- Altera EPM7128AETC100
- Atmel ATmega128 (partial support)
- Broadcom BCM1250
- Broadcom BCM5421S
- Broadcom BCM3310 (partial support)
- DEC SA1100
- Hitachi SH7727
- Intel IXP425
- Intel SA1110
- Intel PXA250/PXA255/PXA260/PXA261/PXA262/PXA263
- Samsung S3C4510B
- Xilinx XC2C256-TQ144
- Xilinx XCR3128XL-CS144
- Xilinx XCR3256XL-FT256
Flash chips (2 x 16 bit configuration only):
- Intel 28FxxxJ3A (28F320J3A, 28F640J3A, 28F128J3A)
- Intel 28FxxxK3 (28F640K3, 28F128K3, 28F256K3)
- Intel 28FxxxK18 (28F640K18, 28F128K18, 28F256K18)
- AMD Am29LV64xD (Am29LV640D, Am29LV641D, Am29LV642D)
Fitting a JTAG interface to an iPAQ 3600
Required software
Required only for MS Windows:
Required for all systems:
Build & installation instructions
- Download and install required software (see previous section).
- Download and unpack jtag sources.
- Run
./configure
script. Use optional --with-include
parameter if required.
See `./configure --help`
for more info.
- Run
`make`
.
- Run
`make install`
.
Running JTAG Tools
Connect your JTAG adapter between your PC and target device and turn
on your device.
To run JTAG Tools type jtag
and press <Enter>. jtag should start and
display some initial informations. Output should end with line like this:
jtag>
This is "jtag command prompt". Type help
and press <Enter> for initial help
about available commands. To exit JTAG Tools type "quit" and press <Enter>.
First task: Select JTAG cable and parallel port address.
Type help cable
for list of supported JTAG cables.
Type cable
command with arguments. Example:
jtag> cable parallel 0x378 EA253
Initializing ETC EA253 JTAG Cable on parallel port at 0x378
Second task: Detect parts on the JTAG chain.
Type detect
at the jtag command prompt:
jtag> detect
Your output should look like this:
IR length: 5
Chain length: 1
Device Id: 01011001001001100100000000010011
Manufacturer: Intel
Part: PXA250
Stepping: C0
Filename: /usr/local/share/jtag/intel/pxa250/pxa250c0
If you get empty output or an error message your JTAG adapter is not connected
properly, or your target board doesn't work, or it is turned off.
detect
command is required before all other commands.
Third task: Print current JTAG chain status.
Type print
at the jtag command prompt. Here is an output example:
jtag> print chain
No. Manufacturer Part Stepping Instruction Register
---------------------------------------------------------------------------------------------
0 Intel PXA250 C0 BYPASS BR
jtag>
Fourth task: Sample device pin status.
jtag> instruction SAMPLE/PRELOAD
jtag> shift ir
jtag> shift dr
jtag> dr
10001100100000100001100101111111111111111110011011100000111011111111111111111111
11111111111111111111111111111111111111111111101111111101100000100010101000000000
00011111000000111010111111100000100001100100000000000000000111000011100000000000
00000000000000000000000000000001000000000000000000000000000000000000000000000000
11110000000000000000000000000000000000000000001000000000000000000000000000000000
0000000000
jtag> print chain
No. Manufacturer Part Stepping Instruction Register
---------------------------------------------------------------------------------------------
0 Intel PXA250 C0 SAMPLE/PRELOAD BSR
jtag> get signal BOOT_SEL[0]
BOOT_SEL[0] = 0
jtag>
Note: BSR is "Boundary Scan Register"
Fifth task: Burn flash connected to the part.
jtag> flashmem 0 brux.b
0x00000000
Note: Supported configuration is 2 x 16 bit only
BOOT_SEL: Asynchronous 32-bit ROM
2 x 16 bit CFI devices detected (QRY ok)!
program:
block 0 unlocked
erasing block 0: 0
addr: 0x00002854
verify:
addr: 0x00002854
Done.
jtag>
or:
jtag> flashmem msbin xboot.bin
Note: Supported configuration is 2 x 16 bit only
BOOT_SEL: Asynchronous 32-bit ROM
2 x 16 bit CFI devices detected (QRY ok)!
block 0 unlocked
erasing block 0: 0
program:
record: start = 0x00000000, len = 0x00000004, checksum = 0x000001EB
record: start = 0x00000040, len = 0x00000008, checksum = 0x000001B0
record: start = 0x00001000, len = 0x00002B30, checksum = 0x00122CAB
record: start = 0x00004000, len = 0x00000160, checksum = 0x0000684B
record: start = 0x00005000, len = 0x00000054, checksum = 0x000008EE
record: start = 0x00005054, len = 0x00000030, checksum = 0x00000DA9
record: start = 0x00000000, len = 0x00001000, checksum = 0x00000000
verify:
record: start = 0x00000000, len = 0x00000004, checksum = 0x000001EB
record: start = 0x00000040, len = 0x00000008, checksum = 0x000001B0
record: start = 0x00001000, len = 0x00002B30, checksum = 0x00122CAB
record: start = 0x00004000, len = 0x00000160, checksum = 0x0000684B
record: start = 0x00005000, len = 0x00000054, checksum = 0x000008EE
record: start = 0x00005054, len = 0x00000030, checksum = 0x00000DA9
record: start = 0x00000000, len = 0x00001000, checksum = 0x00000000
Done.
jtag>
Contacts
Homepage: http://openwince.sourceforge.net/jtag/
CVS repository: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/openwince/jtag/
Please report and track bugs at (please use Category 'jtag'):
http://sourceforge.net/tracker/?group_id=52603&atid=469850
Mailing list (discussion, questions): openwince-list@lists.sourceforge.net
Subscribe: http://lists.sourceforge.net/mailman/listinfo/openwince-list
Mailing list (announce): openwince-announce@lists.sourceforge.net
Subscribe: http://lists.sourceforge.net/mailman/listinfo/openwince-announce
Patches and improvements are welcome at (please use Category 'jtag'):
http://sourceforge.net/tracker/?group_id=52603&atid=469852
Feature requests are welcome at (please use Category 'jtag'):
http://sourceforge.net/tracker/?group_id=52603&atid=469853
Support requests are welcome at (please use Category 'jtag'):
http://sourceforge.net/tracker/?group_id=52603&atid=469851
$Id: index.html,v 1.31 2010/03/29 17:16:39 telka Exp $