Trigger DFU on any Type-C data port, not just the UART-harness port#7
Merged
Conversation
restorekit gated DFU-capable ports on the `uart-hpm-rids` device-tree property, but that's the serial/UART debug-harness subset (often a single port), not the set of ports that can send a DFU VDM. Every USB-C data port's HPM controller can send the Apple vendor DFU/reboot Vendor Defined Message — verified by driving each port controller into DBMa debug mode. So a target cabled to any port other than the harness one was invisible to `--port` and to detection. Mark every host port DFU-capable: `host_ports()` entries are exactly the HPM controllers backed by a USB data controller, and all of those can trigger DFU. Power-only PD controllers (e.g. MagSafe) have no USB controller, so they're already excluded and won't resolve as `--port` targets. `uart-hpm-rids` now only selects the Auto/default port and gates the serial console; rename `dfu_capable_rids` to `default_dfu_rids` to match. Also add a hidden `probe-ports` command that enters and leaves each port controller's DBMa mode and reports which ports accept the DFU/VDM path — the non-destructive diagnostic used to confirm the above.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
restorekit gated DFU-capable ports on the
uart-hpm-ridsdevice-tree property, but that's the serial/UART debug-harness subset (often a single port), not the set of ports that can send a DFU VDM. Every USB-C data port's HPM controller can send the Apple vendor DFU/reboot Vendor Defined Message — verified by driving each port controller into DBMa debug mode. So a target cabled to any port other than the harness one was invisible to--portand to detection.Mark every host port DFU-capable:
host_ports()entries are exactly the HPM controllers backed by a USB data controller, and all of those can trigger DFU. Power-only PD controllers (e.g. MagSafe) have no USB controller, so they're already excluded and won't resolve as--porttargets.uart-hpm-ridsnow only selects the Auto/default port and gates the serial console; renamedfu_capable_ridstodefault_dfu_ridsto match.Also add a hidden
probe-portscommand that enters and leaves each port controller's DBMa mode and reports which ports accept the DFU/VDM path — the non-destructive diagnostic used to confirm the above.