Arnd Bergmann, arm-soc şubesinden Linux çekirdek geliştiricisi ve SUSE'deki çekirdek paketlerinin yöneticisi, bir propuesta masaya koyduğu yer GCC tabanlı çekirdeğin kaldırılması sorunu ve eski ARM CPU'larını, bunlarla ilişkili ABI'leri, talimat setlerini ve çekirdek yeteneklerini desteklemek için kod araçları oluşturun.
Arnd Bergmann şunu belirtiyor: teklifin temeli desteğin kesilmesi ARM CPU'lar için çekirdekte eskiGCC'ye son verilmesinden dolayı, Kaldırılması önerilen CPU'lardan bazıları artık en son GCC şubelerinde desteklenmediğinden ve diğerlerinin gelecek sürümlerde kaldırılması planlandığından.
Bunu uygulayarak şunu belirtin: Derleyicide modernizasyon ve yeni fonksiyonların uygulanması kolaylaştırılacaktır. VEGCC'de bir mimariye yönelik desteğin kaldırılması, çekirdek tarafından desteklenen minimum GCC sürümünün artırılması durumunda mimarinin çekirdekten kaldırılmasını gerektirecektir (şu anda çekirdeği derlemek için en az GCC sürüm 5.1 gereklidir).
Mimariler, çipler ve uzantılar arasında çekirdekten çıkarılması önerilenler arasında şunlar yer alıyor:
- ARMv3: GCC-9'da kaldırılmıştır, bu nedenle minimum derleyici sürümleri arttıkça sonunda çekirdekten kaldırılacaktır.
- ARMv4: StrongARM ve FA526 CPU'lar için kullanılır, halen bazı kartlarda bulunmaktadır. En yeni çipler bile 20 yaşına yakındır. Debian'ın bunları destekleyen son sürümü Lenny'ydi (5.0). ARMv4T çekirdekli altı SoC ailesi (ARM720T, ARM920T ve ARM922T) hâlâ desteklenmektedir. Eski olmalarına rağmen ARMv4'e göre daha fazla kullanıcı ve geliştiriciye sahiptirler. Debian Stretch (9.0) onları destekleyen son kişiydi.
- ARMv5: Desteklenen platformların yaklaşık üçte biri ARMv5 kullanıyor ancak çoğu desteğinin sonuna yaklaşıyor.
- ARMv6 erken: NXP i.MX1136 ve OMAP0xx'te ARM31r24p'yi, özellikle de Nokia N8xx tableti içerir. SMP'li çekirdekleri desteklemek için özel hack'ler gerekir. ARMv6'yı ARMv7 ile uyumlu olmaktan ARMv5 ile uyumlu hale getiren bir yama var ancak bunun için daha fazla çalışma gerekiyor.
- ARMv6K
ARMv7-M: Cortex-M3/M4/M7, şu anda 5 mikrodenetleyici platformunda MMU olmadan desteklenen tek çekirdeklerdir. Bunlar 2027'de kaldırılabilir ancak GCC'nin yine de bunları diğer işletim sistemlerinde desteklemesi gerekecektir. - iWMMXt: iWMMXt için bilinen kalan kullanıcı yok ve ARMv7 PJ4 CPU desteği kaldırıldı. Yalnızca Intel/Marvell PXA ve MMP1'de desteklenir.
- ARMv5 büyük endian çekirdeği (BE32): Yalnızca bir SoC bunu kullanıyor, Intel IXP4xx. Debian bunu little-endian modunda destekledi, ancak sürücüler LE'de bozuk.
- ARMv7 büyük endian çekirdeği (BE8)
- Param_struct ön-ATAGS: Bu, 2001 yılında "5 yıl" içinde elimine edilmek üzere amortismana tabi tutuldu ki bu zaten gerçekleşti.
- ATAGS tabanlı plaka dosyaları: Yukarıdaki temizleme işleminden sonra 29 SoC platformunda 10 board dosyası kaldı.
- OABI Çekirdekleri: Bugün neredeyse herkes EABI kullanıyor ve OABI desteği GCC-4.8'de hedef olarak kaldırıldı. Çekirdek hala ARMv4/ARMv5 çekirdeklerinde varsayılan olarak kullanılan -mabi=apcs-gnu ile OABI olarak oluşturulmaya izin veriyor.
- OABI Uyumluluk Modu: Bu, OABI ikili dosyalarının bir EABI çekirdeğiyle çalıştırılmasına olanak tanır.
- NWFPE
- Highmem: Çoğu ARM makinesi, 2 GB'a kadar fiziksel belleği adreslemek için CONFIG_VMSPLIT_2GB kullanarak yüksek bellek desteği olmadan çalışabilir. 15'de Cortex-A2012 ile daha büyük makineler ortaya çıktı ve yerini hızla 64 bit çipler aldı.
- Seyrek: Geleneksel sparsemem desteğinin kaldırılması konusunda bir tartışma var. Bu aynı zamanda tüm RAM'lerini kullanmak için yüksek belleğe ihtiyaç duyan makinelerle de ilgilidir.
- RiskPC: Bu, desteklenen en eski platformdur ve ARMv9'ün kaldırılması nedeniyle GCC-3 veya üzeri ile çalışmadığından sonunda kaldırılacaktır.
- SA1100, Yaya Köprüsü: yalnızca nostaljiyle ilgili diğer StrongARM tabanlı platformlar.
- İkizler, Moxart: Her ikisi de StrongARM gibi ARMv526T yerine başparmak ile ARMv4 uygulayan Faraday FA4 CPU çekirdeğini kullanıyor. Çipler de 20 yaşın üzerinde ancak çekirdek kodu güncellendi ve bakım yükü oluşturmuyor.
- PXA pano dosyaları: PXA kodunda iki yıl önce kaldırılmayan iki plaka dosyası kaldı, bunun DT'ye dönüşüme yardımcı olacağını umuyoruz
- OMAP1: DT desteği olmayan tek ARMv4T/ARMv5 platformu, bu da onu bir noktada kaldırılma hedefi haline getiriyor.
- Nspire, AT91RM9200, CLPS711X, EP93xx, iMX1
- OMAP24xx
- iMX31, 1136r0 ile gerçek görüntüleme/entegratör
- S3C64xx (Cragganmore): Bu, cihaz ağacı desteği olmayan tek ARMv6K kartıdır ve pano dosyası, diğer tüm pano dosyalarının birleşimiyle benzer miktarda karmaşıklık içerir. arch/arm/mach-s3c/Kconfig.s3c64xx, bunu gelecek yılın başlarında kaldırılmak üzere listeliyor; bu, platform altyapısının ve sürücülerin büyük ölçüde temizlenmesine olanak tanıyacak.
- Orion5x, mv78xx0, güvercin panosu dosyaları: PXA gibi bunlar da DT dönüşümüne yönelik ilerleme beklenmeden bırakıldı, ancak mv78xx0'daki bazı küçük düzeltmeler dışında hiçbir şey olmadı. Buna karşılık Debian, kullanıcı eksikliğini gerekçe göstererek orion5x çekirdeği ikili dosyasını kaldırdı, dolayısıyla tamamlanma olasılığı çok daha düşük görünüyor.
- iMX35, WM8750, AST2500, BCM2835: Bu dördünün tümü ARMv6K platformlarıdır ve yalnızca AST2500 ve BCM2835'in aktif bir kullanıcı tabanı olmasına rağmen iyi bir şekilde desteklenmektedir.
- Stm32f4/f7/h7 mikrodenetleyiciler: Bunlar, ST'nin mevcut müşterilerini desteklemeye devam etmesi nedeniyle sürekli gelişme gösteren MMU Arm olmayan tek çiplerdir.
Son olarak belirtilmelidir ki bu plan hala RFC aşamasındayani topluluk tartışması için yayınlandı. Onaylandığı takdirde, Aralık ayında beklenen Linux çekirdeği 6.12'deki eski ARM işlemcilerin kaldırılmasına başlanması öneriliyor. Kaldırılacak ilk adaylar ARMv4 (ARMv4T kaldırılmadan), iWMMXt, BE32 ve OABI'dir.
kaynak: https://lkml.org