Author Topic: Xilinx Platform USB Cable on a Mac  (Read 4823 times)

0 Members and 1 Guest are viewing this topic.

Offline lazarusrTopic starter

  • Regular Contributor
  • *
  • Posts: 54
  • Country: gb
Xilinx Platform USB Cable on a Mac
« on: June 09, 2017, 11:51:56 am »
I have a Xilinx Platform USB Cable Model DLC9LP (almost certainly not a real one but a Wun Hung Lo knock-off from China).

The only computers I have access to are all Macs. I have tried connecting it to Xilinx iMPACT in a virtual machine running either Windows 7 or Windows 10 with no success. (In the Windows 10 machine I have carried out the mod to libportability.dll as advised here.)

I can see the device correctly in Windows device manager and it reports that it is working correctly. But iMPACT returns the error "write cmdbuffer failed 20000015". The status LED on the device appears to be a weird mix of yellow and red.

I have a suspicion that the device is defective. But before I order a replacement, I was wondering whether anyone had any success getting one of these to work on a Mac under a Windows virtual machine.
 

Offline legacy

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: Xilinx Platform USB Cable on a Mac
« Reply #1 on: June 09, 2017, 12:39:30 pm »
The problem resides in how these eusb-jtag cable present themselves to the usb host. If you look with a magnifier you see they present twice. The first time as generic usb device looking for firmware, then a specific binary file is sent (through usb-bulk), the cable uploads it, resets, reboots, and presents itself again the usb host as jtag cable.

It means, from the HOST-OS point of view, it sees endpoints changed after the reset, also the vendor and the device id change, and, since changes happen without an un-plug (which invokes device.driver.done) plug-in (which invokes device.driver.init) event, this makes virtualizers like VirtualBox to go nuts as they can't understand what happens on their upper end-point, which is not directly connected to the hardware, it's passed trough a glue melt software layer from the host OS.

A smarter virtualizer like Xen, or Wmware, comes with a smarter glue able to simulate both the un-plug/plug-in events as virtual events, therefore the virtualizer is now able to handle the reloaded device.

Another option is ... to buy/build an ethernet-jtag.

Here I built mine using an embedded linux-box (Arietta G25 by Acme System), but it's not compatible with Xilinx-Impact, it doesn't understands the bitstream, it simply uploads it through the lan into the target (Xilinx Spartan S3, S6).
« Last Edit: June 09, 2017, 07:34:43 pm by legacy »
 

Offline lazarusrTopic starter

  • Regular Contributor
  • *
  • Posts: 54
  • Country: gb
Re: Xilinx Platform USB Cable on a Mac
« Reply #2 on: June 09, 2017, 03:25:11 pm »
Thanks for the advice. I used a colleague's 'real' Windows machine and, sure enough, it all works just fine. It's disappointing that Parallels (which I use) is not as sophisticated as VMWare with its USB solution. (I have found other reports of people succeeding with VMWare, but none with Parallels).

Now I have got to think of a solution for myself. Whatever I do it seems like a real PITA just to program a CPLD.

Thanks again for the help.
 

Offline kripton2035

  • Super Contributor
  • ***
  • Posts: 2572
  • Country: fr
    • kripton2035 schematics repository
Re: Xilinx Platform USB Cable on a Mac
« Reply #3 on: June 09, 2017, 04:02:44 pm »
Parallels quite only works with standard usb devices (mouses, keyboards, printers, scanners)
when it comes to special usb devices (programmers, diy usb, etc) I've never been able to make it work.
switching the same configuration to mac vmware fusion, and everything works out of the box ...
better: vmware can import a parallels virtual machine, no installation, just open the old vm, and run it, it works !
 

Offline Bassman59

  • Super Contributor
  • ***
  • Posts: 2501
  • Country: us
  • Yes, I do this for a living
Re: Xilinx Platform USB Cable on a Mac
« Reply #4 on: June 09, 2017, 04:45:45 pm »
Thanks for the advice. I used a colleague's 'real' Windows machine and, sure enough, it all works just fine. It's disappointing that Parallels (which I use) is not as sophisticated as VMWare with its USB solution. (I have found other reports of people succeeding with VMWare, but none with Parallels).

I gave up on Parallels years ago. VMWare works with all sorts of USB devices, including the Xilinx, Altera, MicroSemi and Silicon Labs dongles I have lying around here.
 

Offline lazarusrTopic starter

  • Regular Contributor
  • *
  • Posts: 54
  • Country: gb
Re: Xilinx Platform USB Cable on a Mac
« Reply #5 on: June 09, 2017, 04:48:07 pm »
I have now installed a trial of VMWare Fusion and, as kripton2035 says, it just works!
 

Offline stevelup

  • Regular Contributor
  • *
  • Posts: 184
  • Country: gb
Re: Xilinx Platform USB Cable on a Mac
« Reply #6 on: June 10, 2017, 04:16:53 pm »
Parallels p1ssed me off years ago forcing you to pay for a paid upgrade every time Apple updated OS X.

VMWare - usually works anyway, but without fail, drop a maintenance release usually within weeks of the latest OS X beta being released if there are any problems.

I may be accused of needing a tinfoil hat here, but I'm absolutely convinced that Parallels had deliberate built-in obsolescence to force continuous paid updates.
 

Offline lazarusrTopic starter

  • Regular Contributor
  • *
  • Posts: 54
  • Country: gb
Re: Xilinx Platform USB Cable on a Mac
« Reply #7 on: June 10, 2017, 06:51:38 pm »
Update #1: I have now successfully replaced a 74LS02 in one of my synth projects with a CPLD. Hardly a big deal. But I have never used a CPLD before and I am quite pleased. (Note: this is not the ultimate goal. I want to replace all the logic in a much more complex project.)

Update #2: Compared to Parallels, VMWare Fusion seems to eat massive amounts of battery life. I have turned off 3D acceleration (which I clearly don't need) and it is somewhat improved, but it still doesn't seem to be a viable option unless the MacBook is connected to the mains.
 

Offline stevelup

  • Regular Contributor
  • *
  • Posts: 184
  • Country: gb
Re: Xilinx Platform USB Cable on a Mac
« Reply #8 on: June 10, 2017, 09:39:47 pm »
I have not noticed any battery life issues. I use it daily on a 2015 15" Retina MBP.

Have you checked task manager in Windows to see if any processes are using CPU?

For me, if the guest OS is idle, then the Mac CPU is also idle. VMware seems to add virtually no overhead whatsoever.
 

Offline lazarusrTopic starter

  • Regular Contributor
  • *
  • Posts: 54
  • Country: gb
Re: Xilinx Platform USB Cable on a Mac
« Reply #9 on: August 20, 2018, 07:54:04 pm »
Just a little update in case it is of assistance to anyone. As the previous posts explain the Xilinx Platform USB Cable is not recognised under Parallels because of its less than perfect USB implementation. It does work under VMWare Fusion.

However, I personally prefer Parallels for everything else and was not keen on buying it. Instead, I have bough a Bus Pirate and have got that working nicely using XVSF Player.
 

Offline technix

  • Super Contributor
  • ***
  • Posts: 3507
  • Country: cn
  • From Shanghai With Love
    • My Untitled Blog
Re: Xilinx Platform USB Cable on a Mac
« Reply #10 on: August 21, 2018, 10:02:57 pm »
DLC9 is outdated. If you just want a cheap downloading cable, why not make your own with an FT2232H evaluate board from Digikey? It can be flashed into different downloading cables, including Lattice, Xilinx and I believe some others which I don't know yet, but I vaguely remember there's another one.

Digilent's official built in debuggers are FT2232H based, so does Lattice's dev kits as well as Lattice's official downloading cable.

DLC9 is based on CoolRunner II and CY7C68013, and DLC10 is based on a more recent Spartan 3 and CY7C68013. Both are heavily outdated and doesn't worth the money. It's also likely Xilinx doesn't have the resource to perfectionate their own USB driver compared with FDTI, which lives on USB business.
CY7C68013... That rang a bell... I was tackling ADUSB2EBZ a while ago and cloned it into my SigmaLink USBi using that same chip...

If there is a way to find out the uploaded program, it is likely to be able to cook an EEPROM image out of it and force the Cypress chip to boot directly into that program, saving an reenumeration.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf