Kernel Linux recebe patches iniciais para suporte a USB4 e Thunderbolt nos chips Apple M1, M2 e M3

Escrito por
Emanuel Negromonte
Emanuel Negromonte é Jornalista, Mestre em Tecnologia da Informação e atualmente cursa a segunda graduação em Engenharia de Software. Com 14 anos de experiência escrevendo sobre...

Conectividade de alta velocidade no pinguim!

O desenvolvedor Sven Peter enviou uma nova série de 19 patches para a lista de discussão do Kernel Linux, com o objetivo de implementar o suporte inicial às tecnologias USB4 e Thunderbolt nos SoCs Apple Silicon das famílias M1, M2 e M3. A proposta representa um avanço significativo para projetos de portabilidade, como o Asahi Linux, que buscam habilitar todos os recursos de hardware dos Macs recentes.

A submissão detalha a arquitetura complexa que a Apple utiliza para gerenciar as portas Type-C e estabelece a base para que dispositivos de alta velocidade funcionem nativamente sob o pinguim.

O que isso muda na prática

Para os usuários que rodam ou pretendem rodar Linux em computadores Mac equipados com processadores M1, M2 ou M3, o suporte a USB4 e Thunderbolt é um dos recursos mais aguardados. Na prática, essa implementação inicial permitirá o funcionamento de conexões diretas entre computadores (XDomain) e o uso de dispositivos USB 3.x através do encapsulamento do USB4 (USB3-via-USB4 tunnels).

Isso significa que hubs e discos externos de alta velocidade que dependem dessa tecnologia começarão a ser reconhecidos pelo sistema operacional.

A arquitetura do ACIO e os desafios técnicos

y4YqRApJ linux suporte usb4 thunderbolt apple m1 m2 m3 1
Kernel Linux recebe patches iniciais para suporte a USB4 e Thunderbolt nos chips Apple M1, M2 e M3 3

De acordo com as informações enviadas por Sven Peter na lista de discussão, a Apple utiliza um bloco de hardware chamado ACIO (Apple Converged I/O) em cada porta Type-C compatível com USB4. Esse bloco contém um coprocessador Cortex-M3 dedicado e o hardware que atua como roteador USB4.

A controladora de host (NHI) e a unidade de gerenciamento de memória (DART IOMMU) também fazem parte desse bloco ACIO. O Kernel Linux, ao invés de enxergar esses componentes como dispositivos independentes e sempre acessíveis, obtém apenas uma janela de 16 MiB no espaço de endereçamento de memória (MMIO) do ACIO enquanto o coprocessador está em execução.

Isso exigiu uma abordagem não convencional no código. O driver desenvolvido precisa inicializar o coprocessador, popular os nós do DART e NHI dinamicamente e registrá-los com o gerenciador de conexões em software do subsistema Thunderbolt, removendo-os antes de desligar o ACIO.

Além disso, a inicialização obedece a uma ordem estrita: o ACIO só pode ser iniciado depois que a camada física (PHY) da porta Type-C for configurada para USB4/Thunderbolt, necessitando de um interruptor (switch) dedicado no código.

Limitações da implementação inicial

Como se trata de um suporte em estágio inicial, o desenvolvedor deixou claro que alguns recursos críticos ainda não estão disponíveis e exigirão engenharia reversa adicional:

  • Tunelamento PCIe e DisplayPort: Ainda não são suportados. Conectar um monitor diretamente via cabo Thunderbolt ou usar uma GPU externa (eGPU) baseada em PCIe não funcionará nesta etapa.
  • Suspensão do sistema: O recurso de suspensão (suspend) não é suportado enquanto houver uma conexão ativa. O sistema precisará bloquear a suspensão nesses cenários para evitar erros graves no kernel (SError) ao tentar retornar à atividade.

Próximos passos

O código enviado ainda é uma proposta e depende de várias outras séries de patches que estão em revisão na comunidade, como o controlador de reset do Apple CIO e o suporte para o ATCPHY. O hardware do M3 já foi testado com sucesso usando o código atual, embora os nós específicos de device tree para o M3 ainda precisem ser enviados posteriormente.

Se revisada e aceita pelos mantenedores, como Greg Kroah-Hartman e Mika Westerberg, a implementação será integrada à árvore do subsistema Thunderbolt antes de chegar à linha principal do Kernel Linux.

Compartilhe este artigo
Emanuel Negromonte é Jornalista, Mestre em Tecnologia da Informação e atualmente cursa a segunda graduação em Engenharia de Software. Com 14 anos de experiência escrevendo sobre GNU/Linux, Software Livre e Código Aberto, dedica-se a descomplicar o universo tecnológico para entusiastas e profissionais. Seu foco é em notícias, tutoriais e análises aprofundadas, promovendo o conhecimento e a liberdade digital no Brasil.