xilinx usb cable question

Hi, Does anybody have any luck with running the Xilinx usb-cable driver on a Linux 64 system? I'm having severe problems with this. I have done the steps below but have run out of ideas.

  1. system is latest opensuse 10.2 with kernel 2.6.18.8-0.5 The xilinx usb cable is detected as: $lsusb Bus 005 Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000 Bus 002 Device 001: ID 0000:0000 Bus 007 Device 001: ID 0000:0000 Bus 006 Device 001: ID 0000:0000 Bus 004 Device 001: ID 0000:0000 Bus 003 Device 003: ID 0bda:8187 Realtek Semiconductor Corp. Bus 003 Device 002: ID 03fd:0008 Xilinx, Inc. Bus 003 Device 001: ID 0000:0000

I tried the udev driver, compiled as 32 bits but when preloaded I get ERROR: ld.so: object './libusb-driver.so' from LD_PRELOAD cannot be preloaded: ignored. Compiled as 64 bits gives the same problem. The contents of /etc/udev/rules.d/xusbdfwu.rules is: SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0008", NAME="windrvr6" BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0007", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusbdfwu.hex -D $TEMPNODE" BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="0009", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusbdfwu.hex -D $TEMPNODE" BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="000b", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusbdfwu.hex -D $TEMPNODE" BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="000d", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusbdfwu.hex -D $TEMPNODE" BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03fd", SYSFS{idProduct}=="000f", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusbdfwu.hex -D $TEMPNODE" ACTION=="add", BUS=="usb", SYSFS{idVendor}=="03fd", MODE="666"

And I think this is correct. f I manually run sbin/fxload with the options above and -D /proc/bus/usb/003/002 I can see that the cable is addressed on the spartan 3A board, but afterwards a lsusb shows: Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000 Bus 002 Device 001: ID 0000:0000 Bus 007 Device 001: ID 0000:0000 Bus 006 Device 001: ID 0000:0000 Bus 004 Device 001: ID 0000:0000 Bus 003 Device 005: ID 03fd:0008 Xilinx, Inc. Bus 003 Device 003: ID 0bda:8187 Realtek Semiconductor Corp. Bus 003 Device 001: ID 0000:0000

Any ideas? Anybody have any luck with modifying the makefile of windrvr64 driver to get a decent 2.6.18 kerneldriver or any clue on the LD_PRELOAD problem? Taco

Reply to
bert
Loading thread data ...

Have you tried the libusb-driver developed by Michael Gernoth. Read my blog to find out more.

formatting link

Sven

Reply to
svenand

thanks, but I exactly did this xx times. I've this driver, but it doesn't want to be preloaded somehow. The 64 bits neither. I've now only once succeeded in loading the driver and the cable is recognized, but programming failed. after quitting impact I get again the same problems and a careful repetition of all actions gives the same result. Because the cable is showing with correct ID in lsusb listings, I suppose that the udev stuff is executed (I presume the name Xilinx is somewhere in these hex files). I'm afraid this is (again) a kernel issue with the opensuse 64 bit handling. Trying to do it with a different 32 bit PC... Asking xilinx for a working kernel driver will not help I presume. Taco

Reply to
Bert

Xilinx mentioned a few months ago that they were going to support an/ the open-source driver w/ their tools and it was in fact being shipped to certain beta users. The link to the exact post is on the libusb- driver website under the link "XILINX listened". I bet if you asked you may be able to get the driver for beta testing in your environment.

-- Mike

Reply to
morphiend

Just for logging reasons some notes to the problem above. I solved the problem.

  1. Opensuse 10.2 needs to have kernel 2.6.18.8-0.5
  2. The device is recognized as before, but is able to lock up unexpectedly because some semaphore is not released. The only way to recover from this is executing echo -e 'cleancablelock\nexit'|impact -batch which shows the release of the semaphores. After doing this it's possible to start impact and the whole jtag chain is recognized.
  3. I still see messages like ERROR: ld.so: /xilinx-usb-driver/libusb-driver.so' from LD_PRELOAD cannot be preloaded: ignored but it still works. and the preload is necessary to have this fake windrvr6 driver installed.
  4. library libusb-driver.so of course compiled for 32 bit when working on a
64 bits machine, but that was already reported in several threads. taco
Reply to
taco

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.