Zusammenfassung:
Dank der Arbeit der Entwickler des Asahi Linux-Projekts wird der Linux-Kernel bald das USB4-Protokoll auf Geräten mit M1/M2/M3-Chips unterstützen. Dieser Funktionssatz war bereits im von Asahi Linux verwalteten Downstream-Code vorhanden. Die Bedeutung dieser Einreichung besteht hauptsächlich darin, die relevanten Treiber für den offiziellen Einstieg in die Linux-Hauptlinie zu fördern.

Apples USB4-Architektur unterscheidet sich von gewöhnlichen PCs:
Das von Apple in Geräten mit M-Chips bereitgestellte USB4-Protokoll unterscheidet sich von gewöhnlichen PCs. Jede USB4-Typ-C-Schnittstelle von Apple enthält ein Hardwaremodul namens ACIO, das den Cortex-M3-Coprozessor, USB4-Host-Routing, native Host-Steuerungsebene und DART IOMMU integriert.
Diese Hardware ist nicht ständig dem Hauptprozessor ausgesetzt. Der Hauptprozessor kann nur über das 16-MiB-MMIO-Fenster auf interne Geräte zugreifen, nachdem der ACIO-Coprozessor ausgeführt wird. Daher muss der Treiber das ACIO-Modul entsprechend dem Schnittstellenverbindungsstatus einschalten, den RTKit-Coprozessor starten und dann DART- und NHI-Geräte dynamisch erstellen.
Beim Trennen der Schnittstelle muss das Gerät zerstört und in umgekehrter Reihenfolge ausgeschaltet werden. Dies ist auch der Hauptgrund dafür, dass es für Apple-Geräte mit M-Chips lange Zeit schwierig war, Linux-Upstream-Unterstützung zu erhalten.
NHI-Treiber erfordern viel Apple-spezifische Verarbeitung:
Der von Asahi Linux-Ingenieuren eingereichte Patch fügt mehr als 1.000 Zeilen Treibercode für das Apple Thunderbolt-Protokoll hinzu. Der Patch modifiziert auch den bestehenden Thunderbolt-Kern des Linux-Kernels. Apple NHI ermöglicht jedem Ring ein unabhängiges Interrupt-Design und sein Registerlayout, die Ringkonfiguration und die Terminalverwaltung unterscheiden sich vom universellen USB4-Controller.
In M3 implementiert Apple eine strengere Verwaltung und stellt bis zu 24 IOMMU-Einträge für verschiedene TX/RX-Ringe bereit, um die Isolierung zwischen verschiedenen Datenkanälen zu verbessern. Apple-Hardware implementiert auch einige der USB3-Bandbreitenzuweisungsregister, die vom vorhandenen USB4-Code von Linux erwartet werden, nicht, sodass der von den Linux-Ingenieuren von Asahi eingereichte Patch ausdrücklich Quirk hinzugefügt hat, um den entsprechenden Prozess zu umgehen.
Die Thunderbolt-Unterstützung ist noch nicht vollständig:
Der erste Code-Batch unterstützt derzeit nur XDomain-Host-zu-Host-Verbindungen und USB3-über-USB4-Tunneling. PCIe-Geräte-Tunneling und DP-Video-Tunneling sind noch nicht abgeschlossen. Daher kann die ordnungsgemäße Funktion von Szenarien wie Thunderbolt-Dockingstationen, externen Grafikkarten, Hochgeschwindigkeits-PCIe-Geräten und Monitoren, die über das Thunderbolt-Protokoll angeschlossen sind, immer noch nicht garantiert werden.
Der von Asahi Linux-Ingenieuren eingereichte Patch wurde auf der M1/M2/M3-Plattform entwickelt und getestet, befindet sich jedoch derzeit in der Überprüfungsphase der Linux-Kernel-Mailingliste und wurde noch nicht offiziell in den Linux-Kernel integriert.
Kommentare