The Xilinx ISE Design Suite installer will attempt to install your cable drivers. Across varying platforms and user configurations there can be problems or failures with the install.
This Xilinx Answer gives an overview of how a user can manually install the drivers without re-running the full installation.
Note: For similar Vivado related install/uninstall procedures see Vivado Design Suite User Guide (UG973).
- Disconnect the Xilinx USB cable. Alternatively, you can disabled the USB cable in the device manager first then re-enable them in step 5; in this case, you will not even need to reboot.
- Navigate to <Xilinx install>\bin\ [nt|nt64] or <Xilinx install>[nt|nt64] in an installed area.
- Run wdreg -inf windrvr6.inf install
- Run wdreg -inf xusbdrvr.inf install
- Connect the Xilinx USB cable.
Note: You might need to run the Command Prompt in Administrator mode
There are two ways of installing cable drivers on Linux.
The first one is with limited sudo access (new method) and the second is with sudo -s access.
Limited sudo Access
To get sudo access on a machine, file a helpdesk ticket requesting sudo access to install cable drivers.
You can check which commands can be run by running "/tools/xint/bin/sudo -l".
To install cable drivers:
- Go to<Xilinx install>/bin/[lin|lin64] or <Xilinx install>/bin/[lin|lin64] in an installed area.
- Copy the install_script directory to /tmp.
- Run "/tools/xint/bin/sudo /tmp/install_script/install_drivers/install_drivers"
- Run "/tools/xint/bin/sudo chmod 666 /dev/windrvr6"
Full sudo -s access
- Run sudo -s
- Go to<Xilinx install>/bin/[lin|lin64] or common/bin/[lin|lin64] in an installed area.
- Copy the install_script directory to /opt.
- Run "./install_drivers" in /opt/install_script/install_drivers.
- Add windrvr6 read/write access by running "chmod 666 /dev/windrvr6".
Additional steps to make chmod permanent on reboot (Red Hat 4)
- Open this file with your favorite text editor (requires sudo access): /etc/udev/permissions.d/50-udev.permissions
- Add the line to the end of the file:
Additional steps to make chmod permanent on reboot (Red Hat 5+)
- Open this file with your favorite text editor (requires sudo access): /etc/rc.local (or /etc/rc.d/rc.local)
- Add the line to the end of the file:
chmod 666 /dev/xpc4* chmod 666 /dev/windrvr6
Installing fxload when driver complains about it missing (Red Hat 5)
- Download the correct rpm here, one is for 32-bit and one is for 64-bit: http://packages.atrpms.net/dist/el5/fxload/
- Install the rpm using root access by calling:
rpm -i <filename>.rpm
Some builds of Linux are missing libusb, which is used for the Xilinx USB cables.
If the libusb is not available, it defaults to using the Jungo drivers, which might have issues with multiple cables.
Uninstalling Cable Drivers
- Navigate to <Xilinx install>\bin\ [nt|nt64] in an installed area.
- Open cmd console.
- Run "wdreg -inf %cd%\windrvr6.inf uninstall"
- Run "wdreg -inf %cd%\xusbdrvr.inf uninstall"
- Run "net stop XilinxPC4Driver"
- Delete "%WINDIR%\system32\drivers\windrvr6.sys"
- Delete "%WINDIR%\system32\drivers\xusb*.sys"
- Delete "%WINDIR%\system32\drivers\xpc4drvr.sys"
- Disconnect the USB cable. Close applications that use the cable.
- Open a cmd console.
- Navigate to <Xilinx install>/bin/[lin|lin64] or common/bin/[lin|lin64]/install_script/install_drivers in an installed area.
- Run ./install_drivers clean
- Follow the additional instruction printed in the log.
Debugging Cable Drivers
Check the install log in the Xinfo report.
For Windows 7 installation failures see:
(Xilinx Answer 44397)
- Try the command: /sbin/lsusb
- Read the log: /var/log/messages
- Check the Xinfo for Exit code -
On some Linux distributions, installation fails to create the firmware in the correct location (/usr/share/x.hex) as well as the udev rule (/etc/udev/rules.d/xusbdfwu.rules).
- Returns 0 if fxload is not found.
- Returns 1 if driver directory is not accessible.
- Returns 2 if user does not have root privileges.
Copy these files into the correct locations from a good install. The xusbdfwu.rules file uses a shell variable, $TEMPNODE. This name may not work on all distributions.
All references to $TEMPNODE should be replaced with the lowercase version, $tempnode. Then restart udev and the cable should be recognized.