万众期待的Linux对Apple M1的支持终于有了一个初步的结果,最新发布的5.13-rc1开始初步支持M1。这一组patch主要来自Hector Martin:
Hector Martin “marcan”领导了一个叫做Asahi Linux的项目,专门用于对MAC提供Linux支持:
https://asahilinux.org/
根据cover-letter的描述
https://lore.kernel.org/lkml/20210402090542.131194-1-marcan@marcan.st/
这组patch主要完成了如下功能:
- 带earlycon支持的UART (samsung-style) 串口驱动
- Apple中断控制器,支持中断、中断亲和(affinity )和IPI (跨CPU中断)
- SMP (通过标准spin-table来支持)
- 基于simplefb的framebuffer驱动
- Mac Mini的设备树
中断控制器,M1显然没有用GIC,所以除基本的外设外,体系架构相关的新增代码drivers/irqchip/irq-apple-aic.c成为这个patchset里面最大的一个patch,增加了864行代码。
目前这组patch可以实现Mac Mini启动到Framebuffer和串口控制台。当然,仍然任重道远。如果您需要尝试,可以根据文档:
https://github.com/AsahiLinux/docs/wiki/Developer-Quickstart
来进行尝试。
根据我们在芯片公司的工作经验,它目前的状态应该还是一个非常非常非常(重要的事情说三篇)早期的阶段,类似于我们拿到了一个FPGA,开始bring-up Linux了,会先启动一个串口、中断控制器或者可能一个基本的Framebuffer。也就是说,你不能指望这个阶段的Linux是真正可用的。
但是毕竟这个工作已经开始了,我们还是会继续期待。
本文转载自微信公众号「Linux阅码场」,可以通过以下二维码关注。转载本文请联系Linux阅码场公众号。