Прорыв в поддержке Apple Silicon
На почтовый список рассылки Linux Kernel mailing list была отправлена серия из 19 патчей, разработанных ведущим разработчиком Asahi Linux Свеном Петером (Sven Peter). Эта работа позволяет основному (mainline) ядру Linux официально поддерживать контроллеры USB4 и Thunderbolt на процессорах Apple M1, M2 и M3. До этого момента поддержка оставалась в стороннем дереве Asahi Linux, но теперь усилия по интеграции в основное ядро выведены на новый уровень.
Техническая сложность: архитектура ACIO
Интеграция потребовала глубокого понимания специфичной для Apple архитектуры. Каждый порт USB4 Type-C оснащен блоком ACIO (Apple Converged I/O), который включает сопроцессор Cortex-M3 и аппаратный маршрутизатор USB4. Ключевая особенность заключается в том, что NHI (Native Host Interface) и DART (Device Address Resolution Table) IOMMU являются частью этого блока, но не доступны как независимые устройства. Основная шина SoC имеет доступ только к 16 МБ окну в MMIO-пространство ACIO, пока работает сопроцессор.
Текущие возможности и ограничения
Несмотря на успех, поддержка остается частичной. В настоящее время драйвер позволяет использовать только XDomain-соединения и туннели USB3 через USB4. Функции туннелирования PCIe и DisplayPort, а также режимы сна (suspend) пока не реализованы. Разработчикам даже пришлось добавить блокировку сна при активном подключении, чтобы избежать ошибок SError при пробуждении.
| Функция | Статус в текущих патчах | Примечание |
|---|---|---|
| USB3 через USB4 | Работает | Базовая передача данных |
| XDomain | Работает | Прямое соединение устройств |
| PCIe Tunneling | Не поддерживается | Требуется обратная разработка |
| DisplayPort Tunneling | Не поддерживается | Требуется обратная разработка |
| Suspend/Resume | Не поддерживается | Риск ошибок SError |
Планы на будущее
Патчи уже включают узлы устройства (device tree nodes) для M1 и M2. Поддержка M3 будет добавлена в виде отдельных нод после того, как остальная часть стека будет полностью интегрирована в мейнстрим, хотя базовый код уже успешно протестирован на этих чипах. Дальнейшая работа сосредоточена на обратной разработке протоколов для включения PCIe и DisplayPort, а также на реализации корректного управления питанием.
Источник: Phoronix ↗
