龍芯CPU現合併到Linux 5.19內核主線中但無法在硬件上啟動
經過討論之後,Linus Torvalds 今天宣布將龍芯架構代碼合併到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 系統。