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 MinGW
2.4.8. Driver tailoring
2.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 report

    FTDI cable support
    +>jtag is now configured for
       ...
    -  via libftd2xx        : yes

    2.4.7. 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

    2.4.8. 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.


    2.4.7. Building the BSDL subsystem2.4.9. Building the BSDL subsystem

    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-mpsse

    On 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 say

    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.

    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.

    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.

    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.

    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.

    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.

    4.2.3.4. 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.

    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 report

    FTDI cable support
    +>jtag is now configured for
       ...
    -  via libftd2xx        : yes

    2.4.7. 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

    2.4.8. 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.

    2.4.7. Building the BSDL subsystem2.4.9. Building the BSDL subsystem

    As mentioned above, building the BSDL lexer requires Flex 2.5.33 or newer. If diff --git a/web/htdocs/book/_drivers.html b/web/htdocs/book/_drivers.html index 24e3716e..460beddf 100644 --- a/web/htdocs/book/_drivers.html +++ b/web/htdocs/book/_drivers.html @@ -607,15 +607,10 @@ NAME="_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.

    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.

    4.2.3.4. 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.

    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
    jtag> cable ARM-USB-OCD vid=15ba pid=0003 driver=ftdi-mpsse

    For some cables, UrJTAG knows the VID:PID and you can just say ":"

    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 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-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.

    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.

    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.