龍芯CPU現合併到Linux 5.19內核主線中 但無法在硬件上啟動

經過討論之後,Linus Torvalds 今天宣布將龍芯架構代碼合併到 Linux 5.19 內核主線中。然而,由於一些代碼尚未通過審查,而 CPU 架構代碼已經到位,一些關鍵驅動程序尚未登陸,因此 Linux 5.19 無法在所述硬件上啟動。

龍芯CPU現合併到Linux 5.19內核主線中 但無法在硬件上啟動

龍芯(LoongArch)是基於 MIPS64 的 CPU 架構,但是隨着上游的 MIPS64 架構實際上已經消亡,龍芯中科開始着手開發自己的 ISA。 LoongArch 被描述為受到 MIPS64 和 RISC-V 的啟發,並且一些 LoongArch 內核代碼實際上是在重用或密切複製現有的 MIPS 代碼。

今年早些時候,LoongArch 作為主要的系統編譯器被添加到 GCC 12 中。與其他 Arm 或 RISC-V 設計相比,目前這一代龍芯 3A5000 CPU 的性能在這個階段並不算太強悍。

即使 Linux Kernel 5.19 中無法啟動龍芯的系統,但將 LoongArch 引入 Linux 5.19 是有意義的。龍芯 LoongArch CPU 架構的內核移植已經通過了 10 多輪的審查,以獲得 Linux 內核的支持。

開發人員希望將 CPU 架構代碼進行主流化,以便讓他們能夠為 GNU C 庫 (Glibc) 提交 LoongArch 支持代碼。對他們的 Glibc 目標進行主流化首先需要使用可靠的用戶空間 ABI 確定內核支持。但由於 Glibc 2.38 預計在 8 月發布,因此需要為 Linux 5.19 合併 LoongArch,以便有足夠的時間在 7 月發布該版本,並讓 Glibc LoongArch 代碼完成下一個版本的發布。

現在合併 LoongArch 還可以減少 Linux 5.20 等中可能出現的任何樹範圍更改的維護負擔。

所以大部分的 LoongArch 代碼是為 Linux 5.19 合併的,但缺少一些啟動所需的 EFI 代碼,IRQ 驅動程序與 Linux 的 MIPS 代碼共享,但那裡的複雜性意味着尚未準備好使用,以及 PCI Loongson代碼需要通過PCI子系統區域進行修改合併。

目前 Linux 5.19 合併 LoongArch 包含了 21k 行新代碼,還不包括尚未登陸所需的驅動程序。大概到今年夏天晚些時候的 Linux 5.20 內核周期時,其餘所需的驅動程序支持將通過審查,以產生可引導的 LoongArch 系統。