From b462150ed3524fedbb102b887327b1e983e3497c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arnim=20L=C3=A4uger?= Date: Sat, 27 Feb 2010 22:46:20 +0000 Subject: [PATCH] intermediate web page update git-svn-id: https://urjtag.svn.sourceforge.net/svnroot/urjtag/trunk@1781 b68d4a1b-bc3d-0410-92ed-d4ac073336b7 --- web/htdocs/book/UrJTAG.dbk | 360 +++++++--- web/htdocs/book/UrJTAG.html | 632 ++++++++++++++---- .../book/_compilation_and_installation.html | 68 +- web/htdocs/book/_copyright.html | 2 +- web/htdocs/book/_data_file_format.html | 248 ++++++- web/htdocs/book/_development.html | 2 +- web/htdocs/book/_drivers.html | 2 +- web/htdocs/book/_f_a_q.html | 2 +- web/htdocs/book/_general.html | 22 +- .../_gnu_free_documentation_license_fdl.html | 2 +- .../book/_gnu_general_public_license_gpl.html | 2 +- web/htdocs/book/_internals.html | 8 +- web/htdocs/book/_jtag_commands.html | 89 +-- web/htdocs/book/_licensing.html | 2 +- web/htdocs/book/_system_requirements.html | 88 ++- web/htdocs/book/_urjtag.html | 18 +- web/htdocs/book/_usage.html | 64 +- web/htdocs/book/index.html | 43 +- 18 files changed, 1281 insertions(+), 373 deletions(-) diff --git a/web/htdocs/book/UrJTAG.dbk b/web/htdocs/book/UrJTAG.dbk index e66cdc2c..090f717d 100644 --- a/web/htdocs/book/UrJTAG.dbk +++ b/web/htdocs/book/UrJTAG.dbk @@ -4,7 +4,7 @@ Universal JTAG library, server and tools - 2009-04-08 + 2010-02-16 Kolja Waschk @@ -12,7 +12,7 @@ KW( -14822009-04-08KW( +17782010-02-16KW( @@ -29,7 +29,7 @@ the section entitled "GNU Free Documentation License". General
JTAG -JTAG basics can be found all over the internet. This section should go into +JTAG basics can be found all over the Internet. This section should go into some more details about working with JTAG. What hardware do you need, what is the usage of JTAG, where do I get files. What file formats are available… @@ -69,31 +69,31 @@ control machine also allows to have two internal shift registers in each device (although we only have on in- and one output-pin). The registers are called instruction register (IR) and data register (DR). The current UrJTAG tool allows you to set the IR and set and get the DR. It doesn't allow you to -directly control the statemachine (yet). +directly control the state machine (yet).
Interfaces The simplest interface that you can build is like the Xilinx parallel cable (also called DLC5). If your device works with a 5V or 3.3V supply voltage then -this device can even be build just with passive parts. (picture missing here) +this device can even be built just with passive parts. (picture missing here) UrJTAG also supports a number of other interface adapters.
Additions -In the meantime the jtag specification was used as a basis for programming +In the meantime the JTAG specification was used as a basis for programming flash files and debugging processors. UrJTAG supports programming a couple of different flash devices. It also supports programming of non-flash devices via -svf files. UrJTAG does not support debugging yet. Other open source solutions +SVF files. UrJTAG does not support debugging yet. Other open source solutions such as OpenOCD allow you to debug ARM processors with gdb.
BSDL and UrJTAG data files -The BSDL file format describes the jtag interface for one IC. It is a VHDL +The BSDL file format describes the JTAG interface for one IC. It is a VHDL syntax with the needed information (like pin-names, register lengths and -commands) that is usually done by the supplier. e.g. Xilinx BSDL files are +commands) that is usually created by the supplier. e.g. Xilinx BSDL files are all included in their free web-pack (using file extension ".bsd"). UrJTAG uses a different file format internally. So in order to add a new device @@ -110,15 +110,15 @@ convert the BSDL file.
SVF files -The SVF file format contains a number of high level commands to drive the jtag +The SVF file format contains a number of high level commands to drive the JTAG bus. For example you can shift the IR or DR and even check for the results. -The Xilinxs impact and Altera QuartusII tools allow you to write this file to +The Xilinx Impact and Altera QuartusII tools allow you to write this file to program devices. The player has been developed according to the "Serial Vector Format Specification", Revision E, 8 March 1999 issued by ASSET InterTech, Inc. The full specification can be found at -http://www.asset-intertech.com/support/svf.pdf +http://www.asset-intertech.com/support/svf.pdf. UrJTAG features an "SVF player" that can read SVF files and perform the described actions on the bus. @@ -141,17 +141,17 @@ more. STAPL is not yet supported by UrJTAG. UrJTAG
Introduction -UrJTAG Tools is a software package which enables working with JTAG-aware (IEEE -1149.1) hardware devices (parts) and boards through JTAG adapter. +UrJTAG is a software package which enables working with JTAG-aware (IEEE +1149.1) hardware devices (parts) and boards through a JTAG adapter. -This package has open and modular architecture with ability to write +This package has an open and modular architecture with the 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, +UrJTAG 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. +conditions. There is absolutely no warranty for UrJTAG. Please read +the COPYING file for more info. This software may damage your hardware! Feedback and contributions are welcome. @@ -166,8 +166,8 @@ at the UrJTAG website.
UrJTAG Website -The most current version of this documentation and UrJTAG sourcecode -is always available from the project homepage at http://www.urjtag.org +The most current version of this documentation and UrJTAG source code +is always available from the project homepage at http://www.urjtag.org.
@@ -205,12 +205,13 @@ wings of the UrJTAG project at Sourceforge.
Supported host operating systems JTAG Tools should run on all Unix like operating systems including MS Windows -with Cygwin installed. +with Cygwin installed. A precompiled version that runs on MS Windows without +Cygwin is available as a Windows installer executable.
Required software for running UrJTAG -Required only for MS Windows: +Required only for MS Windows, unless you use the precompiled version: @@ -231,8 +232,8 @@ driver in the system. the system as well. It's probably a standard part of your distribution. More software is needed if you want to compile UrJTAG (which you probably want -because currently no pre-compiled binaries are avaible…). See "Installation" -below. +because currently no pre-compiled binaries are available…). +See "Installation" below.
@@ -353,7 +354,12 @@ USB to JTAG Interface (experimental) -Black gnICE http://docs.blackfin.uclinux.org/doku.php?id=hw:jtag:gnice +Blackfin gnICE http://docs.blackfin.uclinux.org/doku.php?id=hw:jtag:gnice + + + + +Blackfin gnICE+ http://docs.blackfin.uclinux.org/doku.php?id=hw:jtag:gnice-plus @@ -381,9 +387,15 @@ Xilinx Platform USB Cable / DLC9 (slow, experimental, work in progress - don't u -Other cables: - * Technologic Systems TS-7800 SoC GPIO builtin JTAG interface +Other cables: + + + +Technologic Systems TS-7800 SoC GPIO builtin JTAG interface + + +
JTAG-aware parts (chips) @@ -413,6 +425,58 @@ Altera Cyclone I & II (w/ BSDL) +Analog Devices Blackfin (w/ BSDL) + + + + +BF504/BF506 + + + + +BF512/BF514/BF516/BF518 + + + + +BF522/BF523/BF524/BF525/BF526/BF527 + + + + +BF531/BF532/BF533 + + + + +BF538/BF539 + + + + +BF534/BF536/BF537 + + + + +BF542/BF544/BF547/BF548/BF549 + + + + +BF561 + + + + +BF592 + + + + + + Analog Devices Sharc-21065L @@ -610,6 +674,31 @@ algorithm.
Compilation and installation +
+Installation of precompiled UrJTAG for Windows +By simply running UrJTAG-xxx.exe, the executable and data files will +be installed in your Windows program folder, usually some place like +C:\Program Files\UrJTAG. It comes ready with support for JTAG cables that are +directly attached to a parallel port. However, if you work with Windows Vista +and want access to the parallel port, a driver for it has to be installed +separately. It is available from + +http://www.highrez.co.uk/Downloads/InpOut32/ +If you want to use UrJTAG with a JTAG cable attached to the USB port, +actual cable drivers have to be installed beside UrJTAG itself. Usually, +the cable vendor will provide the drivers. For example, drivers for +Altera USB-Blaster come with their Quartus software. For FTDI-based +cables, you need an INF file describing the cable and FTDIBUS.SYS and +FTD2XX.DLL from FTDI (CDM drivers). If your cable shows up in the device +manager without any warning sign, UrJTAG probably is able to talk to it. + +Finally, UrJTAG additionally needs libusb-win32 to talk to some USB cables that +are not based on FTDI chips (Xilinx Platform Cable USB, Segger J-Link). The +so-called libusb-win32 filter driver is available from the project's download +page at Sourceforge: + +http://libusb-win32.sourceforge.net/#downloads +
Required software for compiling UrJTAG To run autogen.sh, you need autoconf and automake, bison, and a recent flex. @@ -691,8 +780,8 @@ environment, see below. Installing from source tar.gz The installation follows the standard configure, make, make install scheme: -tar xzvf urjtag.tar.gz -cd ../jtag +tar xzvf urjtag-x.y.tar.gz +cd urjtag-x.y ./configure make make install @@ -720,7 +809,7 @@ make install Unzip the archive into a directory of your choice (probably a choice -without spaces in the name is better) and afterwards run configure with the +without spaces in the name is better) and afterwards run configure with the "—with-ftd2xx" pointing to that directory, e.g. ./configure --with-ftd2xx="/cygdrive/c/temp/ftdi-cdm-drivers" @@ -772,6 +861,9 @@ parallel ports, because the Cygwin ioperm isn't available for MinGW. The InpOut3 library is available from logix4u.net: http://logix4u.net/Legacy_Ports/Parallel_Port/Inpout32.dll_for_Windows_98/2000/NT/XP.html +An version updated to work in Windows Vista and 64 bit Windows is available from highrez: + +http://www.highrez.co.uk/Downloads/InpOut32/
Driver tailoring @@ -780,7 +872,7 @@ can include and exclude specific drivers if required. For a list of parameters run ./configure --help -to figure out the appropriate —enable-bus, —enable-cable and —enable-lowlevel +to figure out the appropriate —enable-bus, —enable-cable, and —enable-lowlevel options.
@@ -812,17 +904,17 @@ enabled and will be compiled from the released C files. 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: +To run UrJTAG type "jtag" and press Enter; jtag should start and +display some initial information. Output should end with a line like this: -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. +WARNING: UrJTAG may damage your hardware! +Type "quit" to exit, "help" for help.
Configure the cable -Type "help cable" for list of supported JTAG cables. +Type "help cable" for a list of supported JTAG cables. -Type "cable" command followed by the cable name and possibly further +Type the "cable" command followed by the cable name and possibly further arguments for cable configuration. Example: jtag> cable EA253 parallel 0x378 @@ -914,6 +1006,45 @@ record: start = 0x00005054, len = 0x00000030, checksum = 0x00000DA9 record: start = 0x00000000, len = 0x00001000, checksum = 0x00000000 Done. jtag> +
+
+Non-standard flash commands +Erasing and programming flash devices is covered by standard procedures +in UrJTAG. Apart from these, many flash chips implement a lot more +functionality via dedicated commands that vary from between manufacturers +and device families. UrJTAG can't cover them all natively. + +It's however possible to send any command stream to the flash by using +the poke and peek commands. You just need to clarify two things: + + + + +base address of the flash (BA) + it's the same that's used for detectflash + + + + +data width, x8 or x16 + defined by the width of the bus where the flash is attached + + + +Next look up the address/data pairs for the command in question. The data +sheet for your particular flash should document all commands in a table e.g. +If your flash is attached in x16 mode, the address must be shifted by one +position. Addresses in x8 mode are not affected. + +The "Read Manufacturer ID" command in x16 mode would look like + +poke BA+(0x555*2) 0xaa +poke BA+(0x2aa*2) 0x55 +poke BA+(0x555*2) 0x90 +peek BA+(0x000*2) +Note that the calculations must be done beforehand. UrJTAG can't evaluate +expressions on the command line. +
@@ -1210,7 +1341,7 @@ define new signal for a part -execute svf commands from file +execute SVF commands from file @@ -1277,7 +1408,7 @@ an X times repetition of the command sequence from the file. Chain management
cable -Sets and initialized the cable driver. This is usually the first command that +Sets and initializes the cable driver. This is usually the first command that you are executing in a session. Example: jtag> cable EA253 parallel 0x378 @@ -1342,7 +1473,7 @@ command) to find a match for the manufacturer, revision and part number for the IDCODE read from the part. However, not all parts identify themselves in a way that is useful for "detect". For example, many chips with an ARM processor core inside present an IDCODE that may be specific to the the particular core inside -the chip (e.g. ARM7TDMI), but doesn't tell about the actual manufacturer of +the chip (e.g. ARM7TDMI), but doesn't tell about the actual manufacturer of the chip. In such case, the data for the part has to be included manually. See also the documentation for the "include" command. @@ -1412,7 +1543,7 @@ access the bus: initbus prototype amsb=ADDR22 alsb=ADDR0 dmsb=D15 dlsb=D0 ncs=nRCS0 nwe=nWE noe=nOE amode=x16 -The "prototype" bus driver yet cannot deal with systems where address and data +The "prototype" bus driver cannot deal with systems where address and data bus are multiplexed on the same pins. If signals aren't numbered in the right order or with gaps, you may get along by defining proper names as aliases for the actual signals, with commands like "salias ADDR12 BSCGX44". @@ -1421,7 +1552,7 @@ the actual signals, with commands like "salias ADDR12 BSCGX44". Because it isn't possible to efficiently address only particular pins but only all at once, and data for all pins has to be transferred through JTAG for every single change, this method isn't the fastest, but usually easiest to implement -and, well, sometimes it counts whether it works at all.. +and, well, sometimes it counts whether it works at all. The "fjmem" (FPGA JTAG memory) bus driver attempts to address this issue by moving control and observation away from BSR to a device-internal @@ -1665,7 +1796,7 @@ write content from file to memory
svf The SVF player operates on a single part in the scan chain. Therefore, you -have to bring up the jtag software, specify a cable and detect the scan +have to bring up the JTAG software, specify a cable and detect the scan chain beforehand. The player will establish a new instruction called "SIR" and a new register @@ -1713,66 +1844,13 @@ through the SVF file, specify progress at the svf command.< Limitations and Deficiencies Several limitations exist for the SVF player. -It has been tested so far with files generated by these tools: - - - - -Xilinx ISE WebPack 6.3.02i - 9.1.02i - - - - -Altera Quartus II 4.1sp1 - 7.0 - - - -Configuration for these devices has been tested so far: - - - - -Altera EPC1C12Q240 - - - - -Altera MAX3032, EPM3032ALC44 - - - - -Altera MAX3064, EPM3064ALC44 - - - - -Altera MAX7032, EPM7032SLC44 - - - - -Altera MAX7064, EPM7064SLC44, EPM7064STC44 - - - - -Xilinx Spartan-IIE, XC2S300E-PQ208 - - - - -Xilinx Spartan-3, XC3S1000-FG456, XC3S5000-FG900 - - - The implementation of some SVF commands has deficiencies. HIR, HDR commands not supported. - Their functionality should be covered by the part concept of JTAG Tools. + Their functionality should be covered by the part concept of UrJTAG. @@ -1800,7 +1878,7 @@ TRST TIR, TDR commands not supported. - Their functionality should be covered by the part concept of JTAG Tools. + Their functionality should be covered by the part concept of UrJTAG. @@ -1825,14 +1903,14 @@ UrJTAG. started. This involves matching the retrieved IDCODE against the part descriptions in /usr/share/urjtag as described above. However, before this database is searched for a suitable description, the BSDL subsystem is started -and searches for BSDL file that matches this device. If it finds a matching +and searches for a BSDL file that matches this device. If it finds a matching file, traversal of the /usr/share/urjtag database is skipped. If not, then this standard process follows. To tell the BSDL subsytem where to look for BSDL files, the bsdl path pathlist command has to be issued prior to detect. The contents of pathlist must be a semicolon-separated list of directories where BSDL files -are located. This list is stored by bsdl path and is used lateron when +are located. This list is stored by bsdl path and is used later on when detect calls the BSDL subsystem. The BSDL subsystem applies the first BSDL file that parses without @@ -1902,7 +1980,7 @@ Intratrade Ltd., we just know about them from a posting on the net. Internals -This section yet is only a placeholder for the information that will +This section is only a placeholder for the information that will be added soon…
@@ -1926,7 +2004,7 @@ data/ -Part descriptions (Data files) +Part descriptions (data files) @@ -2712,6 +2790,84 @@ signal name (without spaces in the name). Rest of the line should contain whitespace separated list of pins of the part. This list is currently not used for any purpose in JTAG Tools. It is intended for future use. +
+
+Manufacturers List +The data/MANUFACTURERS file is used to locate the manufacturer of a specific +device found in the JTAG chain. If you get the error Unknown manufacturer +when attempting the detect command, this is the file you need to update. + +See the JEDEC document for more information: +JEDEC Solid State Technology Association, "Standard Manufacturer's +Identification Code", September 2001, Order Number: JEP106-K + +
+Format +The first token is a bit string that matches bits 11-1 of the device's IDCODE. +We omit bit 0 because it should always be 1 (per the JEDEC standard). + +The second token is the name of the directory under data/ to search for +specific part information. + +The rest of the line is the human readable form of the manufacturer's name. + +For example, we find this in data/MANUFACTURERS: + +00001100101 analog Analog Devices, Inc. +The manufacturer's IDCODE is 000011001011 (notice the last bit is stripped), +more part information can be found under data/analog/, and the human friendly +name is Analog Devices, Inc.. + +
+
+
+Parts List +Every manufacturer subdirectory needs a PARTS file. This is used to look +up further information about a part such as the stepping and signal list. If +you get the error Unknown part when attempting the detect command, this is +the file you need to update. + +
+Format +The first token is a bit string that matches bits 27-12 of the device's IDCODE. + +The second token is the name of the directory under the manufacturer's data/ +directory to search for specific part information. + +The rest of the line is the human readable form of the part's name. + +For example, we find this in data/analog/PARTS: + +0010011111001000 bf537 BF537 +The part's IDCODE is 0010011111001000, more part information can be found +under data/analog/bf537/, and the human friendly name is BF537. + +
+
+
+Stepping List +Every part subdirectory needs a STEPPINGS file. This is used to find the +file that contains information like the signals list. If you get the error +Unknown stepping when attempting the detect command, this is the file you +need to update. + +
+Format +The first token is a bit string that matches bits 31-28 of the device's IDCODE. + +The second token is the name of the file to load that contains information like +the signal list, extra instructions/registers, etc… This file should be +placed alongside the STEPPINGS file in the part-specific subdirectory. + +The rest of the line is the human readable form of the part stepping's name. + +For example, we find this in data/analog/bf537/STEPPINGS: + +0010 bf537 2 +The part's stepping is 0010, signal information can be found in the file +data/analog/bf537/bf537, and the human friendly stepping name is 2. + +
diff --git a/web/htdocs/book/UrJTAG.html b/web/htdocs/book/UrJTAG.html index 6d883cd5..f102a9f2 100644 --- a/web/htdocs/book/UrJTAG.html +++ b/web/htdocs/book/UrJTAG.html @@ -1,4 +1,4 @@ - + <DL ><DT >2.4.1. <A +HREF="#_installation_of_precompiled_urjtag_for_windows" +>Installation of precompiled UrJTAG for Windows</A +></DT +><DT +>2.4.2. <A HREF="#_required_software_for_compiling_urjtag" >Required software for compiling UrJTAG</A ></DT ><DT ->2.4.2. <A +>2.4.3. <A HREF="#_required_libraries_for_usb_support" >Required libraries for USB support</A ></DT ><DT ->2.4.3. <A +>2.4.4. <A HREF="#_installing_from_source_tar_gz" >Installing from source tar.gz</A ></DT ><DT ->2.4.4. <A +>2.4.5. <A HREF="#_installing_from_subversion_repository" >Installing from Subversion repository</A ></DT ><DT ->2.4.5. <A +>2.4.6. <A HREF="#_linking_to_ftd2xx_dll_in_cygwin_environment" >Linking to FTD2XX.DLL in Cygwin environment</A ></DT ><DT ->2.4.6. <A +>2.4.7. <A HREF="#_using_libusb_win32_in_cygwin_environment" >Using LibUSB-Win32 in Cygwin environment</A ></DT ><DT ->2.4.7. <A +>2.4.8. <A HREF="#_compiling_with_mingw" >Compiling with MinGW</A ></DT ><DT ->2.4.8. <A +>2.4.9. <A HREF="#_driver_tailoring" >Driver tailoring</A ></DT ><DT ->2.4.9. <A +>2.4.10. <A HREF="#_building_the_bsdl_subsystem" >Building the BSDL subsystem</A ></DT @@ -267,6 +272,11 @@ HREF="#_sample_device_pin_status" HREF="#_burn_flash_connected_to_the_part" >Burn flash connected to the part</A ></DT +><DT +>3.1.7. <A +HREF="#_non_standard_flash_commands" +>Non-standard flash commands</A +></DT ></DL ></DD ><DT @@ -382,6 +392,21 @@ HREF="#_general_rules" HREF="#_signal_definition" >Signal Definition</A ></DT +><DT +>4.3.3. <A +HREF="#_manufacturers_list" +>Manufacturers List</A +></DT +><DT +>4.3.4. <A +HREF="#_parts_list" +>Parts List</A +></DT +><DT +>4.3.5. <A +HREF="#_stepping_list" +>Stepping List</A +></DT ></DL ></DD ><DT @@ -467,7 +492,7 @@ NAME="_jtag" >2.1. JTAG</A ></H2 ><P ->JTAG basics can be found all over the internet. This section should go into +>JTAG basics can be found all over the Internet. This section should go into some more details about working with JTAG. What hardware do you need, what is the usage of JTAG, where do I get files. What file formats are available…</P ><DIV @@ -515,7 +540,7 @@ control machine also allows to have two internal shift registers in each device (although we only have on in- and one output-pin). The registers are called instruction register (IR) and data register (DR). The current UrJTAG tool allows you to set the IR and set and get the DR. It doesn't allow you to -directly control the statemachine (yet).</P +directly control the state machine (yet).</P ></DIV ><DIV CLASS="section" @@ -528,7 +553,7 @@ NAME="_interfaces" ><P >The simplest interface that you can build is like the Xilinx parallel cable (also called DLC5). If your device works with a 5V or 3.3V supply voltage then -this device can even be build just with passive parts. (picture missing here) +this device can even be built just with passive parts. (picture missing here) UrJTAG also supports a number of other interface adapters.</P ></DIV ><DIV @@ -540,10 +565,10 @@ NAME="_additions" >2.1.3. Additions</A ></H3 ><P ->In the meantime the jtag specification was used as a basis for programming +>In the meantime the JTAG specification was used as a basis for programming flash files and debugging processors. UrJTAG supports programming a couple of different flash devices. It also supports programming of non-flash devices via -svf files. UrJTAG does not support debugging yet. Other open source solutions +SVF files. UrJTAG does not support debugging yet. Other open source solutions such as OpenOCD allow you to debug ARM processors with gdb.</P ></DIV ><DIV @@ -555,9 +580,9 @@ NAME="_bsdl_and_urjtag_data_files" >2.1.4. BSDL and UrJTAG data files</A ></H3 ><P ->The BSDL file format describes the jtag interface for one IC. It is a VHDL +>The BSDL file format describes the JTAG interface for one IC. It is a VHDL syntax with the needed information (like pin-names, register lengths and -commands) that is usually done by the supplier. e.g. Xilinx BSDL files are +commands) that is usually created by the supplier. e.g. Xilinx BSDL files are all included in their free web-pack (using file extension ".bsd").</P ><P >UrJTAG uses a different file format internally. So in order to add a new device @@ -580,9 +605,9 @@ NAME="_svf_files" >2.1.5. SVF files</A ></H3 ><P ->The SVF file format contains a number of high level commands to drive the jtag +>The SVF file format contains a number of high level commands to drive the JTAG bus. For example you can shift the IR or DR and even check for the results. -The Xilinxs impact and Altera QuartusII tools allow you to write this file to +The Xilinx Impact and Altera QuartusII tools allow you to write this file to program devices.</P ><P >The player has been developed according to the "Serial Vector Format @@ -592,7 +617,7 @@ full specification can be found at HREF="http://www.asset-intertech.com/support/svf.pdf" TARGET="_top" >http://www.asset-intertech.com/support/svf.pdf</A -></P +>.</P ><P >UrJTAG features an "SVF player" that can read SVF files and perform the described actions on the bus.</P @@ -641,17 +666,17 @@ NAME="_introduction_2" >2.2.1. Introduction</A ></H3 ><P ->UrJTAG Tools is a software package which enables working with JTAG-aware (IEEE -1149.1) hardware devices (parts) and boards through JTAG adapter.</P +>UrJTAG is a software package which enables working with JTAG-aware (IEEE +1149.1) hardware devices (parts) and boards through a JTAG adapter.</P ><P ->This package has open and modular architecture with ability to write +>This package has an open and modular architecture with the ability to write miscellaneous extensions (like board testers, flash memory programmers, and so on).</P ><P ->JTAG Tools package is free software, covered by the GNU General Public License, +>UrJTAG 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.</P +conditions. There is absolutely no warranty for UrJTAG. Please read +the COPYING file for more info.</P ><DIV CLASS="warning" ><P @@ -703,12 +728,12 @@ NAME="_urjtag_website" >2.2.3. UrJTAG Website</A ></H3 ><P ->The most current version of this documentation and UrJTAG sourcecode +>The most current version of this documentation and UrJTAG source code is always available from the project homepage at <A HREF="http://www.urjtag.org" TARGET="_top" >http://www.urjtag.org</A -></P +>.</P ></DIV ><DIV CLASS="section" @@ -776,7 +801,8 @@ NAME="_supported_host_operating_systems" ></H3 ><P >JTAG Tools should run on all Unix like operating systems including MS Windows -with Cygwin installed.</P +with Cygwin installed. A precompiled version that runs on MS Windows without +Cygwin is available as a Windows installer executable.</P ></DIV ><DIV CLASS="section" @@ -787,7 +813,7 @@ NAME="_required_software_for_running_urjtag" >2.3.2. Required software for running UrJTAG</A ></H3 ><P ->Required only for MS Windows:</P +>Required only for MS Windows, unless you use the precompiled version:</P ><P ></P ><UL @@ -814,8 +840,8 @@ driver in the system.</P the system as well. It's probably a standard part of your distribution.</P ><P >More software is needed if you want to compile UrJTAG (which you probably want -because currently no pre-compiled binaries are avaible…). See "Installation" -below.</P +because currently no pre-compiled binaries are available…). +See "Installation" below.</P ></DIV ><DIV CLASS="section" @@ -967,7 +993,7 @@ TARGET="_top" ></LI ><LI ><P -> Black gnICE <A +> Blackfin gnICE <A HREF="http://docs.blackfin.uclinux.org/doku.php?id=hw:jtag:gnice" TARGET="_top" >http://docs.blackfin.uclinux.org/doku.php?id=hw:jtag:gnice</A @@ -976,6 +1002,15 @@ TARGET="_top" ></LI ><LI ><P +> Blackfin gnICE+ <A +HREF="http://docs.blackfin.uclinux.org/doku.php?id=hw:jtag:gnice-plus" +TARGET="_top" +>http://docs.blackfin.uclinux.org/doku.php?id=hw:jtag:gnice-plus</A +> +</P +></LI +><LI +><P > Xverve Signalyzer Tool (experimental) </P ></LI @@ -1006,8 +1041,16 @@ TARGET="_top" ></LI ></UL ><P ->Other cables: - * Technologic Systems TS-7800 SoC GPIO builtin JTAG interface</P +>Other cables:</P +><P +></P +><UL +><LI +><P +> Technologic Systems TS-7800 SoC GPIO builtin JTAG interface +</P +></LI +></UL ></DIV ><DIV CLASS="section" @@ -1045,6 +1088,60 @@ least the following are supported:</P ></LI ><LI ><P +> Analog Devices Blackfin (w/ BSDL) +</P +><P +></P +><UL +><LI +><P +> BF504/BF506 +</P +></LI +><LI +><P +> BF512/BF514/BF516/BF518 +</P +></LI +><LI +><P +> BF522/BF523/BF524/BF525/BF526/BF527 +</P +></LI +><LI +><P +> BF531/BF532/BF533 +</P +></LI +><LI +><P +> BF538/BF539 +</P +></LI +><LI +><P +> BF534/BF536/BF537 +</P +></LI +><LI +><P +> BF542/BF544/BF547/BF548/BF549 +</P +></LI +><LI +><P +> BF561 +</P +></LI +><LI +><P +> BF592 +</P +></LI +></UL +></LI +><LI +><P > Analog Devices Sharc-21065L </P ></LI @@ -1298,8 +1395,43 @@ CLASS="section" ><H3 CLASS="section" ><A +NAME="_installation_of_precompiled_urjtag_for_windows" +>2.4.1. Installation of precompiled UrJTAG for Windows</A +></H3 +><P +>By simply running UrJTAG-xxx.exe, the executable and data files will +be installed in your Windows program folder, usually some place like +C:\Program Files\UrJTAG. It comes ready with support for JTAG cables that are +directly attached to a parallel port. However, if you work with Windows Vista +and want access to the parallel port, a driver for it has to be installed +separately. It is available from</P +><PRE +CLASS="literallayout" +>http://www.highrez.co.uk/Downloads/InpOut32/</PRE +><P +>If you want to use UrJTAG with a JTAG cable attached to the USB port, +actual cable drivers have to be installed beside UrJTAG itself. Usually, +the cable vendor will provide the drivers. For example, drivers for +Altera USB-Blaster come with their Quartus software. For FTDI-based +cables, you need an INF file describing the cable and FTDIBUS.SYS and +FTD2XX.DLL from FTDI (CDM drivers). If your cable shows up in the device +manager without any warning sign, UrJTAG probably is able to talk to it.</P +><P +>Finally, UrJTAG additionally needs libusb-win32 to talk to some USB cables that +are not based on FTDI chips (Xilinx Platform Cable USB, Segger J-Link). The +so-called libusb-win32 filter driver is available from the project's download +page at Sourceforge:</P +><PRE +CLASS="literallayout" +>http://libusb-win32.sourceforge.net/#downloads</PRE +></DIV +><DIV +CLASS="section" +><HR><H3 +CLASS="section" +><A NAME="_required_software_for_compiling_urjtag" ->2.4.1. Required software for compiling UrJTAG</A +>2.4.2. Required software for compiling UrJTAG</A ></H3 ><P >To run autogen.sh, you need autoconf and automake, bison, and a recent flex.</P @@ -1340,7 +1472,7 @@ CLASS="section" CLASS="section" ><A NAME="_required_libraries_for_usb_support" ->2.4.2. Required libraries for USB support</A +>2.4.3. Required libraries for USB support</A ></H3 ><P >For USB adapter support (including support for parallel port adapters attached @@ -1406,14 +1538,14 @@ CLASS="section" CLASS="section" ><A NAME="_installing_from_source_tar_gz" ->2.4.3. Installing from source tar.gz</A +>2.4.4. Installing from source tar.gz</A ></H3 ><P >The installation follows the standard configure, make, make install scheme:</P ><PRE CLASS="literallayout" ->tar xzvf urjtag.tar.gz -cd ../jtag +>tar xzvf urjtag-x.y.tar.gz +cd urjtag-x.y ./configure make make install</PRE @@ -1424,7 +1556,7 @@ CLASS="section" CLASS="section" ><A NAME="_installing_from_subversion_repository" ->2.4.4. Installing from Subversion repository</A +>2.4.5. Installing from Subversion repository</A ></H3 ><P >If you want to try the very newest version of UrJTAG…</P @@ -1445,7 +1577,7 @@ CLASS="section" CLASS="section" ><A NAME="_linking_to_ftd2xx_dll_in_cygwin_environment" ->2.4.5. Linking to FTD2XX.DLL in Cygwin environment</A +>2.4.6. Linking to FTD2XX.DLL in Cygwin environment</A ></H3 ><P >Before running configure, get the D2XX drivers from FTDI.</P @@ -1464,7 +1596,7 @@ TARGET="_top" ></UL ><P >Unzip the archive into a directory of your choice (probably a choice -without spaces in the name is better) and afterwards run configure with the +without spaces in the name is better) and afterwards run configure with the "—with-ftd2xx" pointing to that directory, e.g.</P ><PRE CLASS="literallayout" @@ -1483,7 +1615,7 @@ CLASS="section" CLASS="section" ><A NAME="_using_libusb_win32_in_cygwin_environment" ->2.4.6. Using LibUSB-Win32 in Cygwin environment</A +>2.4.7. Using LibUSB-Win32 in Cygwin environment</A ></H3 ><P >Before running configure, install the LibUSB-Win32 "filter" driver from SF.</P @@ -1513,7 +1645,7 @@ CLASS="section" CLASS="section" ><A NAME="_compiling_with_mingw" ->2.4.7. Compiling with MinGW</A +>2.4.8. Compiling with MinGW</A ></H3 ><P >UrJTAG may be compiled into a Windows executable using the MinGW compiler @@ -1549,6 +1681,11 @@ library is available from logix4u.net:</P ><PRE CLASS="literallayout" >http://logix4u.net/Legacy_Ports/Parallel_Port/Inpout32.dll_for_Windows_98/2000/NT/XP.html</PRE +><P +>An version updated to work in Windows Vista and 64 bit Windows is available from highrez:</P +><PRE +CLASS="literallayout" +>http://www.highrez.co.uk/Downloads/InpOut32/</PRE ></DIV ><DIV CLASS="section" @@ -1556,7 +1693,7 @@ CLASS="section" CLASS="section" ><A NAME="_driver_tailoring" ->2.4.8. Driver tailoring</A +>2.4.9. Driver tailoring</A ></H3 ><P >The configure script enables all default bus, cable and lowlevel drivers. You @@ -1566,7 +1703,7 @@ run</P CLASS="literallayout" >./configure --help</PRE ><P ->to figure out the appropriate —enable-bus, —enable-cable and —enable-lowlevel +>to figure out the appropriate —enable-bus, —enable-cable, and —enable-lowlevel options.</P ></DIV ><DIV @@ -1575,7 +1712,7 @@ CLASS="section" CLASS="section" ><A NAME="_building_the_bsdl_subsystem" ->2.4.9. Building the BSDL subsystem</A +>2.4.10. Building the BSDL subsystem</A ></H3 ><P >As mentioned above, building the BSDL lexer requires Flex 2.5.33 or newer. If @@ -1623,12 +1760,12 @@ NAME="_run_the_software" >Connect your JTAG adapter between your PC and target device and turn on your device.</P ><P ->To run JTAG Tools type "jtag" and press Enter. jtag should start and -display some initial informations. Output should end with line like this:</P +>To run UrJTAG type "jtag" and press Enter; jtag should start and +display some initial information. Output should end with a line like this:</P ><PRE CLASS="literallayout" ->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.</PRE +>WARNING: UrJTAG may damage your hardware! +Type "quit" to exit, "help" for help.</PRE ></DIV ><DIV CLASS="section" @@ -1639,9 +1776,9 @@ NAME="_configure_the_cable" >3.1.2. Configure the cable</A ></H3 ><P ->Type "help cable" for list of supported JTAG cables.</P +>Type "help cable" for a list of supported JTAG cables.</P ><P ->Type "cable" command followed by the cable name and possibly further +>Type the "cable" command followed by the cable name and possibly further arguments for cable configuration. Example:</P ><PRE CLASS="literallayout" @@ -1785,6 +1922,56 @@ CLASS="literallayout" >Done. jtag></PRE ></DIV +><DIV +CLASS="section" +><HR><H3 +CLASS="section" +><A +NAME="_non_standard_flash_commands" +>3.1.7. Non-standard flash commands</A +></H3 +><P +>Erasing and programming flash devices is covered by standard procedures +in UrJTAG. Apart from these, many flash chips implement a lot more +functionality via dedicated commands that vary from between manufacturers +and device families. UrJTAG can't cover them all natively.</P +><P +>It's however possible to send any command stream to the flash by using +the poke and peek commands. You just need to clarify two things:</P +><P +></P +><OL +TYPE="1" +><LI +><P +> base address of the flash (BA) + it's the same that's used for detectflash +</P +></LI +><LI +><P +> data width, x8 or x16 + defined by the width of the bus where the flash is attached +</P +></LI +></OL +><P +>Next look up the address/data pairs for the command in question. The data +sheet for your particular flash should document all commands in a table e.g. +If your flash is attached in x16 mode, the address must be shifted by one +position. Addresses in x8 mode are not affected.</P +><P +>The "Read Manufacturer ID" command in x16 mode would look like</P +><PRE +CLASS="literallayout" +>poke BA+(0x555*2) 0xaa +poke BA+(0x2aa*2) 0x55 +poke BA+(0x555*2) 0x90 +peek BA+(0x000*2)</PRE +><P +>Note that the calculations must be done beforehand. UrJTAG can't evaluate +expressions on the command line.</P +></DIV ></DIV ><DIV CLASS="section" @@ -1810,7 +1997,7 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN393" +NAME="AEN442" ></A ><TABLE BORDER="0" @@ -2367,7 +2554,7 @@ CLASS="emphasis" ></TD ><TD > <P -> execute svf commands from file +> execute SVF commands from file </P > </TD @@ -2491,7 +2678,7 @@ NAME="_cable" >3.2.3.1. cable</A ></H4 ><P ->Sets and initialized the cable driver. This is usually the first command that +>Sets and initializes the cable driver. This is usually the first command that you are executing in a session. Example:</P ><PRE CLASS="literallayout" @@ -2599,7 +2786,7 @@ command) to find a match for the manufacturer, revision and part number for the IDCODE read from the part. However, not all parts identify themselves in a way that is useful for "detect". For example, many chips with an ARM processor core inside present an IDCODE that may be specific to the the particular core inside -the chip (e.g. ARM7TDMI), but doesn't tell about the actual manufacturer of +the chip (e.g. ARM7TDMI), but doesn't tell about the actual manufacturer of the chip. In such case, the data for the part has to be included manually. See also the documentation for the "include" command.</P ></DIV @@ -2687,7 +2874,7 @@ CLASS="literallayout" >initbus prototype amsb=ADDR22 alsb=ADDR0 dmsb=D15 dlsb=D0 ncs=nRCS0 nwe=nWE noe=nOE amode=x16</PRE ><P ->The "prototype" bus driver yet cannot deal with systems where address and data +>The "prototype" bus driver cannot deal with systems where address and data bus are multiplexed on the same pins. If signals aren't numbered in the right order or with gaps, you may get along by defining proper names as aliases for the actual signals, with commands like "salias ADDR12 BSCGX44".</P @@ -2696,7 +2883,7 @@ the actual signals, with commands like "salias ADDR12 BSCGX44".</P Because it isn't possible to efficiently address only particular pins but only all at once, and data for all pins has to be transferred through JTAG for every single change, this method isn't the fastest, but usually easiest to implement -and, well, sometimes it counts whether it works at all..</P +and, well, sometimes it counts whether it works at all.</P ><P >The "fjmem" (FPGA JTAG memory) bus driver attempts to address this issue by moving control and observation away from BSR to a device-internal @@ -2741,7 +2928,7 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN653" +NAME="AEN702" ></A ><TABLE BORDER="0" @@ -2850,7 +3037,7 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN685" +NAME="AEN734" ></A ><TABLE BORDER="0" @@ -3017,7 +3204,7 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN735" +NAME="AEN784" ></A ><TABLE BORDER="0" @@ -3204,7 +3391,7 @@ NAME="_svf" ></H4 ><P >The SVF player operates on a single part in the scan chain. Therefore, you -have to bring up the jtag software, specify a cable and detect the scan +have to bring up the JTAG software, specify a cable and detect the scan chain beforehand.</P ><P >The player will establish a new instruction called "SIR" and a new register @@ -3270,7 +3457,7 @@ CELLPADDING="5" ><DIV CLASS="sidebar" ><A -NAME="AEN801" +NAME="AEN850" ></A ><P ><B @@ -3279,63 +3466,6 @@ NAME="AEN801" ><P >Several limitations exist for the SVF player.</P ><P ->It has been tested so far with files generated by these tools:</P -><P -></P -><UL -><LI -><P -> Xilinx ISE WebPack 6.3.02i - 9.1.02i -</P -></LI -><LI -><P -> Altera Quartus II 4.1sp1 - 7.0 -</P -></LI -></UL -><P ->Configuration for these devices has been tested so far:</P -><P -></P -><UL -><LI -><P -> Altera EPC1C12Q240 -</P -></LI -><LI -><P -> Altera MAX3032, EPM3032ALC44 -</P -></LI -><LI -><P -> Altera MAX3064, EPM3064ALC44 -</P -></LI -><LI -><P -> Altera MAX7032, EPM7032SLC44 -</P -></LI -><LI -><P -> Altera MAX7064, EPM7064SLC44, EPM7064STC44 -</P -></LI -><LI -><P -> Xilinx Spartan-IIE, XC2S300E-PQ208 -</P -></LI -><LI -><P -> Xilinx Spartan-3, XC3S1000-FG456, XC3S5000-FG900 -</P -></LI -></UL -><P >The implementation of some SVF commands has deficiencies.</P ><P ></P @@ -3343,7 +3473,7 @@ NAME="AEN801" ><LI ><P > HIR, HDR commands not supported. - Their functionality should be covered by the part concept of JTAG Tools. + Their functionality should be covered by the part concept of UrJTAG. </P ></LI ><LI @@ -3371,7 +3501,7 @@ NAME="AEN801" ><LI ><P > TIR, TDR commands not supported. - Their functionality should be covered by the part concept of JTAG Tools. + Their functionality should be covered by the part concept of UrJTAG. </P ></LI ></UL @@ -3424,7 +3554,7 @@ CLASS="emphasis" started. This involves matching the retrieved IDCODE against the part descriptions in /usr/share/urjtag as described above. However, before this database is searched for a suitable description, the BSDL subsystem is started -and searches for BSDL file that matches this device. If it finds a matching +and searches for a BSDL file that matches this device. If it finds a matching file, traversal of the /usr/share/urjtag database is skipped. If not, then this standard process follows.</P ><P @@ -3455,7 +3585,7 @@ CLASS="emphasis" CLASS="emphasis" >bsdl path</I ></SPAN -> and is used lateron when +> and is used later on when <SPAN CLASS="emphasis" ><I @@ -3638,7 +3768,7 @@ NAME="_internals" ></A >Chapter 4. Internals</H1 ><P ->This section yet is only a placeholder for the information that will +>This section is only a placeholder for the information that will be added soon…</P ><DIV CLASS="section" @@ -3661,7 +3791,7 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN892" +NAME="AEN919" ></A ><TABLE BORDER="0" @@ -3693,7 +3823,7 @@ VALIGN="top" ></TD ><TD > <P -> Part descriptions (Data files) +> Part descriptions (data files) </P > </TD @@ -4770,6 +4900,252 @@ signal name (without spaces in the name). Rest of the line should contain whitespace separated list of pins of the part. This list is currently not used for any purpose in JTAG Tools. It is intended for future use.</P ></DIV +><DIV +CLASS="section" +><HR><H3 +CLASS="section" +><A +NAME="_manufacturers_list" +>4.3.3. Manufacturers List</A +></H3 +><P +>The <SPAN +CLASS="emphasis" +><I +CLASS="emphasis" +>data/MANUFACTURERS</I +></SPAN +> file is used to locate the manufacturer of a specific +device found in the JTAG chain. If you get the error <SPAN +CLASS="strong" +><B +CLASS="emphasis" +>Unknown manufacturer</B +></SPAN +> +when attempting the <SPAN +CLASS="emphasis" +><I +CLASS="emphasis" +>detect</I +></SPAN +> command, this is the file you need to update.</P +><P +>See the JEDEC document for more information: +JEDEC Solid State Technology Association, "Standard Manufacturer's +Identification Code", September 2001, Order Number: JEP106-K</P +><DIV +CLASS="section" +><HR><H4 +CLASS="section" +><A +NAME="_format" +>4.3.3.1. Format</A +></H4 +><P +>The first token is a bit string that matches bits 11-1 of the device's IDCODE. +We omit bit 0 because it should always be 1 (per the JEDEC standard).</P +><P +>The second token is the name of the directory under <SPAN +CLASS="emphasis" +><I +CLASS="emphasis" +>data/</I +></SPAN +> to search for +specific part information.</P +><P +>The rest of the line is the human readable form of the manufacturer's name.</P +><P +>For example, we find this in <SPAN +CLASS="emphasis" +><I +CLASS="emphasis" +>data/MANUFACTURERS</I +></SPAN +>:</P +><PRE +CLASS="literallayout" +>00001100101 analog Analog Devices, Inc.</PRE +><P +>The manufacturer's IDCODE is <TT +CLASS="literal" +>000011001011</TT +> (notice the last bit is stripped), +more part information can be found under <SPAN +CLASS="emphasis" +><I +CLASS="emphasis" +>data/analog/</I +></SPAN +>, and the human friendly +name is <TT +CLASS="literal" +>Analog Devices, Inc.</TT +>.</P +></DIV +></DIV +><DIV +CLASS="section" +><HR><H3 +CLASS="section" +><A +NAME="_parts_list" +>4.3.4. Parts List</A +></H3 +><P +>Every manufacturer subdirectory needs a <SPAN +CLASS="emphasis" +><I +CLASS="emphasis" +>PARTS</I +></SPAN +> file. This is used to look +up further information about a part such as the stepping and signal list. If +you get the error <SPAN +CLASS="strong" +><B +CLASS="emphasis" +>Unknown part</B +></SPAN +> when attempting the <SPAN +CLASS="emphasis" +><I +CLASS="emphasis" +>detect</I +></SPAN +> command, this is +the file you need to update.</P +><DIV +CLASS="section" +><HR><H4 +CLASS="section" +><A +NAME="_format_2" +>4.3.4.1. Format</A +></H4 +><P +>The first token is a bit string that matches bits 27-12 of the device's IDCODE.</P +><P +>The second token is the name of the directory under the manufacturer's <SPAN +CLASS="emphasis" +><I +CLASS="emphasis" +>data/</I +></SPAN +> +directory to search for specific part information.</P +><P +>The rest of the line is the human readable form of the part's name.</P +><P +>For example, we find this in <SPAN +CLASS="emphasis" +><I +CLASS="emphasis" +>data/analog/PARTS</I +></SPAN +>:</P +><PRE +CLASS="literallayout" +>0010011111001000 bf537 BF537</PRE +><P +>The part's IDCODE is <TT +CLASS="literal" +>0010011111001000</TT +>, more part information can be found +under <SPAN +CLASS="emphasis" +><I +CLASS="emphasis" +>data/analog/bf537/</I +></SPAN +>, and the human friendly name is <TT +CLASS="literal" +>BF537</TT +>.</P +></DIV +></DIV +><DIV +CLASS="section" +><HR><H3 +CLASS="section" +><A +NAME="_stepping_list" +>4.3.5. Stepping List</A +></H3 +><P +>Every part subdirectory needs a <SPAN +CLASS="emphasis" +><I +CLASS="emphasis" +>STEPPINGS</I +></SPAN +> file. This is used to find the +file that contains information like the signals list. If you get the error +<SPAN +CLASS="strong" +><B +CLASS="emphasis" +>Unknown stepping</B +></SPAN +> when attempting the <SPAN +CLASS="emphasis" +><I +CLASS="emphasis" +>detect</I +></SPAN +> command, this is the file you +need to update.</P +><DIV +CLASS="section" +><HR><H4 +CLASS="section" +><A +NAME="_format_3" +>4.3.5.1. Format</A +></H4 +><P +>The first token is a bit string that matches bits 31-28 of the device's IDCODE.</P +><P +>The second token is the name of the file to load that contains information like +the signal list, extra instructions/registers, etc… This file should be +placed alongside the <SPAN +CLASS="emphasis" +><I +CLASS="emphasis" +>STEPPINGS</I +></SPAN +> file in the part-specific subdirectory.</P +><P +>The rest of the line is the human readable form of the part stepping's name.</P +><P +>For example, we find this in <SPAN +CLASS="emphasis" +><I +CLASS="emphasis" +>data/analog/bf537/STEPPINGS</I +></SPAN +>:</P +><PRE +CLASS="literallayout" +>0010 bf537 2</PRE +><P +>The part's stepping is <TT +CLASS="literal" +>0010</TT +>, signal information can be found in the file +<SPAN +CLASS="emphasis" +><I +CLASS="emphasis" +>data/analog/bf537/bf537</I +></SPAN +>, and the human friendly stepping name is <TT +CLASS="literal" +>2</TT +>.</P +></DIV +></DIV ></DIV ><DIV CLASS="section" diff --git a/web/htdocs/book/_compilation_and_installation.html b/web/htdocs/book/_compilation_and_installation.html index 55f740c4..61c1c227 100644 --- a/web/htdocs/book/_compilation_and_installation.html +++ b/web/htdocs/book/_compilation_and_installation.html @@ -1,4 +1,4 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE @@ -84,8 +84,43 @@ CLASS="section" ><H2 CLASS="section" ><A +NAME="_installation_of_precompiled_urjtag_for_windows" +>2.4.1. Installation of precompiled UrJTAG for Windows</A +></H2 +><P +>By simply running UrJTAG-xxx.exe, the executable and data files will +be installed in your Windows program folder, usually some place like +C:\Program Files\UrJTAG. It comes ready with support for JTAG cables that are +directly attached to a parallel port. However, if you work with Windows Vista +and want access to the parallel port, a driver for it has to be installed +separately. It is available from</P +><PRE +CLASS="literallayout" +>http://www.highrez.co.uk/Downloads/InpOut32/</PRE +><P +>If you want to use UrJTAG with a JTAG cable attached to the USB port, +actual cable drivers have to be installed beside UrJTAG itself. Usually, +the cable vendor will provide the drivers. For example, drivers for +Altera USB-Blaster come with their Quartus software. For FTDI-based +cables, you need an INF file describing the cable and FTDIBUS.SYS and +FTD2XX.DLL from FTDI (CDM drivers). If your cable shows up in the device +manager without any warning sign, UrJTAG probably is able to talk to it.</P +><P +>Finally, UrJTAG additionally needs libusb-win32 to talk to some USB cables that +are not based on FTDI chips (Xilinx Platform Cable USB, Segger J-Link). The +so-called libusb-win32 filter driver is available from the project's download +page at Sourceforge:</P +><PRE +CLASS="literallayout" +>http://libusb-win32.sourceforge.net/#downloads</PRE +></DIV +><DIV +CLASS="section" +><H2 +CLASS="section" +><A NAME="_required_software_for_compiling_urjtag" ->2.4.1. Required software for compiling UrJTAG</A +>2.4.2. Required software for compiling UrJTAG</A ></H2 ><P >To run autogen.sh, you need autoconf and automake, bison, and a recent flex.</P @@ -126,7 +161,7 @@ CLASS="section" CLASS="section" ><A NAME="_required_libraries_for_usb_support" ->2.4.2. Required libraries for USB support</A +>2.4.3. Required libraries for USB support</A ></H2 ><P >For USB adapter support (including support for parallel port adapters attached @@ -192,14 +227,14 @@ CLASS="section" CLASS="section" ><A NAME="_installing_from_source_tar_gz" ->2.4.3. Installing from source tar.gz</A +>2.4.4. Installing from source tar.gz</A ></H2 ><P >The installation follows the standard configure, make, make install scheme:</P ><PRE CLASS="literallayout" ->tar xzvf urjtag.tar.gz -cd ../jtag +>tar xzvf urjtag-x.y.tar.gz +cd urjtag-x.y ./configure make make install</PRE @@ -210,7 +245,7 @@ CLASS="section" CLASS="section" ><A NAME="_installing_from_subversion_repository" ->2.4.4. Installing from Subversion repository</A +>2.4.5. Installing from Subversion repository</A ></H2 ><P >If you want to try the very newest version of UrJTAG…</P @@ -231,7 +266,7 @@ CLASS="section" CLASS="section" ><A NAME="_linking_to_ftd2xx_dll_in_cygwin_environment" ->2.4.5. Linking to FTD2XX.DLL in Cygwin environment</A +>2.4.6. Linking to FTD2XX.DLL in Cygwin environment</A ></H2 ><P >Before running configure, get the D2XX drivers from FTDI.</P @@ -250,7 +285,7 @@ TARGET="_top" ></UL ><P >Unzip the archive into a directory of your choice (probably a choice -without spaces in the name is better) and afterwards run configure with the +without spaces in the name is better) and afterwards run configure with the "—with-ftd2xx" pointing to that directory, e.g.</P ><PRE CLASS="literallayout" @@ -269,7 +304,7 @@ CLASS="section" CLASS="section" ><A NAME="_using_libusb_win32_in_cygwin_environment" ->2.4.6. Using LibUSB-Win32 in Cygwin environment</A +>2.4.7. Using LibUSB-Win32 in Cygwin environment</A ></H2 ><P >Before running configure, install the LibUSB-Win32 "filter" driver from SF.</P @@ -299,7 +334,7 @@ CLASS="section" CLASS="section" ><A NAME="_compiling_with_mingw" ->2.4.7. Compiling with MinGW</A +>2.4.8. Compiling with MinGW</A ></H2 ><P >UrJTAG may be compiled into a Windows executable using the MinGW compiler @@ -335,6 +370,11 @@ library is available from logix4u.net:</P ><PRE CLASS="literallayout" >http://logix4u.net/Legacy_Ports/Parallel_Port/Inpout32.dll_for_Windows_98/2000/NT/XP.html</PRE +><P +>An version updated to work in Windows Vista and 64 bit Windows is available from highrez:</P +><PRE +CLASS="literallayout" +>http://www.highrez.co.uk/Downloads/InpOut32/</PRE ></DIV ><DIV CLASS="section" @@ -342,7 +382,7 @@ CLASS="section" CLASS="section" ><A NAME="_driver_tailoring" ->2.4.8. Driver tailoring</A +>2.4.9. Driver tailoring</A ></H2 ><P >The configure script enables all default bus, cable and lowlevel drivers. You @@ -352,7 +392,7 @@ run</P CLASS="literallayout" >./configure --help</PRE ><P ->to figure out the appropriate —enable-bus, —enable-cable and —enable-lowlevel +>to figure out the appropriate —enable-bus, —enable-cable, and —enable-lowlevel options.</P ></DIV ><DIV @@ -361,7 +401,7 @@ CLASS="section" CLASS="section" ><A NAME="_building_the_bsdl_subsystem" ->2.4.9. Building the BSDL subsystem</A +>2.4.10. Building the BSDL subsystem</A ></H2 ><P >As mentioned above, building the BSDL lexer requires Flex 2.5.33 or newer. If diff --git a/web/htdocs/book/_copyright.html b/web/htdocs/book/_copyright.html index 235c6423..ecde9da1 100644 --- a/web/htdocs/book/_copyright.html +++ b/web/htdocs/book/_copyright.html @@ -1,4 +1,4 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE diff --git a/web/htdocs/book/_data_file_format.html b/web/htdocs/book/_data_file_format.html index 7fc64478..68ba5ec3 100644 --- a/web/htdocs/book/_data_file_format.html +++ b/web/htdocs/book/_data_file_format.html @@ -1,4 +1,4 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE @@ -115,6 +115,252 @@ signal name (without spaces in the name). Rest of the line should contain whitespace separated list of pins of the part. This list is currently not used for any purpose in JTAG Tools. It is intended for future use.</P ></DIV +><DIV +CLASS="section" +><H2 +CLASS="section" +><A +NAME="_manufacturers_list" +>4.3.3. Manufacturers List</A +></H2 +><P +>The <SPAN +CLASS="emphasis" +><I +CLASS="emphasis" +>data/MANUFACTURERS</I +></SPAN +> file is used to locate the manufacturer of a specific +device found in the JTAG chain. If you get the error <SPAN +CLASS="strong" +><B +CLASS="emphasis" +>Unknown manufacturer</B +></SPAN +> +when attempting the <SPAN +CLASS="emphasis" +><I +CLASS="emphasis" +>detect</I +></SPAN +> command, this is the file you need to update.</P +><P +>See the JEDEC document for more information: +JEDEC Solid State Technology Association, "Standard Manufacturer's +Identification Code", September 2001, Order Number: JEP106-K</P +><DIV +CLASS="section" +><H3 +CLASS="section" +><A +NAME="_format" +>4.3.3.1. Format</A +></H3 +><P +>The first token is a bit string that matches bits 11-1 of the device's IDCODE. +We omit bit 0 because it should always be 1 (per the JEDEC standard).</P +><P +>The second token is the name of the directory under <SPAN +CLASS="emphasis" +><I +CLASS="emphasis" +>data/</I +></SPAN +> to search for +specific part information.</P +><P +>The rest of the line is the human readable form of the manufacturer's name.</P +><P +>For example, we find this in <SPAN +CLASS="emphasis" +><I +CLASS="emphasis" +>data/MANUFACTURERS</I +></SPAN +>:</P +><PRE +CLASS="literallayout" +>00001100101 analog Analog Devices, Inc.</PRE +><P +>The manufacturer's IDCODE is <TT +CLASS="literal" +>000011001011</TT +> (notice the last bit is stripped), +more part information can be found under <SPAN +CLASS="emphasis" +><I +CLASS="emphasis" +>data/analog/</I +></SPAN +>, and the human friendly +name is <TT +CLASS="literal" +>Analog Devices, Inc.</TT +>.</P +></DIV +></DIV +><DIV +CLASS="section" +><H2 +CLASS="section" +><A +NAME="_parts_list" +>4.3.4. Parts List</A +></H2 +><P +>Every manufacturer subdirectory needs a <SPAN +CLASS="emphasis" +><I +CLASS="emphasis" +>PARTS</I +></SPAN +> file. This is used to look +up further information about a part such as the stepping and signal list. If +you get the error <SPAN +CLASS="strong" +><B +CLASS="emphasis" +>Unknown part</B +></SPAN +> when attempting the <SPAN +CLASS="emphasis" +><I +CLASS="emphasis" +>detect</I +></SPAN +> command, this is +the file you need to update.</P +><DIV +CLASS="section" +><H3 +CLASS="section" +><A +NAME="_format_2" +>4.3.4.1. Format</A +></H3 +><P +>The first token is a bit string that matches bits 27-12 of the device's IDCODE.</P +><P +>The second token is the name of the directory under the manufacturer's <SPAN +CLASS="emphasis" +><I +CLASS="emphasis" +>data/</I +></SPAN +> +directory to search for specific part information.</P +><P +>The rest of the line is the human readable form of the part's name.</P +><P +>For example, we find this in <SPAN +CLASS="emphasis" +><I +CLASS="emphasis" +>data/analog/PARTS</I +></SPAN +>:</P +><PRE +CLASS="literallayout" +>0010011111001000 bf537 BF537</PRE +><P +>The part's IDCODE is <TT +CLASS="literal" +>0010011111001000</TT +>, more part information can be found +under <SPAN +CLASS="emphasis" +><I +CLASS="emphasis" +>data/analog/bf537/</I +></SPAN +>, and the human friendly name is <TT +CLASS="literal" +>BF537</TT +>.</P +></DIV +></DIV +><DIV +CLASS="section" +><H2 +CLASS="section" +><A +NAME="_stepping_list" +>4.3.5. Stepping List</A +></H2 +><P +>Every part subdirectory needs a <SPAN +CLASS="emphasis" +><I +CLASS="emphasis" +>STEPPINGS</I +></SPAN +> file. This is used to find the +file that contains information like the signals list. If you get the error +<SPAN +CLASS="strong" +><B +CLASS="emphasis" +>Unknown stepping</B +></SPAN +> when attempting the <SPAN +CLASS="emphasis" +><I +CLASS="emphasis" +>detect</I +></SPAN +> command, this is the file you +need to update.</P +><DIV +CLASS="section" +><H3 +CLASS="section" +><A +NAME="_format_3" +>4.3.5.1. Format</A +></H3 +><P +>The first token is a bit string that matches bits 31-28 of the device's IDCODE.</P +><P +>The second token is the name of the file to load that contains information like +the signal list, extra instructions/registers, etc… This file should be +placed alongside the <SPAN +CLASS="emphasis" +><I +CLASS="emphasis" +>STEPPINGS</I +></SPAN +> file in the part-specific subdirectory.</P +><P +>The rest of the line is the human readable form of the part stepping's name.</P +><P +>For example, we find this in <SPAN +CLASS="emphasis" +><I +CLASS="emphasis" +>data/analog/bf537/STEPPINGS</I +></SPAN +>:</P +><PRE +CLASS="literallayout" +>0010 bf537 2</PRE +><P +>The part's stepping is <TT +CLASS="literal" +>0010</TT +>, signal information can be found in the file +<SPAN +CLASS="emphasis" +><I +CLASS="emphasis" +>data/analog/bf537/bf537</I +></SPAN +>, and the human friendly stepping name is <TT +CLASS="literal" +>2</TT +>.</P +></DIV +></DIV ></DIV ><DIV CLASS="NAVFOOTER" diff --git a/web/htdocs/book/_development.html b/web/htdocs/book/_development.html index 6b858fd5..08706a97 100644 --- a/web/htdocs/book/_development.html +++ b/web/htdocs/book/_development.html @@ -1,4 +1,4 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE diff --git a/web/htdocs/book/_drivers.html b/web/htdocs/book/_drivers.html index e5b35300..978cf25b 100644 --- a/web/htdocs/book/_drivers.html +++ b/web/htdocs/book/_drivers.html @@ -1,4 +1,4 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE diff --git a/web/htdocs/book/_f_a_q.html b/web/htdocs/book/_f_a_q.html index 0f69518e..b76d4158 100644 --- a/web/htdocs/book/_f_a_q.html +++ b/web/htdocs/book/_f_a_q.html @@ -1,4 +1,4 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE diff --git a/web/htdocs/book/_general.html b/web/htdocs/book/_general.html index c4e60c79..f4165f1e 100644 --- a/web/htdocs/book/_general.html +++ b/web/htdocs/book/_general.html @@ -1,4 +1,4 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE @@ -84,7 +84,7 @@ NAME="_jtag" >2.1. JTAG</A ></H1 ><P ->JTAG basics can be found all over the internet. This section should go into +>JTAG basics can be found all over the Internet. This section should go into some more details about working with JTAG. What hardware do you need, what is the usage of JTAG, where do I get files. What file formats are available…</P ><DIV @@ -132,7 +132,7 @@ control machine also allows to have two internal shift registers in each device (although we only have on in- and one output-pin). The registers are called instruction register (IR) and data register (DR). The current UrJTAG tool allows you to set the IR and set and get the DR. It doesn't allow you to -directly control the statemachine (yet).</P +directly control the state machine (yet).</P ></DIV ><DIV CLASS="section" @@ -145,7 +145,7 @@ NAME="_interfaces" ><P >The simplest interface that you can build is like the Xilinx parallel cable (also called DLC5). If your device works with a 5V or 3.3V supply voltage then -this device can even be build just with passive parts. (picture missing here) +this device can even be built just with passive parts. (picture missing here) UrJTAG also supports a number of other interface adapters.</P ></DIV ><DIV @@ -157,10 +157,10 @@ NAME="_additions" >2.1.3. Additions</A ></H2 ><P ->In the meantime the jtag specification was used as a basis for programming +>In the meantime the JTAG specification was used as a basis for programming flash files and debugging processors. UrJTAG supports programming a couple of different flash devices. It also supports programming of non-flash devices via -svf files. UrJTAG does not support debugging yet. Other open source solutions +SVF files. UrJTAG does not support debugging yet. Other open source solutions such as OpenOCD allow you to debug ARM processors with gdb.</P ></DIV ><DIV @@ -172,9 +172,9 @@ NAME="_bsdl_and_urjtag_data_files" >2.1.4. BSDL and UrJTAG data files</A ></H2 ><P ->The BSDL file format describes the jtag interface for one IC. It is a VHDL +>The BSDL file format describes the JTAG interface for one IC. It is a VHDL syntax with the needed information (like pin-names, register lengths and -commands) that is usually done by the supplier. e.g. Xilinx BSDL files are +commands) that is usually created by the supplier. e.g. Xilinx BSDL files are all included in their free web-pack (using file extension ".bsd").</P ><P >UrJTAG uses a different file format internally. So in order to add a new device @@ -197,9 +197,9 @@ NAME="_svf_files" >2.1.5. SVF files</A ></H2 ><P ->The SVF file format contains a number of high level commands to drive the jtag +>The SVF file format contains a number of high level commands to drive the JTAG bus. For example you can shift the IR or DR and even check for the results. -The Xilinxs impact and Altera QuartusII tools allow you to write this file to +The Xilinx Impact and Altera QuartusII tools allow you to write this file to program devices.</P ><P >The player has been developed according to the "Serial Vector Format @@ -209,7 +209,7 @@ full specification can be found at HREF="http://www.asset-intertech.com/support/svf.pdf" TARGET="_top" >http://www.asset-intertech.com/support/svf.pdf</A -></P +>.</P ><P >UrJTAG features an "SVF player" that can read SVF files and perform the described actions on the bus.</P diff --git a/web/htdocs/book/_gnu_free_documentation_license_fdl.html b/web/htdocs/book/_gnu_free_documentation_license_fdl.html index 2a6464ca..ee0438d0 100644 --- a/web/htdocs/book/_gnu_free_documentation_license_fdl.html +++ b/web/htdocs/book/_gnu_free_documentation_license_fdl.html @@ -1,4 +1,4 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE diff --git a/web/htdocs/book/_gnu_general_public_license_gpl.html b/web/htdocs/book/_gnu_general_public_license_gpl.html index f908d199..5fd337f0 100644 --- a/web/htdocs/book/_gnu_general_public_license_gpl.html +++ b/web/htdocs/book/_gnu_general_public_license_gpl.html @@ -1,4 +1,4 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE diff --git a/web/htdocs/book/_internals.html b/web/htdocs/book/_internals.html index 81444387..1425a8ce 100644 --- a/web/htdocs/book/_internals.html +++ b/web/htdocs/book/_internals.html @@ -1,4 +1,4 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE @@ -76,7 +76,7 @@ NAME="_internals" ></A >Chapter 4. Internals</H1 ><P ->This section yet is only a placeholder for the information that will +>This section is only a placeholder for the information that will be added soon…</P ><DIV CLASS="section" @@ -99,7 +99,7 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN892" +NAME="AEN919" ></A ><TABLE BORDER="0" @@ -131,7 +131,7 @@ VALIGN="top" ></TD ><TD > <P -> Part descriptions (Data files) +> Part descriptions (data files) </P > </TD diff --git a/web/htdocs/book/_jtag_commands.html b/web/htdocs/book/_jtag_commands.html index f9317592..d06c9297 100644 --- a/web/htdocs/book/_jtag_commands.html +++ b/web/htdocs/book/_jtag_commands.html @@ -1,4 +1,4 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE @@ -95,7 +95,7 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN393" +NAME="AEN442" ></A ><TABLE BORDER="0" @@ -652,7 +652,7 @@ CLASS="emphasis" ></TD ><TD > <P -> execute svf commands from file +> execute SVF commands from file </P > </TD @@ -776,7 +776,7 @@ NAME="_cable" >3.2.3.1. cable</A ></H3 ><P ->Sets and initialized the cable driver. This is usually the first command that +>Sets and initializes the cable driver. This is usually the first command that you are executing in a session. Example:</P ><PRE CLASS="literallayout" @@ -884,7 +884,7 @@ command) to find a match for the manufacturer, revision and part number for the IDCODE read from the part. However, not all parts identify themselves in a way that is useful for "detect". For example, many chips with an ARM processor core inside present an IDCODE that may be specific to the the particular core inside -the chip (e.g. ARM7TDMI), but doesn't tell about the actual manufacturer of +the chip (e.g. ARM7TDMI), but doesn't tell about the actual manufacturer of the chip. In such case, the data for the part has to be included manually. See also the documentation for the "include" command.</P ></DIV @@ -972,7 +972,7 @@ CLASS="literallayout" >initbus prototype amsb=ADDR22 alsb=ADDR0 dmsb=D15 dlsb=D0 ncs=nRCS0 nwe=nWE noe=nOE amode=x16</PRE ><P ->The "prototype" bus driver yet cannot deal with systems where address and data +>The "prototype" bus driver cannot deal with systems where address and data bus are multiplexed on the same pins. If signals aren't numbered in the right order or with gaps, you may get along by defining proper names as aliases for the actual signals, with commands like "salias ADDR12 BSCGX44".</P @@ -981,7 +981,7 @@ the actual signals, with commands like "salias ADDR12 BSCGX44".</P Because it isn't possible to efficiently address only particular pins but only all at once, and data for all pins has to be transferred through JTAG for every single change, this method isn't the fastest, but usually easiest to implement -and, well, sometimes it counts whether it works at all..</P +and, well, sometimes it counts whether it works at all.</P ><P >The "fjmem" (FPGA JTAG memory) bus driver attempts to address this issue by moving control and observation away from BSR to a device-internal @@ -1026,7 +1026,7 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN653" +NAME="AEN702" ></A ><TABLE BORDER="0" @@ -1135,7 +1135,7 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN685" +NAME="AEN734" ></A ><TABLE BORDER="0" @@ -1302,7 +1302,7 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN735" +NAME="AEN784" ></A ><TABLE BORDER="0" @@ -1489,7 +1489,7 @@ NAME="_svf" ></H3 ><P >The SVF player operates on a single part in the scan chain. Therefore, you -have to bring up the jtag software, specify a cable and detect the scan +have to bring up the JTAG software, specify a cable and detect the scan chain beforehand.</P ><P >The player will establish a new instruction called "SIR" and a new register @@ -1555,7 +1555,7 @@ CELLPADDING="5" ><DIV CLASS="sidebar" ><A -NAME="AEN801" +NAME="AEN850" ></A ><P ><B @@ -1564,63 +1564,6 @@ NAME="AEN801" ><P >Several limitations exist for the SVF player.</P ><P ->It has been tested so far with files generated by these tools:</P -><P -></P -><UL -><LI -><P -> Xilinx ISE WebPack 6.3.02i - 9.1.02i -</P -></LI -><LI -><P -> Altera Quartus II 4.1sp1 - 7.0 -</P -></LI -></UL -><P ->Configuration for these devices has been tested so far:</P -><P -></P -><UL -><LI -><P -> Altera EPC1C12Q240 -</P -></LI -><LI -><P -> Altera MAX3032, EPM3032ALC44 -</P -></LI -><LI -><P -> Altera MAX3064, EPM3064ALC44 -</P -></LI -><LI -><P -> Altera MAX7032, EPM7032SLC44 -</P -></LI -><LI -><P -> Altera MAX7064, EPM7064SLC44, EPM7064STC44 -</P -></LI -><LI -><P -> Xilinx Spartan-IIE, XC2S300E-PQ208 -</P -></LI -><LI -><P -> Xilinx Spartan-3, XC3S1000-FG456, XC3S5000-FG900 -</P -></LI -></UL -><P >The implementation of some SVF commands has deficiencies.</P ><P ></P @@ -1628,7 +1571,7 @@ NAME="AEN801" ><LI ><P > HIR, HDR commands not supported. - Their functionality should be covered by the part concept of JTAG Tools. + Their functionality should be covered by the part concept of UrJTAG. </P ></LI ><LI @@ -1656,7 +1599,7 @@ NAME="AEN801" ><LI ><P > TIR, TDR commands not supported. - Their functionality should be covered by the part concept of JTAG Tools. + Their functionality should be covered by the part concept of UrJTAG. </P ></LI ></UL @@ -1709,7 +1652,7 @@ CLASS="emphasis" started. This involves matching the retrieved IDCODE against the part descriptions in /usr/share/urjtag as described above. However, before this database is searched for a suitable description, the BSDL subsystem is started -and searches for BSDL file that matches this device. If it finds a matching +and searches for a BSDL file that matches this device. If it finds a matching file, traversal of the /usr/share/urjtag database is skipped. If not, then this standard process follows.</P ><P @@ -1740,7 +1683,7 @@ CLASS="emphasis" CLASS="emphasis" >bsdl path</I ></SPAN -> and is used lateron when +> and is used later on when <SPAN CLASS="emphasis" ><I diff --git a/web/htdocs/book/_licensing.html b/web/htdocs/book/_licensing.html index a9986eee..a181742c 100644 --- a/web/htdocs/book/_licensing.html +++ b/web/htdocs/book/_licensing.html @@ -1,4 +1,4 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE diff --git a/web/htdocs/book/_system_requirements.html b/web/htdocs/book/_system_requirements.html index bf29067d..09ab46e2 100644 --- a/web/htdocs/book/_system_requirements.html +++ b/web/htdocs/book/_system_requirements.html @@ -1,4 +1,4 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE @@ -89,7 +89,8 @@ NAME="_supported_host_operating_systems" ></H2 ><P >JTAG Tools should run on all Unix like operating systems including MS Windows -with Cygwin installed.</P +with Cygwin installed. A precompiled version that runs on MS Windows without +Cygwin is available as a Windows installer executable.</P ></DIV ><DIV CLASS="section" @@ -100,7 +101,7 @@ NAME="_required_software_for_running_urjtag" >2.3.2. Required software for running UrJTAG</A ></H2 ><P ->Required only for MS Windows:</P +>Required only for MS Windows, unless you use the precompiled version:</P ><P ></P ><UL @@ -127,8 +128,8 @@ driver in the system.</P the system as well. It's probably a standard part of your distribution.</P ><P >More software is needed if you want to compile UrJTAG (which you probably want -because currently no pre-compiled binaries are avaible…). See "Installation" -below.</P +because currently no pre-compiled binaries are available…). +See "Installation" below.</P ></DIV ><DIV CLASS="section" @@ -280,7 +281,7 @@ TARGET="_top" ></LI ><LI ><P -> Black gnICE <A +> Blackfin gnICE <A HREF="http://docs.blackfin.uclinux.org/doku.php?id=hw:jtag:gnice" TARGET="_top" >http://docs.blackfin.uclinux.org/doku.php?id=hw:jtag:gnice</A @@ -289,6 +290,15 @@ TARGET="_top" ></LI ><LI ><P +> Blackfin gnICE+ <A +HREF="http://docs.blackfin.uclinux.org/doku.php?id=hw:jtag:gnice-plus" +TARGET="_top" +>http://docs.blackfin.uclinux.org/doku.php?id=hw:jtag:gnice-plus</A +> +</P +></LI +><LI +><P > Xverve Signalyzer Tool (experimental) </P ></LI @@ -319,8 +329,16 @@ TARGET="_top" ></LI ></UL ><P ->Other cables: - * Technologic Systems TS-7800 SoC GPIO builtin JTAG interface</P +>Other cables:</P +><P +></P +><UL +><LI +><P +> Technologic Systems TS-7800 SoC GPIO builtin JTAG interface +</P +></LI +></UL ></DIV ><DIV CLASS="section" @@ -358,6 +376,60 @@ least the following are supported:</P ></LI ><LI ><P +> Analog Devices Blackfin (w/ BSDL) +</P +><P +></P +><UL +><LI +><P +> BF504/BF506 +</P +></LI +><LI +><P +> BF512/BF514/BF516/BF518 +</P +></LI +><LI +><P +> BF522/BF523/BF524/BF525/BF526/BF527 +</P +></LI +><LI +><P +> BF531/BF532/BF533 +</P +></LI +><LI +><P +> BF538/BF539 +</P +></LI +><LI +><P +> BF534/BF536/BF537 +</P +></LI +><LI +><P +> BF542/BF544/BF547/BF548/BF549 +</P +></LI +><LI +><P +> BF561 +</P +></LI +><LI +><P +> BF592 +</P +></LI +></UL +></LI +><LI +><P > Analog Devices Sharc-21065L </P ></LI diff --git a/web/htdocs/book/_urjtag.html b/web/htdocs/book/_urjtag.html index 765cc9e2..f33be4ce 100644 --- a/web/htdocs/book/_urjtag.html +++ b/web/htdocs/book/_urjtag.html @@ -1,4 +1,4 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE @@ -88,17 +88,17 @@ NAME="_introduction_2" >2.2.1. Introduction</A ></H2 ><P ->UrJTAG Tools is a software package which enables working with JTAG-aware (IEEE -1149.1) hardware devices (parts) and boards through JTAG adapter.</P +>UrJTAG is a software package which enables working with JTAG-aware (IEEE +1149.1) hardware devices (parts) and boards through a JTAG adapter.</P ><P ->This package has open and modular architecture with ability to write +>This package has an open and modular architecture with the ability to write miscellaneous extensions (like board testers, flash memory programmers, and so on).</P ><P ->JTAG Tools package is free software, covered by the GNU General Public License, +>UrJTAG 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.</P +conditions. There is absolutely no warranty for UrJTAG. Please read +the COPYING file for more info.</P ><DIV CLASS="warning" ><P @@ -150,12 +150,12 @@ NAME="_urjtag_website" >2.2.3. UrJTAG Website</A ></H2 ><P ->The most current version of this documentation and UrJTAG sourcecode +>The most current version of this documentation and UrJTAG source code is always available from the project homepage at <A HREF="http://www.urjtag.org" TARGET="_top" >http://www.urjtag.org</A -></P +>.</P ></DIV ><DIV CLASS="section" diff --git a/web/htdocs/book/_usage.html b/web/htdocs/book/_usage.html index daec7b97..eddff4a4 100644 --- a/web/htdocs/book/_usage.html +++ b/web/htdocs/book/_usage.html @@ -1,4 +1,4 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE @@ -95,12 +95,12 @@ NAME="_run_the_software" >Connect your JTAG adapter between your PC and target device and turn on your device.</P ><P ->To run JTAG Tools type "jtag" and press Enter. jtag should start and -display some initial informations. Output should end with line like this:</P +>To run UrJTAG type "jtag" and press Enter; jtag should start and +display some initial information. Output should end with a line like this:</P ><PRE CLASS="literallayout" ->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.</PRE +>WARNING: UrJTAG may damage your hardware! +Type "quit" to exit, "help" for help.</PRE ></DIV ><DIV CLASS="section" @@ -111,9 +111,9 @@ NAME="_configure_the_cable" >3.1.2. Configure the cable</A ></H2 ><P ->Type "help cable" for list of supported JTAG cables.</P +>Type "help cable" for a list of supported JTAG cables.</P ><P ->Type "cable" command followed by the cable name and possibly further +>Type the "cable" command followed by the cable name and possibly further arguments for cable configuration. Example:</P ><PRE CLASS="literallayout" @@ -257,6 +257,56 @@ CLASS="literallayout" >Done. jtag></PRE ></DIV +><DIV +CLASS="section" +><H2 +CLASS="section" +><A +NAME="_non_standard_flash_commands" +>3.1.7. Non-standard flash commands</A +></H2 +><P +>Erasing and programming flash devices is covered by standard procedures +in UrJTAG. Apart from these, many flash chips implement a lot more +functionality via dedicated commands that vary from between manufacturers +and device families. UrJTAG can't cover them all natively.</P +><P +>It's however possible to send any command stream to the flash by using +the poke and peek commands. You just need to clarify two things:</P +><P +></P +><OL +TYPE="1" +><LI +><P +> base address of the flash (BA) + it's the same that's used for detectflash +</P +></LI +><LI +><P +> data width, x8 or x16 + defined by the width of the bus where the flash is attached +</P +></LI +></OL +><P +>Next look up the address/data pairs for the command in question. The data +sheet for your particular flash should document all commands in a table e.g. +If your flash is attached in x16 mode, the address must be shifted by one +position. Addresses in x8 mode are not affected.</P +><P +>The "Read Manufacturer ID" command in x16 mode would look like</P +><PRE +CLASS="literallayout" +>poke BA+(0x555*2) 0xaa +poke BA+(0x2aa*2) 0x55 +poke BA+(0x555*2) 0x90 +peek BA+(0x000*2)</PRE +><P +>Note that the calculations must be done beforehand. UrJTAG can't evaluate +expressions on the command line.</P +></DIV ></DIV ></DIV ><DIV diff --git a/web/htdocs/book/index.html b/web/htdocs/book/index.html index f3adbcb2..fb17bf8a 100644 --- a/web/htdocs/book/index.html +++ b/web/htdocs/book/index.html @@ -1,4 +1,4 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE @@ -179,46 +179,51 @@ HREF="_compilation_and_installation.html" ><DL ><DT >2.4.1. <A +HREF="_compilation_and_installation.html#_installation_of_precompiled_urjtag_for_windows" +>Installation of precompiled UrJTAG for Windows</A +></DT +><DT +>2.4.2. <A HREF="_compilation_and_installation.html#_required_software_for_compiling_urjtag" >Required software for compiling UrJTAG</A ></DT ><DT ->2.4.2. <A +>2.4.3. <A HREF="_compilation_and_installation.html#_required_libraries_for_usb_support" >Required libraries for USB support</A ></DT ><DT ->2.4.3. <A +>2.4.4. <A HREF="_compilation_and_installation.html#_installing_from_source_tar_gz" >Installing from source tar.gz</A ></DT ><DT ->2.4.4. <A +>2.4.5. <A HREF="_compilation_and_installation.html#_installing_from_subversion_repository" >Installing from Subversion repository</A ></DT ><DT ->2.4.5. <A +>2.4.6. <A HREF="_compilation_and_installation.html#_linking_to_ftd2xx_dll_in_cygwin_environment" >Linking to FTD2XX.DLL in Cygwin environment</A ></DT ><DT ->2.4.6. <A +>2.4.7. <A HREF="_compilation_and_installation.html#_using_libusb_win32_in_cygwin_environment" >Using LibUSB-Win32 in Cygwin environment</A ></DT ><DT ->2.4.7. <A +>2.4.8. <A HREF="_compilation_and_installation.html#_compiling_with_mingw" >Compiling with MinGW</A ></DT ><DT ->2.4.8. <A +>2.4.9. <A HREF="_compilation_and_installation.html#_driver_tailoring" >Driver tailoring</A ></DT ><DT ->2.4.9. <A +>2.4.10. <A HREF="_compilation_and_installation.html#_building_the_bsdl_subsystem" >Building the BSDL subsystem</A ></DT @@ -270,6 +275,11 @@ HREF="_usage.html#_sample_device_pin_status" HREF="_usage.html#_burn_flash_connected_to_the_part" >Burn flash connected to the part</A ></DT +><DT +>3.1.7. <A +HREF="_usage.html#_non_standard_flash_commands" +>Non-standard flash commands</A +></DT ></DL ></DD ><DT @@ -385,6 +395,21 @@ HREF="_data_file_format.html#_general_rules" HREF="_data_file_format.html#_signal_definition" >Signal Definition</A ></DT +><DT +>4.3.3. <A +HREF="_data_file_format.html#_manufacturers_list" +>Manufacturers List</A +></DT +><DT +>4.3.4. <A +HREF="_data_file_format.html#_parts_list" +>Parts List</A +></DT +><DT +>4.3.5. <A +HREF="_data_file_format.html#_stepping_list" +>Stepping List</A +></DT ></DL ></DD ><DT