Hi everybody, I recently bought a Xilinx Spartan-3E evaluation board, which comes with an integrated Platform Cable USB. Looking for a Linux compatible solution to program the FPGA, I found out that Impact requires the binary kernel driver Jungo and is thus not an option. As Xilinx decided to classify the cable USB protocol specifications as "highly confidential", I started to reverse engineer the programmer to see if I could write an open-source host software. The programmer is made of a USB microcontroller (Cypress EZ-USB) and a CPLD. After trying to understand the protocol from USB traces only without success, I decided to disassemble the microcontroller firmware. The code gave me more information regarding the protocol, but some USB commands are forwarded to the CPLD through register read/write operations and/or general purpose I/Os. Not being able to understand the protocol, I thought I would write a replacement firmware which would not require a kernel driver. I'm looking for people interested in the project (or for people who have managed to understand the Xilinx USB protocol :-)). I can take care of the Cypress EZ-USB microcontroller, but needs someone with CPLD programming experience to write a replacement for the Xilinx CPLD firmware. Laurent Pinchart
Xilinx Platform Cable USB protocol specifications and/or open-source firmware replacement
Started by ●May 15, 2006
Reply by ●May 16, 20062006-05-16
I too had the same thought. For a while. A platform USB cable from the Xilinx store costs $150. Given the time to reverse engineer the protocol and design a board, and ... And let's not forget that Xilinx owns the USB Vendor ID for the device, so one can't re-use it without their permission. You can't make one that's iMPACT compatable; might as well buy one of the Digilent $38 versions.
Reply by ●May 16, 20062006-05-16
> I too had the same thought. For a while. > > A platform USB cable from the Xilinx store costs $150. Given the time > to reverse engineer the protocol and design a board, and ... > > And let's not forget that Xilinx owns the USB Vendor ID for the device, > so one can't re-use it without their permission. > > You can't make one that's iMPACT compatable; might as well buy one of > the Digilent $38 versions.I came accross the Digilent JTAG-USB programming cable, but haven't been to find its protocol specifications. I asked Digilent for more information, but my e-mail seems to have been discarded. Do you know if the cable protocol is available somewhere ? Or will I have to reverse engineer it as well ? Laurent Pinchart
Reply by ●May 16, 20062006-05-16
> I too had the same thought. For a while. > > A platform USB cable from the Xilinx store costs $150. Given the time > to reverse engineer the protocol and design a board, and ... > > And let's not forget that Xilinx owns the USB Vendor ID for the device, > so one can't re-use it without their permission. > > You can't make one that's iMPACT compatable; might as well buy one of > the Digilent $38 versions.I came accross the Digilent JTAG-USB programming cable, but haven't been to find its protocol specifications. I asked Digilent for more information, but my e-mail seems to have been discarded. Do you know if the cable protocol is available somewhere ? Or will I have to reverse engineer it as well ? Laurent Pinchart
Reply by ●May 16, 20062006-05-16
Reply by ●May 16, 20062006-05-16
Reply by ●May 16, 20062006-05-16
And you're surprized that they're not giving away their design? Not to rain on your parade, but the typical FPGA engineer has spent a hundred bucks or so on the part, a grand or two on the PCB, and 1/2 a man-year on the code. $38 for a JTAG dongle is down in the noise. If it's hobby use you're after, you can stretch the JTAG signals off of your card to another target. There is an open-JTAG effort on SourceForge. You might want to check it out.
Reply by ●May 16, 20062006-05-16
Hi,> And you're surprized that they're not giving away their design?Who's talking about their design ? I'm not trying to create a cheap clone, but to drive the programmer using free software. I don't mind paying $38 (or even $150) for a good USB JTAG dongle, as long as I can use it.> Not to rain on your parade, but the typical FPGA engineer has spent a > hundred bucks or so on the part, a grand or two on the PCB, and 1/2 a > man-year on the code. $38 for a JTAG dongle is down in the noise. > > If it's hobby use you're after, you can stretch the JTAG signals off of > your card to another target. > > There is an open-JTAG effort on SourceForge. You might want to check > it out.I've checked that out, but it only support parallel port bit-banging adapters. I want to buy a USB JTAG programmer that I can actually use with free softwares. Why is there none available ? Laurent Pinchart
Reply by ●May 16, 20062006-05-16
Laurent Pinchart wrote:> > I want to buy a USB JTAG programmer that I can actually use with free > softwares. Why is there none available ? > > Laurent Pinchart >I reread the thread and didn't see this asked. Why aren't you just using our iMPACT software. Linux is one of the supported OSes after all. You do have to compile the drivers into your Kernel as explained here: http://www.xilinx.com/xlnx/xil_ans_display.jsp?iLanguageID=1&getPagePath=22648 and the iMPACT software is included in the free WebPack download. Ed McGettigan -- Xilinx Inc.
Reply by ●May 16, 20062006-05-16
Hi Ed,>> I want to buy a USB JTAG programmer that I can actually use with free >> softwares. Why is there none available ? >> > > I reread the thread and didn't see this asked. Why aren't you just > using our iMPACT software. Linux is one of the supported OSes after all. > > You do have to compile the drivers into your Kernel as explained here: >http://www.xilinx.com/xlnx/xil_ans_display.jsp?iLanguageID=1&getPagePath=22648> > and the iMPACT software is included in the free WebPack download.Because iMPACT requires the Jungo binary driver, which has serious security issues. Linux offers a user-space USB library called libusb (available for win32 as well) which would let iMPACT access the Platform Cable USB without using a binary kernel driver. As I can't modify iMPACT to get rid of the Jungo dependency, I went the other way and tried to write a simple command line software to drive the cable. Unfortunately, the USB protocol seems to be classified top secret, and reverse engineering the EZUSB firmware didn't give me enough information. That's why I asked for more information on here. Laurent Pinchart






