'ecpdap probes' doesn't detect some CMSIS-DAP probes
Closed this issue · 5 comments
Context:
- Windows 7/64
- onboard DAP probe (based on STM32F103) on the following board: https://github.com/wuxx/Colorlight-FPGA-Projects
(OpenOCD recognizes it and identifies it like so:
Info : CMSIS-DAP: SWD Supported
Info : CMSIS-DAP: JTAG Supported
Info : CMSIS-DAP: FW Version = 0254
Info : CMSIS-DAP: Serial# = 07000001066dff343832434257102940a5a5a5a597969908
Info : CMSIS-DAP: Interface Initialised (JTAG)
)
Note that the ecpdap works with this probe anyway (just doesn't auto-detect it) if I provide the USB VID/PID with '-p 0D28:0204' along with other commands.
Thanks for the report! Glad to hear it works with the Colorlight board probe. The scanning for probes only uses libusb, so my guess is on Windows without a libusb-compatible driver set up for the probe it doesn't find it, but when you specify the VID/PID directly it's able to open it using the HID interface instead. Could you try RUST_LOG=ecpdap::probe=trace scan
(edit: or otherwise set the environment variable RUST_LOG to ecpdap::probe=trace
, not sure how you do this on Windows) and paste the result here just to confirm?
The fix will be to also scan for devices using HID and combine the results, so it should be fixable.
ecpdap_windows_x86_64.exe -p 0D28:0204 scan
2021-01-20T17:05:59.351Z TRACE ecpdap::probe > Opening probe: 0d28:0204: Unknown
2021-01-20T17:06:01.061Z TRACE ecpdap::probe > Attempting to open in CMSIS-DAPv1 mode: 0d28:0204: Unknown
2021-01-20T17:06:01.081Z DEBUG ecpdap::probe > Successfully opened v1 probe: ProbeInfo { name: None, vid: 3368, pid: 516, sn
: None, v1_only: false }
2021-01-20T17:06:01.081Z TRACE ecpdap::probe > Draining pending data from probe
2021-01-20T17:06:01.091Z TRACE ecpdap::probe > TX: [00, FF]
2021-01-20T17:06:01.091Z TRACE ecpdap::probe > RX: [00, 02, 40, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 0
0, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00]
2021-01-20T17:06:01.091Z TRACE ecpdap::probe > TX: [00, F0]
2021-01-20T17:06:01.091Z TRACE ecpdap::probe > RX: [00, 01, 13, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 0
0, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00]
2021-01-20T17:06:01.091Z TRACE ecpdap::probe > TX: [02, 02]
2021-01-20T17:06:01.091Z TRACE ecpdap::probe > RX: [02, 02, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 0
0, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00]
2021-01-20T17:06:01.091Z TRACE ecpdap::probe > TX: [01, 00, 01]
2021-01-20T17:06:01.101Z TRACE ecpdap::probe > RX: [01, 00, 01, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 0
0, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00]
2021-01-20T17:06:01.101Z TRACE ecpdap::probe > TX: [11, 40, 42, 0F, 00]
2021-01-20T17:06:01.101Z TRACE ecpdap::probe > RX: [11, 00, 42, 0F, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 0
0, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00]
2021-01-20T17:06:01.101Z TRACE ecpdap::probe > TX: [14, 01, 45, FF]
2021-01-20T17:06:01.101Z TRACE ecpdap::probe > RX: [14, 00, 45, FF, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 0
0, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00]
2021-01-20T17:06:01.101Z TRACE ecpdap::probe > TX: [14, 03, 01, FF, 41, FF, 02, FF]
2021-01-20T17:06:01.111Z TRACE ecpdap::probe > RX: [14, 00, 01, FF, 41, FF, 02, FF, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 0
0, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00]
2021-01-20T17:06:01.111Z TRACE ecpdap::probe > TX: [14, 04, 80, 00, 00, 00, 00, 00, 00, 00, 00, 80, 00, 00, 00, 00, 00, 00,
00, 00, 80, 00, 00, 00, 00, 00, 00, 00, 00, 81, 00]
2021-01-20T17:06:01.111Z TRACE ecpdap::probe > RX: [14, 00, 43, 10, 11, 41, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 81, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 0
0, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00]
2021-01-20T17:06:01.111Z TRACE ecpdap::probe > TX: [14, 04, 80, FF, FF, FF, FF, FF, FF, FF, FF, 80, FF, FF, FF, FF, FF, FF,
FF, FF, 80, FF, FF, FF, FF, FF, FF, FF, FF, C1, 01]
2021-01-20T17:06:01.111Z TRACE ecpdap::probe > RX: [14, 00, 00, 00, 00, 00, FF, FF, FF, FF, FF, FF, FF, FF, FF, FF, FF, FF,
FF, FF, FF, FF, FF, FF, FF, FF, 01, FF, FF, C1, 01, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 0
0, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00]
2021-01-20T17:06:01.111Z TRACE ecpdap::probe > TX: [14, 02, 41, FF, 01, FF]
2021-01-20T17:06:01.111Z TRACE ecpdap::probe > RX: [14, 00, 41, FF, 01, FF, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 0
0, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00]
2021-01-20T17:06:01.111Z TRACE ecpdap::probe > TX: [14, 02, 42, FF, 02, FF]
2021-01-20T17:06:01.121Z TRACE ecpdap::probe > RX: [14, 00, 42, FF, 02, FF, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 0
0, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00]
2021-01-20T17:06:01.121Z TRACE ecpdap::probe > TX: [14, 04, 80, 00, 00, 00, 00, 00, 00, 00, 00, 80, 00, 00, 00, 00, 00, 00,
00, 00, 80, 00, 00, 00, 00, 00, 00, 00, 00, 81, 00]
2021-01-20T17:06:01.121Z TRACE ecpdap::probe > RX: [14, 00, 01, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 81, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 0
0, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00]
2021-01-20T17:06:01.121Z TRACE ecpdap::probe > TX: [14, 04, 80, FF, FF, FF, FF, FF, FF, FF, FF, 80, FF, FF, FF, FF, FF, FF,
FF, FF, 80, FF, FF, FF, FF, FF, FF, FF, FF, C1, 01]
2021-01-20T17:06:01.121Z TRACE ecpdap::probe > RX: [14, 00, 00, FF, FF, FF, FF, FF, FF, FF, FF, FF, FF, FF, FF, FF, FF, FF,
FF, FF, FF, FF, FF, FF, FF, FF, 01, FF, FF, C1, 01, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 0
0, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00]
2021-01-20T17:06:01.121Z TRACE ecpdap::probe > TX: [14, 02, 41, FF, 01, FF]
2021-01-20T17:06:01.131Z TRACE ecpdap::probe > RX: [14, 00, 41, FF, 01, FF, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 0
0, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00]
Detected JTAG chain, closest to TDO first:
- 0: 0x41111043 ECP5 LFE5U-25 [IR length: 8]
2021-01-20T17:06:01.131Z TRACE ecpdap::probe > TX: [03]
2021-01-20T17:06:01.131Z TRACE ecpdap::probe > RX: [03, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 0
0, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00]
2021-01-20T17:06:01.131Z TRACE ecpdap::probe > TX: [01, 00, 00]
2021-01-20T17:06:01.131Z TRACE ecpdap::probe > RX: [01, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 0
0, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00]
With your explanation, that's probably just it! The onboard probe apparently has support for both the HID driver and libusb driver (and there are indeed two devices installed for it with separate drivers), but OpenOCD can only detect it in HID mode, so I guess the probe's firmware doesn't completely support direct bulk access.
I've just pushed a commit to master that now autodetects HID-only probes, if you get some time please let me know if that fixes your issue.
Thanks, it appears to work.
Found 1 CMSIS-DAP probe:
0d28:0204:07000001066dff343832434257102940a5a5a5a597969908 DAPLink CMSIS-DAP
Great, thanks! I'll do a new release with these changes.