虽然越来越多的Apple Silicon代码正在进入主线 Linux 内核,但许多重要的功能至今仍处于开发中或在 Asahi Linux 子存储库中作为树外代码。其中一项对于现代计算非常重要的功能,目前正在努力集成到主线内核中,那就是在 Linux 上启用Apple Silicon设备上的 USB3 功能。
Sven Peter 继续努力,将更多的Apple Silicon支持集成到主线内核中。他最近一直专注于使苹果硅 USB3 支持工作。
今天发布了针对Apple Silicon USB3 支持的最新补丁,包括 DWC3 驱动程序。与之前的补丁相比,增加了各种修复和其他小改动。
虽然 Linux DWC3 驱动程序相当常见,多个厂商依赖 Synopsys DesignWare Core USB 3.0 控制器 IP,但为了使其在苹果硬件上工作,需要进行一些更改。添加Apple Silicon
DWC3 粘合层驱动解释:
“Apple Silicon SoC(如 M1)上存在的 dwc3 控制器需要在其 PHY 和 Type-C 控制器之间同步执行特定的操作顺序。具体来说,PHY 必须首先完成初始启动(这需要了解通道模式和方向),然后 dwc3 才能启动,并最终完成 PHY 配置。此外,由于硬件问题导致新设备无法识别,以及 PHY 在 dwc3 运行时无法切换通道模式或方向,因此每次更换电缆时,都必须拆下 dwc3 并重新初始化。
这些控制器在常见的 dwc3 区域之后还有一个苹果特有的 MMIO 区域,其中一些控制需要更新。PHY 启动和关闭还需要启用 SUSPHY,以便端口能够正确工作。
在将来,这个驱动程序还将获得通过 USB4 隧道支持 USB3 的功能,这需要额外的调整。”
希望Apple Silicon现代 USB 支持为 Linux 内核主线做好准备的时间不会太长。
转自 Linux Patches Updated For Apple Silicon USB3 Support – Phoronix
Linuxeden开源社区