libusb-driver and Spartan3-AN Eval kit woes

Hi !

I appologize if that has been dealt with already, though I haven't found an answer in the archives.

I have an x86_64 machine running some recent linux (ubuntu hardy dev. amd64), Xilinx ISE 9.2.04i Web version, which I believe is the latest (I have all the necessary 32 bits libs installed), and a 32 bits build of libusb-driver out of git so fully up to date.

Things are working fine with the JTAG-3 parallel cable and a SP3 starter kit board. However, I'm having serious issues with the 3AN board and it's built-in USB-JTAG bridge.

The udev rules are in place, the firmware seems to be downloaded properly, I can scan the jtag chain fine (I had iMPACT lockup once or twice at that stage but it seems to be allright again, not sure what happened). However, I've never successfully downloaded a config "live" in the FPGA. I've managed to flash the internal flash (the -AN has one). but not download the FPGA only.

What generally happens, is that when I choose "Program FPGA only" option, it appears to download fine, I see the progress BAR, it goes all the way, there's a message about successful download at the end, but DONE never comes up and the FPGA never configures (iMPACT then timeouts after a random amount of time, generally about 20s). Actually, the DONE led comes up soon after it starts the download and back off at the end, looks to me like iMPACT is d/l some temp. configuration to the FPGA before doing the full d/l.

When I do "Program Flash and Load FPGA", it -mostly- works. That is, it generally succeeds, or eventually fails to configure near the end, just like for a normal download, but generally the flash has been programmed (though I had a couple of cases where the flash wasn't or wasn't properly programmed as the FPGA wouldn't configure afterward).

So it seems very erratic to me. The design I'm using is a fairly trivial UART design that I hooked on a simple loopback circuitry to test. I'm fairly new to the whole world of logic design and FPGAs, so it's very possible that I missed something obvious, or a simple setting, but so far, I haven't found anything that makes a difference.

I've tried with pretty much any jumper setting for M0..M2, that didn't seem to help.

Any help appreciated. I'm an experienced C programmer (a linux kernel person more specifically) so I'd be happy to help track the issue down provided I'm given some pointers into where to look as I'm really not familiar with the whole JTAG operations.

Thanks in advance !

Best regards, Ben.

Reply to
benh
Loading thread data ...

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.