阿恩德·伯格曼, 來自arm-soc 分支的Linux 核心開發人員和SUSE 的核心套件管理器,發布了 建議 他把它放在桌子上 刪除基於 GCC 的內核的問題 並建立程式碼工具來支援舊版 ARM CPU、其相關的 ABI、指令集和核心功能。
阿恩德·伯格曼提到 提案的基礎 停止支持 對於 ARM CPU 老在內核l 是由於 GCC 中止, 因為最新的 GCC 分支不再支援建議刪除的一些 CPU,而其他 CPU 計劃在未來版本中刪除。
提到透過應用這個, 將促進編譯器中新功能的現代化和實現。和如果核心支援的最低 GCC 版本增加(目前至少需要 GCC 5.1 版本來編譯核心),則刪除對 GCC 體系結構的支援將需要從核心中刪除該體系結構。
架構、晶片與擴充之間 建議從內核中刪除的內容如下:
- ARMv3: 在 GCC-9 中已刪除,因此隨著最低編譯器版本的增加,它最終將從核心中刪除。
- ARMv4: 用於 StrongARM 和 FA526 CPU,仍在某些板上使用。即使是最新的晶片也已經有近 20 年的歷史了。支援它們的最後一個 Debian 版本是 Lenny (5.0)。仍支援六個具有 ARMv4T 核心的 SoC 系列(ARM720T、ARM920T 和 ARM922T)。雖然它們老了,但比ARMv4擁有更多的用戶和開發者。 Debian Stretch (9.0) 是最後一個支持它們的。
- ARMv5: 大約三分之一的支援平台使用 ARMv5,但大多數平台的支援已接近結束。
- ARMv6 早期: 包括NXP i.MX1136和OMAP0xx中的ARM31r24p,主要是諾基亞N8xx平板電腦。需要特殊的技巧來支援具有 SMP 的核心。有一個補丁可以將 ARMv6 從相容 ARMv7 更改為相容 ARMv5,但還需要更多工作。
- ARMv6K
ARMv7-M: Cortex-M3/M4/M7 是唯一不支援 MMU 的內核,目前有 5 個微控制器平台。它們可能會在 2027 年被刪除,但 GCC 仍然需要在其他作業系統上支援它們。 - iWMMXt: iWMMXt 沒有已知的剩餘用戶,且對 ARMv7 PJ4 CPU 的支援已被刪除。僅 Intel/Marvell PXA 和 MMP1 支援。
- ARMv5 大端核心 (BE32): 只有一款 SoC 使用它,即 Intel IXP4xx。 Debian 在小端模式下支援它,但驅動程式在 LE 中損壞。
- ARMv7 大端核心 (BE8)
- ATAG 前的 Param_struct: 這是2001年貶值的,「5年」就淘汰了,這已經發生了。
- 基於 ATAGS 的板檔: 經過上述清理後,29 個 SoC 平台上還剩下 10 個板子檔案。
- OABI 內核: 如今幾乎每個人都使用 EABI,而 OABI 支援作為目標在 GCC-4.8 中被刪除。核心仍然允許使用 -mabi=apcs-gnu 建構成 OABI,預設在 ARMv4/ARMv5 核心中使用。
- OABI 相容模式: 這允許使用 EABI 核心運行 OABI 二進位。
- 西北野生動物保護協會
- 高級記憶: 大多數 ARM 機器可以在沒有 highmem 支援的情況下使用 CONFIG_VMSPLIT_2GB 來定址高達 2GB 的實體記憶體。 15 年出現了具有 Cortex-A2012 的大型機器,很快就被 64 位元晶片所取代。
- 稀疏: 有關於取消對傳統稀疏記憶體的支援的討論。這也涉及需要 highmem 來使用其所有 RAM 的機器
- RISCPC: 這是受支援的最舊的平台,最終將被刪除,因為由於 ARMv9 的刪除,它無法與 GCC-3 或更高版本一起使用。
- SA1100,行人天橋: 其他基於 StrongARM 的平台,僅與懷舊相關。
- 雙子座,莫克薩特: 兩者都使用 Faraday FA526 CPU 內核,與 StrongARM 一樣,它使用拇指實現 ARMv4 而不是 ARMv4T。這些晶片也已經有20多年的歷史了,但核心程式碼已經更新,不構成維護負擔。
- PXA板檔: 兩年前的PXA程式碼中還剩下兩個盤檔沒有刪除,希望對轉DT有幫助
- OMAP1: 唯一不支援 DT 的 ARMv4T/ARMv5 平台,使其成為某個時候被刪除的目標。
- Nspire、AT91RM9200、CLPS711X、EP93xx、iMX1
- OMAP24xx
- iMX31,配備 1136r0 的 realview/積分器
- S3C64xx(Cragganmore): 這是唯一不帶 devicetree 支援的 ARMv6K 板,且板檔案包含的複雜性與所有其他板檔案的總和相似。 arch/arm/mach-s3c/Kconfig.s3c64xx 將其列為明年初刪除,這將允許對平台基礎設施和驅動程式進行大規模清理。
- Orion5x、mv78xx0、鴿子板文件: 與 PXA 一樣,這些都在 DT 轉換方面等待進展,但除了 mv78xx0 中的一些小修復之外什麼都沒有發生。相比之下,Debian 以缺乏用戶為由刪除了 orion5x 核心二進位文件,因此完成的可能性似乎要小得多。
- iMX35、WM8750、AST2500、BCM2835: 這四個都是 ARMv6K 平台,並且得到了很好的支持,儘管只有 AST2500 和 BCM2835 擁有活躍的用戶群。
- Stm32f4/f7/h7 微控制器: 隨著 ST 繼續支援其現有客戶,這些是唯一能夠持續發展的非 MMU Arm 晶片。
最後,應該提到的是 該計劃仍處於 RFC 階段,即發布供社群討論。如果獲得批准,預計將於 6.12 月開始在 Linux 4 核心中刪除舊的 ARM 處理器。第一批被刪除的候選人是 ARMv4(不刪除 ARMv32T)、iWMMXt、BEXNUMX 和 OABI。
來源: https://lkml.org