I have started reverse-engineering to get it to run under Linux.
I've been able to upload the first firmware (FX2LP one) and I'm currently working on FPGA firmware upload.
I had to do was to understand Cypress' SPT file format and generate an IHX file from it, and upload it using existing FX2 development program (cycfx2prog, there is also fxload but it refused to parse IHX files I generated for some reason).
Some random notes on FX2 firmware:
- SPT file contains actually 2 firmwares, of which the first seems to be a boot loader from Cypress as it implements bmRequest = 0xA3.
- CyUSB.dll contains an embedded firmware in IHX format, but it probably isn't used (it's not even mentioned in CyUSB's documentation AFAICT).
Some random notes on FPGA firmware:
- There doesn't seem to be a documentation on the RBF file format (it's the first time I look into FPGAs, so it might not be news for no-one but me)
- Progress on this part will be slower than FX2 firmware as I need to understand the ASM code running on the FX2:
- it uses endpoint 1 (bulk, out)
- with full 64 bytes requests only (smaller requests seems to be discarded by the firmware)
- starting with a byte telling what to do with the other 63 bytes (but I haven't been further than the first byte yet, so I don't know if the remaining bytes contain further commands/options)
If progress updates are welcome, I'll happily continue posting/editing them here.
Otherwise, feel free to delete/edit this post, I'll get the message.