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 withudevadm control --reload-rules
. -
Next issue,
setup_pcusb
didn'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.rules
bysetup_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