| Commit | Line | Data |
|---|---|---|
| 026cbe49 | 1 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
| 2 | <HTML> | |
| 3 | <HEAD> | |
| 4 | <TITLE>XILINX USB/Parallel JTAG cables on Linux without windrvr</TITLE> | |
| 5 | </HEAD> | |
| 6 | <BODY BGCOLOR="#FFFFFF" TEXT="#000000"> | |
| 7 | <H1>XILINX JTAG tools on Linux without proprietary kernel modules</H1> | |
| 8 | <H2>About</H2> | |
| 9 | <P> | |
| 10 | When using <a href="http://www.xilinx.com">XILINX</a> JTAG software like Impact, Chipscope and XMD | |
| 2b78cb99 | 11 | on Linux, the proprietary kernel module <i>windrvr</i> from <a href="http://www.jungo.com">Jungo</a> |
| 026cbe49 | 12 | is needed to access the parallel- or usb-cable. |
| 13 | As this module does not work with current linux kernel versions (> 2.6.18) a library was developed, | |
| 14 | which emulates the module in userspace and allows the tools to access the JTAG cable without the need | |
| 15 | for a proprietary kernel module. | |
| 16 | </P> | |
| 17 | <P> | |
| 18 | The library uses <a href="http://libusb.sourceforge.net/">libusb</a> to access USB devices and the | |
| 4d2daea0 | 19 | <a href="http://people.redhat.com/twaugh/parport/html/x623.html">ppdev</a> interface to communicate |
| 026cbe49 | 20 | with parallel cables. The parallel part currently only supports Parallel Cable III mode (and PCIV in |
| 21 | PCIII compatibility mode) as the faster PCIV modes use another kernel module which is not emulated by | |
| 22 | this library. So you are limited to a 200kHz JTAG clock when using Parallel Cable IV with this software. | |
| 23 | The USB cable is supported at full speed. | |
| 24 | </P> | |
| 25 | <P> | |
| 7606d470 | 26 | Experimental support for FTDI 2232 based devices has been added. They are seen by Impact as a Parallel |
| 27 | Cable III. These devices are currently significantly slower than every other supported cable. | |
| 28 | </P> | |
| 29 | <P> | |
| 026cbe49 | 30 | The library is called <i>libusb-driver</i> as it was developed to support the USB cable, but later |
| 31 | extended to also support parallel cables. | |
| 32 | </P> | |
| 06f5f9d0 MG |
33 | <P><B>News</B> |
| 34 | <UL> | |
| cc424c9b | 35 | <LI><P><I>2008-03-26</I>: Xilinx has released their own drivers based on libusb with ISE Design Suite 10.1. |
| 06f5f9d0 MG |
36 | To use them, you need to set the environment-variable <kbd>XIL_IMPACT_USE_LIBUSB</kbd> to <kbd>1</kbd> |
| 37 | before running the tools. The driver on this page no longer needs to be preloaded if you only used | |
| 38 | it to access USB cables. Parallel port support still seems to rely on <i>windrvr</i>, which can be | |
| 39 | emulated by <i>libusb-driver</i>.</P> | |
| 40 | <P><B>Using 32-bit ISE 10.1 on a 64-bit platform:</B> When using the 32-bit JTAG tools from ISE Design | |
| 41 | Suite 10.1 on a 64-bit machine, the tools will not connect to the cable but output the following | |
| 42 | error: <I>Cable operation is not supported when running the 32-bit version of the application on a | |
| 43 | 64-bit platform.</I> | |
| 44 | To fix this, run the tools with <KBD>linux32</KBD> or preload the newest 32-bit version of | |
| 45 | <i>libusb-driver</i>. This will lead the tools to believe that they are running on a 32-bit | |
| cc424c9b | 46 | platform and allows them to connect to the cable.</P></LI> |
| 06f5f9d0 | 47 | |
| 4d5f52f3 | 48 | <LI><P><I>2009-05-31</I>: ISE Design Suite 11.1 now uses Xilinx's libusb-based drivers as default, without |
| 06f5f9d0 MG |
49 | the need to set <kbd>XIL_IMPACT_USE_LIBUSB</kbd>. If you want to use this driver with ISE 11.1 for USB |
| 50 | cables and disable the builtin support for libusb, you now have to set <kbd>XIL_IMPACT_USE_LIBUSB</kbd> | |
| 51 | to <kbd>0</kbd> (<kbd>export XIL_IMPACT_USE_LIBUSB=0</kbd> or <kbd>setenv XIL_IMPACT_USE_LIBUSB 0</kbd>). | |
| 52 | For parallel cables Xilinx still relies on <i>windrvr</i>. This library works fine with parallel cables and | |
| cc424c9b MG |
53 | ISE 11.1 with no need for <i>windrvr</i>.</P></LI> |
| 54 | ||
| 55 | <LI><P><I>2010-03-15</I>: If you are using newer udev-versions (like the version included in Debian Squeeze | |
| 56 | and Ubuntu 9.10), then the file <i>/etc/udev/rules.d/xusbdfwu.rules</i> is incompatible with this udev | |
| 57 | version. The effect of this is that the cable-firmware gets never loaded and the cable led never lights up.</P> | |
| 58 | <P>To fix this, run the following command as root:<BR> | |
| 59 | <kbd>sed -i -e 's/TEMPNODE/tempnode/' -e 's/SYSFS/ATTRS/g' -e 's/BUS/SUBSYSTEMS/' /etc/udev/rules.d/xusbdfwu.rules</kbd><BR> | |
| 60 | You may have to reboot for this change to take effect.</P></LI> | |
| 4ba5d6d9 | 61 | |
| a90dd207 | 62 | <LI><P><I>2010-05-22</I>: Support for ISE 12 is now available in the driver.</P></LI> |
| 0f785f00 | 63 | |
| 50cb89f5 | 64 | <LI><P><I>2011-05-08</I>: Support for ISE 13 is now available in the driver. A rewritten version of <i>setup_pcusb</i> |
| 0f785f00 | 65 | which works on modern distributions has been added.</P></LI> |
| 06f5f9d0 | 66 | </UL> |
| d6cf2032 | 67 | </P> |
| 026cbe49 | 68 | <H2>Supported Cables</H2> |
| 69 | The following cables are reported to work with this driver: | |
| 70 | <ul> | |
| f10305a8 | 71 | <li><a href="http://www.xilinx.com/support/documentation/data_sheets/ds593.pdf">XILINX Platform Cable USB II</a></li> |
| e9a331c7 | 72 | <li><a href="http://direct.xilinx.com/bvdocs/publications/ds300.pdf">XILINX Platform Cable USB DLC9, DLC9LP and DLC9G</a></li> |
| 026cbe49 | 73 | <li><a href="http://www.xilinx.com/s3estarter">Integrated Platform Cable USB on Spartan 3E starter kit</a></li> |
| de6f38de | 74 | <li><a href="http://www.xilinx.com/s3astarter">Integrated Platform Cable USB on Spartan 3A starter kit</a></li> |
| 20ce0945 | 75 | <li><a href="http://www.digilentinc.com/Products/Detail.cfm?Nav1=Products&Nav2=Programmable&Prod=XUPV2P">Integrated Platform Cable USB on XUP-V2Pro</a></li> |
| 21a5b635 | 76 | <li><a href="http://direct.xilinx.com/bvdocs/publications/ds097.pdf">XILINX Parallel Cable IV</a> (in Parallel Cable III compatibility mode)</li> |
| 9bb134bb | 77 | <li>FCPU-X platform cable (XILINX Platform Cable USB clone)</li> |
| 026cbe49 | 78 | <li><a href="http://www.enterpoint.co.uk/">Enterpoint Prog2</a> Parallel Cable III clone</li> |
| 79 | <li><a href="http://www.trenz-electronic.de/">Trenz TE0149-01</a> Parallel Cable III clone</li> | |
| 9ec5ba04 | 80 | <li><a href="http://www.digilentinc.com/Products/Catalog.cfm?Nav1=Products&Nav2=Cables&Cat=Cable">Digilent JTAG3</a> Parallel Cable III clone</li> |
| 7606d470 | 81 | <li><a href="http://www.amontec.com/">Amontec JTAGkey-Tiny</a> (experimental)</li> |
| 026cbe49 | 82 | </ul> |
| 78d5d21d | 83 | These cables should work but have not yet been tested: |
| 84 | <ul> | |
| 78d5d21d | 85 | <li>Integrated Platform Cable USB on other development boards</li> |
| 86 | <li>other Parallel Cable III clones</li> | |
| 7606d470 | 87 | <li>other FTDI2232 based devices which use the chips standard JTAG pinout (experimental)</li> |
| 78d5d21d | 88 | </ul> |
| 026cbe49 | 89 | <H2>Supported Software</H2> |
| 90 | The following software is reported to work with this driver: | |
| 91 | <ul> | |
| 0f785f00 | 92 | <li><a href="http://www.xilinx.com/tools/designtools.htm">ISE 13</a> (all editions)</li> |
| b316fb2f | 93 | <li><a href="http://www.xilinx.com/tools/designtools.htm">ISE 12</a> (all editions)</li> |
| 4d5f52f3 | 94 | <li><a href="http://www.xilinx.com/tools/designtools.htm">ISE 11</a> (all editions)</li> |
| 718362b4 | 95 | <li><a href="http://www.xilinx.com/ise/logic_design_prod/webpack.htm">ISE Webpack 10.1</a></li> |
| 04d489ad | 96 | <li><a href="http://www.xilinx.com/ise/logic_design_prod/webpack.htm">ISE Webpack 9.2 SP1, SP2, SP3 and SP4</a></li> |
| 59fab31f MG |
97 | <li><a href="http://www.xilinx.com/ise/logic_design_prod/webpack.htm">ISE Webpack 9.1 SP1, SP2 and SP3</a></li> |
| 98 | <li><a href="http://www.xilinx.com/ise/logic_design_prod/webpack.htm">ISE Webpack 8.2 SP3</a></li> | |
| 99 | <li><a href="http://www.xilinx.com/ise/logic_design_prod/webpack.htm">ISE Webpack 8.1 SP3</a></li> | |
| 718362b4 | 100 | <li><a href="http://www.xilinx.com/ise/optional_prod/cspro.htm">ChipScope Pro 10.1</a></li> |
| 04d489ad | 101 | <li><a href="http://www.xilinx.com/ise/optional_prod/cspro.htm">ChipScope Pro 9.2.01i, 9.2.02i, 9.2.03i and 9.2.04i</a></li> |
| 59fab31f | 102 | <li><a href="http://www.xilinx.com/ise/optional_prod/cspro.htm">ChipScope Pro 9.1.02i and 9.1.03i</a></li> |
| 026cbe49 | 103 | <li><a href="http://www.xilinx.com/ise/optional_prod/cspro.htm">ChipScope Pro 8.2.04i</a></li> |
| 718362b4 | 104 | <li><a href="http://www.xilinx.com/ise/embedded_design_prod/platform_studio.htm">EDK 10.1</a></li> |
| b9423a53 | 105 | <li><a href="http://www.xilinx.com/ise/embedded_design_prod/platform_studio.htm">EDK 9.2.01i and 9.2.02i</a></li> |
| 59fab31f | 106 | <li><a href="http://www.xilinx.com/ise/embedded_design_prod/platform_studio.htm">EDK 9.1.01i and 9.1.02i</a></li> |
| 026cbe49 | 107 | <li><a href="http://www.xilinx.com/ise/embedded_design_prod/platform_studio.htm">EDK 8.2.02i</a></li> |
| 2271fdf2 | 108 | <li><a href="http://www.xilinx.com/ise/embedded_design_prod/platform_studio.htm">EDK 8.1.02i</a></li> |
| 337944d1 | 109 | <li><a href="http://www.synplicity.com/products/identify/index.html">Synplicity Identify Debugger</a></li> |
| 026cbe49 | 110 | </ul> |
| 111 | <H2>Download</H2> | |
| 112 | <ul> | |
| 8d29f0a4 | 113 | <li>Download <a href="http://git.zerfleddert.de/cgi-bin/gitweb.cgi/usb-driver?a=snapshot;h=HEAD;sf=tgz">usb-driver-HEAD.tar.gz</a> (to build it, you need to have the libusb development package installed. It is called libusb-dev on Debian.)</li> |
| badd6a82 | 114 | <li>Read the <a href="http://git.zerfleddert.de/cgi-bin/gitweb.cgi/usb-driver?a=blob_plain;f=README;hb=HEAD">README</a></li> |
| e9b47752 | 115 | <li>Browse the <a href="http://git.zerfleddert.de/cgi-bin/gitweb.cgi/usb-driver?a=tree">Git repository</a> (<a href="http://git.zerfleddert.de/cgi-bin/gitweb.cgi/usb-driver">Summary</a>)</li> |
| 9ec5ba04 | 116 | <li>Precompiled <a href="libusb-driver.so">libusb-driver.so</a> for Debian Etch, but better build your own</li> |
| b22eea29 | 117 | <li>Clone the <a href="http://git.or.cz/">Git</a> repository with: <kbd>git clone git://git.zerfleddert.de/usb-driver</kbd></li> |
| 41d0a9f7 | 118 | </ul> |
| 119 | <H2>Links</H2> | |
| 120 | <ul> | |
| 5029ac18 MG |
121 | <li><a href="http://groups.google.com/group/comp.arch.fpga/msg/94d8bb1f52e06b44">XILINX listened</a></li> |
| 122 | <li><a href="http://svenand.blogdrive.com/archive/55.html">Installation instructions using a MacBook running Ubuntu in VMware by Sven Andersson</a></li> | |
| b3158171 | 123 | <li><a href="http://groups.google.com/group/comp.arch.fpga/browse_thread/thread/954a145428ec2c54/555f6bfb766a3a93#555f6bfb766a3a93">Using the libusb-driver on a 64bit system with a 32bit ISE by Ken Ryan</a></li> |
| 9ec5ba04 | 124 | <li><a href="http://groups.google.com/group/comp.arch.fpga/msg/2dfa36541174a4f2">Ubuntu installation instructions by Luzerne</a></li> |
| 41d0a9f7 | 125 | <li><a href="http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/archive/2007/03/msg00101.html">Ubuntu installation instructions by Paul-Armand Verhaegen</a></li> |
| 9ec5ba04 | 126 | <li><a href="http://groups.google.com/group/comp.arch.fpga/browse_frm/thread/f149e5b6028e2c70">Initial announcement on comp.arch.fpga</a></li> |
| 2d19c7cb | 127 | <li><a href="http://xc3sprog.sourceforge.net/">xc3sprog</a>, a suite of utilities for programming Xilinx FPGAs, CPLDs, and EEPROMs with the Xilinx Parallel Cable and other JTAG adapters under Linux</li> |
| 57d4107e | 128 | <li><a href="http://inisyn.org/src/xup/">XUP</a> by inisyn research, opensource JTAG programming for Spartan 3E starter kit USB cable</li> |
| 129 | <li><a href="http://www.ixo.de/info/usb_jtag/">USB JTAG adapter</a> by Kolja Waschk, opensource integration of the XILINX platform cable USB into OpenOCD and openwince JTAG Tools</li> | |
| 2d19c7cb | 130 | <li><a href="http://xc3sprog.sourceforge.net/">Spartan3 JTAG download tools for GNU/Linux (xc3sprog)</a></li> |
| 120876a3 | 131 | <li><a href="http://urjtag.org/">UrJTAG</a>, open source jtag tools with basic support for the xilinx XPCU</a></li> |
| 026cbe49 | 132 | </ul> |
| 133 | <HR> | |
| f19a030c | 134 | <FONT SIZE="-1"><I><A HREF="mailto:cabledriver@zerfleddert.de">Michael Gernoth</A></I></FONT> |
| 026cbe49 | 135 | </BODY> |
| 136 | </HTML> |