From a3bed685b1f6477824a0dd54663cbb1ef1600c19 Mon Sep 17 00:00:00 2001
From: Kolja Waschk
Date: Thu, 29 May 2008 07:01:56 +0000
Subject: [PATCH] Updated UrJTAG book
git-svn-id: https://urjtag.svn.sourceforge.net/svnroot/urjtag/trunk@1261 b68d4a1b-bc3d-0410-92ed-d4ac073336b7
---
web/Doxyfile | 2 +-
web/htdocs/book/UrJTAG.dbk | 108 +++++++-----
web/htdocs/book/UrJTAG.html | 156 ++++++++++++------
.../book/_compilation_and_installation.html | 61 +++++--
web/htdocs/book/_drivers.html | 22 +--
web/htdocs/book/_internals.html | 2 +-
web/htdocs/book/_jtag_commands.html | 56 ++++---
web/htdocs/book/_system_requirements.html | 5 +
web/htdocs/book/index.html | 10 ++
9 files changed, 286 insertions(+), 136 deletions(-)
diff --git a/web/Doxyfile b/web/Doxyfile
index 8fc3bc55..48718ea6 100644
--- a/web/Doxyfile
+++ b/web/Doxyfile
@@ -6,7 +6,7 @@
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = urjtag
PROJECT_NUMBER = svn1258
-OUTPUT_DIRECTORY = out
+OUTPUT_DIRECTORY = htdocs/doxygen
CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = YES
diff --git a/web/htdocs/book/UrJTAG.dbk b/web/htdocs/book/UrJTAG.dbk
index 8e173f2f..dddd3dff 100644
--- a/web/htdocs/book/UrJTAG.dbk
+++ b/web/htdocs/book/UrJTAG.dbk
@@ -4,7 +4,7 @@
Universal JTAG library, server and tools
- 2008-02-28
+ 2008-05-27
Kolja
Waschk
@@ -12,7 +12,7 @@
KW(
-11052008-02-28KW(
+12562008-05-27KW(
@@ -385,6 +385,11 @@ Atmel ATmega128 (partial support)
+Atmel AT32AP7000 (partial support)
+
+
+
+
Broadcom BCM1250
@@ -544,13 +549,13 @@ AMD Am29xx040B (Am29F040B, Am29LV040B)
Required software for compiling UrJTAG
To run autogen.sh, you need autoconf and automake, bison, and a recent flex.
-The distributed source tarball contains source pregenerated with a current flex
-version; flex therefore is only needed if you want to compile code checked
-out from our Subversion repository. Flex 2.5.4a as it comes with Cygwin will
-work but some parts of UrJTAG (namely the SVF player) become more verbose if
-Flex 2.5.31 or newer is used. Building the BSDL subsystem files requires Flex
-2.5.33 or newer. The configure script will compare the available Flex version
-against these preconditions and enables or disables the related features. ,
+The distributed source tarball contains source pregenerated with a current
+flex version; flex therefore is only needed if you want to compile code
+checked out from our Subversion repository. Flex 2.5.4a as it comes with
+Cygwin cannot build the scanners for BSDL and SVF. Building these files
+requires Flex 2.5.33 or newer. The configure script will compare the available
+Flex version against these preconditions and enables or disables the related
+features.
Furthermore, libtool should be available, and "devel" versions of the following
packages:
@@ -656,9 +661,9 @@ without spaces in the name is better) and afterwards run configure with the
./configure --with-ftd2xx="/cygdrive/c/temp/ftdi-cdm-drivers"
Configure should now report
-FTDI cable support
+jtag is now configured for
...
- via libftd2xx : yes
+ Detected libftd2xx : yes
Using LibUSB-Win32 in Cygwin environment
@@ -675,6 +680,31 @@ http://libusb-win32.sourceforge.net
might give problems if the path contains spaces, as "Program Files" does!):
./configure --with-libusb="/cygdrive/c/Programme/LibUSB-Win32/"
+
+
+Compiling with MinGW
+UrJTAG may be compiled into a Windows executable using the MinGW compiler
+(http://www.mingw.org). This has the advantage over running in a Cygwin
+environment that you don't need to install anything else but the jtag.exe.
+However, because support for MinGW is quite new in UrJTAG, it may lack some
+features (e.g. readline support) or run a little slower.
+
+It is even possible to cross-compile and build the executable on a Linux
+host:
+
+./configure --host=i586-mingw32msvc --with-ftd2xx=/tmp/cdm-drivers
+make
+
+
+Driver tailoring
+The configure script enables all default bus, cable and lowlevel drivers. You
+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
+options.
+
Building the BSDL subsystem
@@ -1188,18 +1218,24 @@ modprobe parport_pc
UrJTAG now also supports some USB cables. Unfortunately, there is no standard
for "JTAG over USB", so this support is limited to a few selected cables only.
For cables based on the FT2232 chip from FTDI, the cable command has to be
-given cable name, driver name, and USB Vendor and Product ID of the cable:
+given cable name and optionally the driver name, USB Vendor, and Product ID of
+the cable:
-jtag> cable ARM-USB-OCD ftdi-mpsse 15ba:3
-For some cables, UrJTAG knows the VID:PID and you can just say ":"
+jtag> cable ARM-USB-OCD vid=15ba pid=0003 driver=ftdi-mpsse
+For all known cables, UrJTAG knows the VID and PID so you can just say
-jtag> cable JTAGkey ftdi-mpsse :
-On Windows, if UrJTAG was compiled to use the drivers supplied by
-FTDI, the command should instead look like this:
+jtag> cable ARM-USB-OCD
+If your cable isn't detected automatically though it's listed as a known and
+supported cable, feel free to report its VID and PID. It might be a different
+revision and should be added to the known & tested list of cables.
-jtag> cable ARM-USB-OCD ftd2xx-mpsse 15ba:3
-The support for USB-based cables and their configuration is work
-in progress; the above syntax may change (i.e. become simpler) soon.
+As stated above, the driver name is not mandatory for the cable
+command. UrJTAG will select the driver automatically based on UrJTAG's
+configuration. In case your system provides just one of libftdi or FTD2XX
+the respective driver is selected. If both libraries are available, then
+FTD2XX is selected. That's simply because FTD2XX showed some performance
+advantages over libftdi in the past. You can still force libftdi with the
+respective parameter.
@@ -1564,6 +1600,10 @@ In case the TDO parameter of an SDR command leads to a mismatch the player
issues a warning and continues. If the player should abort in this case then
specify stop at the svf command.
+The absence of error or warning messages indicate that the SVF file could be
+executed without problems. To get a progress reporting while the player advances
+through the SVF file, specify progress at the svf command.
+
Limitations and Deficiencies
Several limitations exist for the SVF player.
@@ -1648,12 +1688,6 @@ RUNTEST SCK not supported.
-SIR
- No check is done against the TDO parameter.
-
-
-
-
TRST
Parameters Z and ABSENT are not supported.
@@ -2338,15 +2372,10 @@ chips, and probably soon will be rewritten as "usbconn" drivers instead.
usbconn
The usbconn drivers provide a common API to search for and connect with USB
-devices. At the moment, there's only a libusb driver, but others will follow
-(e.g. to communicate with FTDI chip based cables through libftdi and/or FTD2XX,
-to communicate with Cypress FX2 using EZUSB.SYS or CyUSB.sys, and more).
-
-In contrast to the parport API, the usbconn drivers provide only the functions
-for connecting, disconnecting, and for releasing ressources. The actual
-communication must be implemented using the underlying library's functions,
-e.g. usb_write from libusb, or ftdi_write from libftdi. Therefore, each driver
-using usbconn usually only works together with one particular usbconn driver.
+devices. At the moment, there are drivers for libusd, libftdi and FTD2XX
+(e.g. to communicate with FTDI chip based cables through libftdi and/or
+FTD2XX, to communicate with Cypress FX2 using EZUSB.SYS or CyUSB.sys, and
+more).
@@ -2414,7 +2443,7 @@ bus_write() - Write access
-Address parameters to the functions listed above apecify always
+Address parameters to the functions listed above specify always
byte locations, independent of the actual data width. The bus driver has to
adjust the address on its own if required.
@@ -2438,9 +2467,10 @@ command before it lists the areas covered by this bus driver.
Preparation
-This function is called whenever at the start of a bus operation. The driver
-should perform the required preparation steps so that subsequent calls to the
-bus_read_* and bus_write functions can perform their tasks properly.
+This function is called whenever a bus operation is initiated. The
+driver should perform the required preparation steps so that
+subsequent calls to the bus_read_* and bus_write functions can perform
+their tasks properly.
E.g. a BSR bus driver would put the device into EXTEST mode to activate the
boundary scan register on the device pins.
diff --git a/web/htdocs/book/UrJTAG.html b/web/htdocs/book/UrJTAG.html
index bd0ed10a..cdba695a 100644
--- a/web/htdocs/book/UrJTAG.html
+++ b/web/htdocs/book/UrJTAG.html
@@ -206,6 +206,16 @@ HREF="#_using_libusb_win32_in_cygwin_environment"
>2.4.7. Compiling with MinGW2.4.8. Driver tailoring2.4.9. Building the BSDL subsystem
Atmel AT32AP7000 (partial support)
+
Broadcom BCM1250
To run autogen.sh, you need autoconf and automake, bison, and a recent flex.
The distributed source tarball contains source pregenerated with a current flex
-version; flex therefore is only needed if you want to compile code checked
-out from our Subversion repository. Flex 2.5.4a as it comes with Cygwin will
-work but some parts of UrJTAG (namely the SVF player) become more verbose if
-Flex 2.5.31 or newer is used. Building the BSDL subsystem files requires Flex
-2.5.33 or newer. The configure script will compare the available Flex version
-against these preconditions and enables or disables the related features. ,
The distributed source tarball contains source pregenerated with a current
+flex version; flex therefore is only needed if you want to compile code
+checked out from our Subversion repository. Flex 2.5.4a as it comes with
+Cygwin cannot build the scanners for BSDL and SVF. Building these files
+requires Flex 2.5.33 or newer. The configure script will compare the available
+Flex version against these preconditions and enables or disables the related
+features.
Furthermore, libtool should be available, and "devel" versions of the following
packages:
Configure should now reportFTDI cable support
+>jtag is now configured for
...
- via libftd2xx : yes
UrJTAG may be compiled into a Windows executable using the MinGW compiler
+(http://www.mingw.org). This has the advantage over running in a Cygwin
+environment that you don't need to install anything else but the jtag.exe.
+However, because support for MinGW is quite new in UrJTAG, it may lack some
+features (e.g. readline support) or run a little slower.
It is even possible to cross-compile and build the executable on a Linux
+host:
./configure --host=i586-mingw32msvc --with-ftd2xx=/tmp/cdm-drivers
+make
The configure script enables all default bus, cable and lowlevel drivers. You
+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
+options.
As mentioned above, building the BSDL lexer requires Flex 2.5.33 or newer. If
@@ -1592,7 +1648,7 @@ CLASS="informaltable"
>
UrJTAG now also supports some USB cables. Unfortunately, there is no standard
for "JTAG over USB", so this support is limited to a few selected cables only.
For cables based on the FT2232 chip from FTDI, the cable command has to be
-given cable name, driver name, and USB Vendor and Product ID of the cable:jtag> cable ARM-USB-OCD ftdi-mpsse 15ba:3
For some cables, UrJTAG knows the VID:PID and you can just say ":"
jtag> cable JTAGkey ftdi-mpsse :
jtag> cable ARM-USB-OCD vid=15ba pid=0003 driver=ftdi-mpsseOn Windows, if UrJTAG was compiled to use the drivers supplied by
-FTDI, the command should instead look like this:
For all known cables, UrJTAG knows the VID and PID so you can just sayjtag> cable ARM-USB-OCD ftd2xx-mpsse 15ba:3
The support for USB-based cables and their configuration is work
-in progress; the above syntax may change (i.e. become simpler) soon.
jtag> cable ARM-USB-OCDIf your cable isn't detected automatically though it's listed as a known and
+supported cable, feel free to report its VID and PID. It might be a different
+revision and should be added to the known & tested list of cables.
As stated above, the driver name is not mandatory for the cable
+command. UrJTAG will select the driver automatically based on UrJTAG's
+configuration. In case your system provides just one of libftdi or FTD2XX
+the respective driver is selected. If both libraries are available, then
+FTD2XX is selected. That's simply because FTD2XX showed some performance
+advantages over libftdi in the past. You can still force libftdi with the
+respective parameter.