xc3sprog will succesfully scan the IR chain on the first invocation with "-c xpc" parameter. However, on the second and subsequent invocations, it will fail to communicate with the programmer.
To recover, one needs to power cycle the programmer and reload its firmware.
[mrnuke@dev2 build]$ ./xc3sprog -c xpc
XC3SPROG (c) 2004-2011 xc3sprog project $Rev$ OS: Linux
[snip]
JTAG loc.: 0 IDCODE: 0x43651093 Desc: XC7K325T Rev: E IR length: 6
[mrnuke@dev2 build]$ ./xc3sprog -c xpc
XC3SPROG (c) 2004-2011 xc3sprog project $Rev$ OS: Linux
[snip]
usb_control_msg(0x28 12) Connection timed out
I see the same problem (using a platform cable USB DLC9G - which cable are you using?):
Last edit: Philipp Klaus Krause 2019-12-13
For information, the output is a bit different when no device is attached to JTAG, but xc3sprog still fails on the second invokation, then the timeout comes on the third:
Last edit: Philipp Klaus Krause 2019-12-14
I will have a look at it if you give me a head start how to get my DLC10 working under linux again without downloading impact/vivado whatever. Best head start would be a patch request for XC3Sprog with some updated Readme.DLC10.
My /etc/udev/rules.d/xusbdfwu.rules rules look like:
https://github.com/timvideos/litex-buildenv/wiki/Xilinx-Platform-Cable-USB-under-Linux
But that uses firmware files that came with Xilinx ISE 14.7. I do not know about any free firmware alternative. Also, I had to install ISE 14.7 anyway for synthesis (the XC9536XL is not yet supported by free synthesis tools).
However, I also see an error in /var/log/daemon.log (apparently the rule is executed once with empty $tempnode):
I don't think this error is related to the problem though, as the cable works fine for the first invokation of xc3sprog.
I think I've solved the udev issue. Apparently, the rule was executed for the device first, then again for the interface, resulting inthe error message on the execution for the interface. I've changed my /etc/udev/rules.d/xusbdfwu.rules, and now see only one execution, for the device. I've attached my new /etc/udev/rules.d/xusbdfwu.rules.
Still, this seems unrelated to the bug reported here.
I'm experiencing the same issue with my Xilinx adapter. I have to unplug / replug after every programming action or xc3sprog fails with above mentioned USB error. Is there any fix or workaround for the issue?