アルンド・バーグマン arm-soc ブランチの Linux カーネル開発者であり、SUSE のカーネル パッケージのマネージャーである Linux カーネル開発者が、 提案 彼はそれをテーブルの上に置きます GCC ベースのカーネルの削除の問題 また、古い ARM CPU、それに関連する ABI、命令セット、カーネル機能をサポートするコード ツールを作成します。
アルンド・バーグマン氏は次のように述べています。 提案の基礎 サポート終了の件 ARM CPU用 カーンの古いl は GCC での中止によるもので、 削除が提案されている CPU の一部は最新の GCC ブランチではサポートされなくなり、その他の CPU は将来のリリースで削除される予定です。
これを応用すると、 コンパイラの最新化と新しい機能の実装が容易になります。そしてGCC でアーキテクチャのサポートを削除するには、カーネルでサポートされる最小 GCC バージョンが増加する場合、カーネルからそのアーキテクチャを削除する必要があります (現在、カーネルをコンパイルするには少なくとも GCC バージョン 5.1 が必要です)。
アーキテクチャ、チップ、拡張機能の間 カーネルから削除することが提案されているものとしては、次のものが挙げられます。
- ARMv3: GCC-9 で削除されたため、コンパイラの最小バージョンが増えるにつれて最終的にはカーネルから削除される予定です。
- ARMv4: StrongARM および FA526 CPU に使用され、現在も一部のボードで使用されています。最新のチップでも 20 年近く前のものです。これらをサポートしていた Debian の最後のバージョンは Lenny (5.0) でした。 ARMv4T コアを搭載した 720 つの SoC ファミリ (ARM920T、ARM922T、および ARM4T) は引き続きサポートされます。古いものではありますが、ARMv9.0 よりも多くのユーザーと開発者がいます。 Debian Stretch (XNUMX) が最後にサポートされました。
- ARMv5: サポートされているプラットフォームの約 5 分の XNUMX で ARMvXNUMX が使用されていますが、そのほとんどはサポート終了に近づいています。
- ARMv6 初期: NXP i.MX1136 および OMAP0xx の ARM31r24p、主に Nokia N8xx タブレットが含まれます。 SMP でカーネルをサポートするには特別なハックが必要です。 ARMv6 を ARMv7 との互換性から ARMv5 との互換性に変更するパッチがありますが、さらに作業が必要です。
- ARMv6K
ARMv7-M: Cortex-M3/M4/M7 は、現在 5 つのマイクロコントローラー プラットフォームで MMU なしでサポートされている唯一のコアです。これらは 2027 年に削除される可能性がありますが、GCC は引き続き他のオペレーティング システムでそれらをサポートする必要があります。 - iWMMXt: iWMMXt の残りのユーザーは不明であり、ARMv7 PJ4 CPU のサポートは削除されています。これは、Intel/Marvell PXA および MMP1 でのみサポートされます。
- ARMv5 ビッグ エンディアン カーネル (BE32): これを使用する SoC は Intel IXP4xx のみです。 Debian はリトルエンディアン モードでこれをサポートしていましたが、LE ではドライバーが壊れています。
- ARMv7 ビッグ エンディアン カーネル (BE8)
- ATAGS より前の Param_struct: これは 2001 年に減価償却され、「5 年」で廃止され、すでにそうなっています。
- ATAGS ベースのプレート ファイル: 上記のクリーンアップ後、29 個の SoC プラットフォームには 10 個のボード ファイルが残ります。
- OABI カーネル: 現在、事実上誰もが EABI を使用しており、OABI サポートは GCC-4.8 でターゲットから削除されました。カーネルでは、ARMv4/ARMv5 カーネルでデフォルトで使用される -mabi=apcs-gnu を使用して OABI としてビルドすることができます。
- OABI 互換モード: これにより、EABI カーネルで OABI バイナリを実行できるようになります。
- NWFPE
- ハイメム: ほとんどの ARM マシンは、HIGHMEM サポートがなくても、CONFIG_VMSPLIT_2GB を使用して最大 2 GB の物理メモリをアドレス指定できます。 15 年に Cortex-A2012 を搭載した大型マシンが登場しましたが、すぐに 64 ビット チップに置き換えられました。
- スパーセム: 従来の sparsemem のサポートの削除について議論されています。これは、すべての RAM を使用するために highmem を必要とするマシンにも関係します。
- リスクPC: これはサポートされている最も古いプラットフォームであり、ARMv9 の削除により GCC-3 以降では動作しないため、最終的には削除される予定です。
- SA1100、歩道橋: 他の StrongARM ベースのプラットフォームは、ノスタルジーにのみ関連します。
- ジェミニ、モクアート: どちらも Faraday FA526 CPU コアを使用しており、StrongARM と同様に、親指で ARMv4T ではなく ARMv4 を実装します。チップも 20 年以上前のものですが、カーネル コードは更新されており、メンテナンスの負担はありません。
- PXA ボード ファイル: 2 年前に削除されなかった PXA コードには 2 つのプレート ファイルが残っており、これが DT への変換に役立つことを期待しています。
- OMAP1: DT サポートのない唯一の ARMv4T/ARMv5 プラットフォームであるため、ある時点で削除の対象となります。
- Nspire、AT91RM9200、CLPS711X、EP93xx、iMX1
- OMAP24xx
- iMX31、1136r0 を備えた Realview/インテグレータ
- S3C64xx (クラガンモア): これは、devicetree サポートのない唯一の ARMv6K ボードであり、ボード ファイルには、他のすべてのボード ファイルを組み合わせたものと同程度の複雑さが含まれています。 Arch/arm/mach-s3c/Kconfig.s3c64xx には、来年初めに削除される予定としてリストされており、これによりプラットフォーム インフラストラクチャとドライバーの大規模なクリーンアップが可能になります。
- Orion5x、mv78xx0、dove ボード ファイル: PXA と同様に、これらは DT 変換に向けた進捗が保留されたままになっていますが、mv78xx0 でのいくつかのマイナーな修正を除いて何も起こりませんでした。対照的に、Debian はユーザー不足を理由に orion5x カーネル バイナリを削除したため、完成する可能性はかなり低いと思われます。
- iMX35、WM8750、AST2500、BCM2835: これら 6 つはすべて ARMv2500K プラットフォームであり、十分にサポートされていますが、アクティブなユーザー ベースを持っているのは AST2835 と BCMXNUMX だけです。
- Stm32f4/f7/h7 マイクロコントローラー: これらは、ST が既存顧客のサポートを継続するため、開発が継続される唯一の非 MMU Arm チップです。
最後に、それは言及されるべきです この計画はまだ RFC 段階にありますつまり、コミュニティのディスカッション用に公開されます。承認されれば、6.12月に予定されているLinux 4カーネルから古いARMプロセッサの削除を開始することが提案されている。削除される最初の候補は、ARMv4 (ARMv32T は削除されない)、iWMMXt、BEXNUMX、および OABI です。