Riassunto:
Grazie al lavoro degli sviluppatori del progetto Asahi Linux, il kernel Linux supporterà presto il protocollo USB4 sui dispositivi con chip M1/M2/M3. Questo insieme di funzioni esisteva precedentemente nel codice downstream gestito da Asahi Linux. Il significato di questa proposta è principalmente quello di promuovere i driver rilevanti per entrare ufficialmente nella linea principale di Linux.

L'architettura USB4 di Apple è diversa dai normali PC:
Il protocollo USB4 fornito da Apple nei dispositivi dotati di chip M è diverso dai normali PC. Ciascuna interfaccia Apple USB4 Type-C contiene un modulo hardware chiamato ACIO, che integra il coprocessore Cortex-M3, il routing host USB4, il piano di controllo host nativo e DART IOMMU.
Questo hardware non è continuamente esposto al processore principale. Il processore principale può accedere ai dispositivi interni solo tramite la finestra MMIO da 16 MiB dopo che il coprocessore ACIO è in esecuzione. Pertanto, il driver deve accendere il modulo ACIO in base allo stato di connessione dell'interfaccia, avviare il coprocessore RTKit e quindi creare dinamicamente i dispositivi DART e NHI.
Quando l'interfaccia è disconnessa, il dispositivo deve essere distrutto e spento nell'ordine inverso. Questo è anche il motivo principale per cui per molto tempo i dispositivi Apple dotati di chip M hanno avuto difficoltà ad ottenere il supporto upstream di Linux.
I driver NHI richiedono molta elaborazione specifica di Apple:
La patch presentata dagli ingegneri di Asahi Linux aggiunge più di 1.000 righe di codice del driver per il protocollo Apple Thunderbolt. La patch modifica anche il core Thunderbolt esistente del kernel Linux. Apple NHI consente a ciascun Ring di avere un design di interruzione indipendente e il layout del registro, la configurazione dell'anello e la gestione del terminale sono diversi dal controller universale USB4.
In M3, Apple implementa una gestione più rigorosa e fornisce fino a 24 voci IOMMU per diversi anelli TX/RX per migliorare l'isolamento tra i diversi canali dati. Inoltre, l'hardware Apple non implementa alcuni dei registri di allocazione della larghezza di banda USB3 previsti dal codice USB4 esistente di Linux, quindi la patch inviata dagli ingegneri di Asahi Linux ha aggiunto specificatamente Quirk per aggirare il relativo processo.
Non è ancora completo il supporto Thunderbolt:
Il primo batch di codice attualmente supporta solo le connessioni XDomain da host a host e il tunneling USB3 su USB4. Il tunneling dei dispositivi PCIe e il tunneling video DP non sono ancora completi. Pertanto, non è ancora garantito il corretto funzionamento di scenari come docking station Thunderbolt, schede grafiche esterne, dispositivi PCIe ad alta velocità e monitor collegati tramite il protocollo Thunderbolt.
La patch inviata dagli ingegneri di Asahi Linux è stata sviluppata e testata sulla piattaforma M1/M2/M3, ma è attualmente in fase di revisione della mailing list del kernel Linux e non è stata ancora ufficialmente incorporata nel kernel Linux.
Commenti