Email or username:

Password:

Forgot your password?
Top-level
TellowKrinkle

@marcan Kind of curious, how do other laptops' USB-C ports work on Linux?

1 comment
Hector Martin

@TellowKrinkle I'm not even sure if a full unified PHY for all protocols including USB4 like Apple's exists for any other vendor, and if it does (recent AMD stuff maybe?), it's all managed by firmware/ACPI and built to work with less tightly coupled drivers on the OS side.

Simpler implementations that just do USB3 and nothing else have the PHY managed by the xHCI controller and there is no mode switching or PHY driver. A basic DP/USB3 implementation as might exist in many non-Thunderbolt laptops and some recent embedded platforms would just use a dumb external mux to switch the data lines (which is what the simplistic Linux model is designed to work with, if it isn't just managed by ACPI). Again no PHY drivers, just a trivial mux driver. Intel Thunderbolt stuff is managed by external Thunderbolt controllers with piles of firmware and ACPI glue on the OS side, and again just looks like discrete controllers to the OS.

We are certainly the first platform trying to shove full OS-managed Type-C USB4 PHY support into Linux. Also I'm pretty sure Apple is the only vendor in existence that does full USB4+TBT3+DP+dual-role USB2/3 (including device role / gadget mode). Don't think any other laptop can do that (plug in a Mac into another non-TBT/USB4 host and the Mac enumerates as a SuperSpeed ethernet interface and exposes network services like SMB).

It doesn't help that Apple is using DesignWare USB3 controllers which are one of the worst in terms of quirks and hacks required. The list of special case hack toggles and properties in the devicetree bindings for dwc3 is ridiculous.

@TellowKrinkle I'm not even sure if a full unified PHY for all protocols including USB4 like Apple's exists for any other vendor, and if it does (recent AMD stuff maybe?), it's all managed by firmware/ACPI and built to work with less tightly coupled drivers on the OS side.

Simpler implementations that just do USB3 and nothing else have the PHY managed by the xHCI controller and there is no mode switching or PHY driver. A basic DP/USB3 implementation as might exist in many non-Thunderbolt laptops...

Go Up