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_pcusbdidn'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_pcusbdidn't tell udev to reload the udev rules. Had to do that manually withudevadm control --reload-rules. -
Next issue,
setup_pcusbdidn't ask me to install fxload, so I needed to install it withapt-get install fxload. -
Next issue, the rules that were installed to
/etc/udev/rules.d/xusbdfwu.rulesbysetup_pcusbwere invalid; they caused the following errors in/var/log/daemon.logshown 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