阿恩德·伯格曼, 来自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