龙芯 CPU 已经一只脚迈入 Linux 5.19
在本周为龙芯 CPU 架构支持进入 Linux 5.19 而进行的疯狂冲刺之后,Linus Torvalds 今天成功地将这个受 MIPS64 启发的中国架构代码合并到了 Linux 主线内核中。然而,由于一些代码尚未通过审查,虽然该 CPU 架构代码已经到位,但一些关键的驱动程序还没有到位,因此 Linux 5.19 还无法龙芯架构上启动。
如果你不太了解这件事的进展,我来补充介绍一下: 龙芯架构 ( LoongArch ) 是由龙芯公司开发的 CPU 架构,长期以来以其基于 MIPS64 的系统而为人所熟知。但是随着上游 MIPS64 架构已经实际消亡,龙芯公司开始开发他们自己的 ISA。龙芯架构自称受到了 MIPS64 和 RISC-V 的启发,但一些龙芯架构的内核代码实际上是重新使用或精密复制自现有的 MIPS 代码。
今年早些时候,龙芯架构被 添加到 GCC 12 中作为主要系统编译器。与其他 Arm 或 RISC-V 设计相比,目前这一代 龙芯 3A5000 CPU 的性能 在现今阶段并不太诱人。不过我们将拭目以待这个中国国产 CPU 架构在未来几年的发展情况。
正如本周早些时候所写的,有迫切的压力促使 龙芯架构进入 Linux 5.19,即使这意味着系统还无法启动。开发人员希望将 CPU 架构的代码主线化,这样他们就能腾出手来为 GNU C 库(Glibc)提交龙芯架构的支持代码。主线化他们的 Glibc 目标首先需要有一个坚实的用户空间 ABI 来解决内核支持。但由于 Glibc 2.38 预计在 8 月发布,龙芯架构需要合并到 Linux 5.19,以便有足够的时间在 7 月发布,才能使龙芯架构的代码赶得上 Glibc 的下一个版本截止线。
现在合并龙芯架构也减少了对 Linux 5.20 中可能出现的任何主线树范围变化的维护负担。
因此,大部分的龙芯架构代码已经出现在 Linux 5.19 中了,但缺少一些启动所需的 EFI 代码,IRQ 驱动与 Linux 的 MIPS 支持共享同一段代码,但由于情况复杂,还不能使用,PCI 部分的龙芯代码需要修改并通过 PCI 子系统区域进行合并。
龙芯架构的合并 对内核来说意味着增加了 21000 行的新代码,这还不包括尚未到达的所需驱动程序。据推测,到今年夏天晚些时候的 Linux 5.20 内核开发周期时,其余所需的驱动支持将会通过审查,从而产生一个可启动的龙芯架构系统。
就在四年前,著名的 Linux 内核开发者 Arnd Bergmann 预测 C-SKY 将是“我们最后一个添加到内核的新 CPU 架构”。C-SKY 是另一个中国架构,当时的想法是所有未来的 CPU 工作都将走向 RISC-V,但现在发现龙芯架构也许将是最后一个添加到 Linux 内核的新 CPU 架构。
via: https://www.phoronix.com/scan.php?page=news_item&px=LoongArch-Merged-Linux-5.19
作者: Michael Larabel 选题:wxy 译者:wxy 校对:wxy