XILINX JTAG tools on Linux without proprietary kernel modules
About
When using XILINX JTAG software like Impact, Chipscope and XMD
on Linux, the proprietary kernel module windrvr from Jungo
is needed to access the parallel- or usb-cable.
As this module does not work with current linux kernel versions (> 2.6.18) a library was developed,
which emulates the module in userspace and allows the tools to access the JTAG cable without the need
for a proprietary kernel module.
The library uses libusb to access USB devices and the
ppdev interface to communicate
with parallel cables. The parallel part currently only supports Parallel Cable III mode (and PCIV in
PCIII compatibility mode) as the faster PCIV modes use another kernel module which is not emulated by
this library. So you are limited to a 200kHz JTAG clock when using Parallel Cable IV with this software.
The USB cable is supported at full speed.
Experimental support for FTDI 2232 based devices has been added. They are seen by Impact as a Parallel
Cable III. These devices are currently significantly slower than every other supported cable.
The library is called libusb-driver as it was developed to support the USB cable, but later
extended to also support parallel cables.
News
- 2008-03-26: Xilinx has released their own drivers based on libusb with ISE Design Suite 10.1.
To use them, you need to set the environment-variable XIL_IMPACT_USE_LIBUSB to 1
before running the tools. The driver on this page no longer needs to be preloaded if you only used
it to access USB cables. Parallel port support still seems to rely on windrvr, which can be
emulated by libusb-driver.
Using 32-bit ISE 10.1 on a 64-bit platform: When using the 32-bit JTAG tools from ISE Design
Suite 10.1 on a 64-bit machine, the tools will not connect to the cable but output the following
error: Cable operation is not supported when running the 32-bit version of the application on a
64-bit platform.
To fix this, run the tools with linux32 or preload the newest 32-bit version of
libusb-driver. This will lead the tools to believe that they are running on a 32-bit
platform and allows them to connect to the cable.
- 2009-05-31: ISE Design Suite 11.1 now uses their libusb based drivers as default, without
the need to set XIL_IMPACT_USE_LIBUSB. If you want to use this driver with ISE 11.1 for USB
cables and disable the builtin support for libusb, you now have to set XIL_IMPACT_USE_LIBUSB
to 0 (export XIL_IMPACT_USE_LIBUSB=0 or setenv XIL_IMPACT_USE_LIBUSB 0).
For parallel cables Xilinx still relies on windrvr. This library works fine with parallel cables and
ISE 11.1 with no need for windrvr.
Supported Cables
The following cables are reported to work with this driver:
These cables should work but have not yet been tested:
- XILINX Platform Cable USB II
- Integrated Platform Cable USB on other development boards
- other Parallel Cable III clones
- other FTDI2232 based devices which use the chips standard JTAG pinout (experimental)
Supported Software
The following software is reported to work with this driver:
Download
- Download usb-driver-HEAD.tar.gz (to build it, you need to have the libusb development package installed. It is called libusb-dev on Debian.)
- Read the README
- Browse the Git repository (Summary)
- Precompiled libusb-driver.so for Debian Etch, but better build your own
- Clone the Git repository with: git clone git://git.zerfleddert.de/usb-driver
Links
Michael Gernoth