Xilinx Platform Cable USB under Linux - timvideos/litex-buildenv GitHub Wiki

Most instructions for getting this cable / device to work under Linux are out of date. Here is what I did to install on Ubuntu Trusty 14.04 and using with iMPACT which comes with Xilinx WebPack/ISE 14.7.

Install fxload with sudo apt-get install fxload

Create /etc/udev/rules.d/xusbdfwu.rules with the following content;

# version 0003
ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0008", MODE="666"
SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0007", RUN+="/sbin/fxload -v -t fx2 -I /opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/xusbdfwu.hex -D $tempnode"
SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0009", RUN+="/sbin/fxload -v -t fx2 -I /opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/xusb_xup.hex -D $tempnode"
SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="000d", RUN+="/sbin/fxload -v -t fx2 -I /opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/xusb_emb.hex -D $tempnode"
SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="000f", RUN+="/sbin/fxload -v -t fx2 -I /opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/xusb_xlp.hex -D $tempnode"
SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0013", RUN+="/sbin/fxload -v -t fx2 -I /opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/xusb_xp2.hex -D $tempnode"
SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0015", RUN+="/sbin/fxload -v -t fx2 -I /opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/xusb_xse.hex -D $tempnode"

Run sudo udevadm control --reload-rules.

Plug in your Xilinx Platform Cable USB and the "Connector Signals" / "Status" light in the top right hand corner should turn red indicating the fxload command worked. If this light is not red then something has gone wrong and probably fxload was not able to load the firmware.

You can purchase this cable officially from Xilinx and it'll cost you ~$200 USD or you can purchase a copy from eBay. I got my here, it costed $37 USD with shipping. Ordered on 11th July and arrived on the 21st.


Instructions official instructions are at http://www.xilinx.com/support/answers/29310.htm but there where quite a few issues following them.

  • First issue was /opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/setup_pcusb didn't understand I had udev and was trying to install for the ancient hotplug. Fixed by changing line 26 from TP_USE_UDEV="0" to TP_USE_UDEV="1"

  • Next issue, setup_pcusb didn't tell udev to reload the udev rules. Had to do that manually with udevadm control --reload-rules.

  • Next issue, setup_pcusb didn't ask me to install fxload, so I needed to install it with apt-get install fxload.

  • Next issue, the rules that were installed to /etc/udev/rules.d/xusbdfwu.rules by setup_pcusb were invalid; they caused the following errors in /var/log/daemon.log shown below.

Jul 23 16:40:29 laptop udevd[841]: unknown key 'SYSFS{idVendor}' in /etc/udev/rules.d/xusbdfwu.rules:2
Jul 23 16:40:29 laptop udevd[841]: invalid rule '/etc/udev/rules.d/xusbdfwu.rules:2'
Jul 23 16:46:11 laptop udevd[841]: unknown key 'SYSFS{idVendor}' in /etc/udev/rules.d/xusbdfwu.rules:3
Jul 23 16:46:11 laptop udevd[841]: invalid rule '/etc/udev/rules.d/xusbdfwu.rules:3'

This was fixed by;

  • Changing SYSFS to ATTRS
  • Changing BUS to SUBSYSTEM
  • Changing $TEMPNODE to $tempnode