Open mossmann opened 2 weeks ago
@cyber-murmel I'm interested in your thoughts on this proposal.
I think this proposal is sound! Saturn-V shouldn't be as big of an issue, since the RP2040 (and QtPy iirc) for example use UF2 anyway.
Create a new vendor request for board identification in Apollo.
Would this also bump the USB API number?
Checking the product string might cause outdated software in the future to fail detect the debugger, if the name changes, but that's a very fringe case.
Seems all fine by me!
Yes, the new vendor request would bump the USB API version.
Currently we have only one VID/PID for all Apollo platforms. We use
bcdDevice
to indicate Cynthion hardware revision, but we also overloadbcdDevice
with board identification. There are some problems with this:bcdDevice
for hardware revision, so the scheme doesn’t really support more than one shipping Apollo product.bcdDevice
in the same way, so a flashing utility can’t tell what board a Saturn-V device is. There is little room to do anything different in Saturn-V, and any change would not be pushed to Cynthions that have already been flashed at the factory.Proposal:
1d50:615c
for Cynthion only.1209:0010
(one of the pid.codes test PIDs) for non-Cynthion Apollo devices. Continue to use the other pid.codes test PIDs for LUNA but add a note to the LUNA documentation saying that1209:0010
is recommended to be used only for Apollo.1209:0010
.bcdDevice
for board identification. Host code will look for this type of board identification only if the USB API is older. We may remove that feature from host code in the future.The use of
1209:0010
requires that we additionally qualify Apollo devices, for example by checking for the word "Apollo" in the product string or a vendor request, but we already want to do that anyway. See #61 and #47.