Repository navigation
arm: apple: leave the USB-C ports to the OS on machines with a keyboard - #22
Merged
Merged
Conversation
U-Boot runs a Type-C port as a USB 2.0 host only. The SuperSpeed lanes stay on the dummy PIPE and the alternate mode the Type-C controller set up is not followed. On a T6000 MacBook Pro with a Plugable UD-ULTC4K dock attached across a reboot, Linux then finds only the dock's USB 3 hub. Its USB 2.0 hub, the keyboard and mouse behind it and the device on its first SuperSpeed port stay absent. No host-side reset in Linux brings them back; a Type-C reconnect does. A hot plug while Linux runs works. A machine with a built-in keyboard does not need "usb start" to reach the boot prompt, so clear the default preboot there, as the Aurora EFI path already does for the newer SoCs. Machines without a built-in keyboard keep it, and "usb start" still works by hand. Assisted-by: LLM Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Author
|
Tested on the M1 Pro (T6000) with its dock attached, using U-Boot 2026.07-g368465ece17f (aurora-wip + #23 + this PR) installed through update-m1n1.
🤖 Generated with Claude Code |
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.
On a T6000 MacBook Pro (J316s) with a Plugable UD-ULTC4K dock attached across a reboot, Linux finds only the dock's USB 3 hub. Its USB 2.0 hub, the keyboard and mouse behind it, and the SSD on its first SuperSpeed port never appear. Every boot in the journal with the dock attached shows this. A hot plug while Linux runs works.
What was measured on the M1 Pro (fleet9):
So the dock's state is set before Linux. The only pre-Linux code that runs a host session on these ports is U-Boot's default
preboot=usb start: on T6000 the Aurora EFI path that clears it (t8140, t8132, t6040) is not taken, so U-Boot runs dwc3 as a USB 2.0-only host with the SuperSpeed lanes on the dummy PIPE while the dock is in DP alternate mode.This change clears the default preboot on every machine with a built-in keyboard (SPI HID or DockChannel HID), so U-Boot leaves the Type-C ports to the OS. Machines without a built-in keyboard keep
usb start, and it still works by hand.Status: candidate, not yet proven. The A/B that decides it is a boot of this U-Boot on the M1 Pro with the dock attached (bus 1 should hold 0b00:5423 and the SteelSeries devices right after boot). Per the incident rule it must boot on the J616s first; nothing has been installed anywhere.
Build: apple_m1_defconfig with KCFLAGS=-Werror, no warnings. checkpatch flags only the product name Plugable.
🤖 Generated with Claude Code