adamgreig / ecpdap

ECPDAP allows you to program ECP5 FPGAs and attached SPI flash using CMSIS-DAP probes in JTAG mode.
Apache License 2.0
59 stars 7 forks source link

Supporting FTDI-based JTAG probes #14

Open SiliconWizard opened 3 years ago

SiliconWizard commented 3 years ago

I know this isn't quite the purpose of this tool, as its name clearly mentions "dap", but I think it would be interesting if your tool could also support FTDI-based (FT232H, FT2232H, ...) JTAG probes. Unfortunately, I don't know enough Rust to be able to help here.

Let me know what you think about this. If you decide it's definitely not going to happen, you can close this ticket. Now if you think that's doable, I think that'd be interesting.

adamgreig commented 3 years ago

I'd be interested in adding support one day, though personally I don't really use the FTDI chips. If you've not seen ecpprog, that works with FTDI devices and has basically the same featureset. In principle the underlying jtagdap library could probably abstract the FTDI devices the same as it does the CMSIS-DAP ones, and this crate wouldn't even need updating.

However, experience from probe-rs suggests linking against libftdi makes crates more annoying to build (especially on Windows) and since I don't use the FTDI devices it's not a high priority for me.

SiliconWizard commented 3 years ago

Thanks for pointing out the ecpprog project. Yours actually has more features: apparently, ecpprog can only program Flash and can't just configure the FPGA the way your tool does (unless I missed it?). It also doesn't implement Flash protect/unprotect as far as I've seen. It's annoying. And it seems a lot less flexible regarding the Flash chips it supports. Being written in C, modifying it should be much easier for me though.

As to FTDI chips, there are a lot of JTAG probes out there using them compared to DAP-based probes, so I think supporting them would be a nice complement.

Meanwhile, would you happen to have any reference of off-the-shelf DAP v2 probes? Looks like there's very few of them available.

adamgreig commented 3 years ago

I can recommend NXP's MCU-Link which is inexpensive and widely available, it's only CMSIS-DAPv1 but it uses USB 2.0 HS so is quite a lot faster than most other debug probes. The hs-probe supports CMSIS-DAPv2 and USB HS, and has open-source firmware in Rust, but it's only available to pre-order at the moment.

SiliconWizard commented 3 years ago

Thanks! Regarding ecpprog, actually the project description is very sparse, but I looked at the source code and it seems to support many more features than is described there. I'll have to test it, but for supporting FTDI-based probes, it should do for now.