Mereka meluncurkan proposal untuk menghilangkan dukungan ARM lama di Linux

hapus dukungan ARM lama di Linux

Arnd Bergmann, Pengembang kernel Linux dari cabang arm-soc dan manajer paket kernel di SUSE, merilis a proposal di mana dia meletakkannya di atas meja masalah penghapusan kernel berbasis GCC dan membuat alat kode untuk mendukung CPU ARM lama, ABI terkait, set instruksi, dan kemampuan kernel.

Arnd Bergmann, menyebutkan hal itu dasar usulan tersebut penghentian dukungan untuk CPU ARM tua di kernel karena penghentian di GCC, karena beberapa CPU yang diusulkan untuk dihapus tidak lagi didukung di cabang GCC terbaru, dan yang lainnya direncanakan untuk dihapus pada rilis mendatang.

Sebutkan bahwa dengan menerapkan ini, Modernisasi dan implementasi fungsi-fungsi baru di kompiler akan difasilitasi. DANMenghapus dukungan untuk suatu arsitektur di GCC akan memerlukan penghapusannya dari kernel jika versi minimum GCC yang didukung oleh kernel ditingkatkan (saat ini, setidaknya GCC versi 5.1 diperlukan untuk mengkompilasi kernel).

Antara arsitektur, chip, dan ekstensi yang diusulkan untuk dihapus dari kernel, disebutkan sebagai berikut:

  • ARMv3: Dihapus di GCC-9, sehingga pada akhirnya akan dihapus dari kernel seiring dengan meningkatnya versi kompiler minimum.
  • ARMv4: Digunakan untuk CPU StrongARM dan FA526, masih di beberapa papan. Bahkan chip terbaru pun berusia hampir 20 tahun. Versi terakhir Debian yang mendukungnya adalah Lenny (5.0). Enam keluarga SoC dengan inti ARMv4T (ARM720T, ARM920T, dan ARM922T) masih didukung. Meskipun sudah tua, mereka memiliki lebih banyak pengguna dan pengembang daripada ARMv4. Debian Stretch (9.0) adalah yang terakhir mendukung mereka.
  • ARMv5: Sekitar sepertiga platform yang didukung menggunakan ARMv5, namun sebagian besar sudah mendekati akhir masa dukungannya.
  • ARMv6 awal: termasuk ARM1136r0p di NXP i.MX31 dan OMAP24xx, terutama tablet Nokia N8xx. Membutuhkan peretasan khusus untuk mendukung kernel dengan SMP. Terdapat patch yang mengubah ARMv6 dari kompatibel dengan ARMv7 menjadi kompatibel dengan ARMv5, namun memerlukan lebih banyak perbaikan.
  • ARMv6K
    ARMv7-M: Cortex-M3/M4/M7 adalah satu-satunya inti yang didukung tanpa MMU, saat ini pada 5 platform mikrokontroler. Mereka mungkin dihapus pada tahun 2027, tetapi GCC masih perlu mendukungnya di sistem operasi lain.
  • iWMMXt: tidak ada pengguna tersisa yang diketahui untuk iWMMXt, dan dukungan untuk CPU ARMv7 PJ4 telah dihapus. Ini hanya didukung di Intel/Marvell PXA dan MMP1.
  • Kernel endian besar ARMv5 (BE32): Hanya satu SoC yang menggunakannya, Intel IXP4xx. Debian mendukungnya dalam mode little-endian, tetapi drivernya rusak di LE.
  • Kernel endian besar ARMv7 (BE8)
  • Param_struct pra-ATAGS: Hal ini disusutkan pada tahun 2001, untuk dihilangkan dalam "5 tahun", dan hal ini telah terjadi.
  • File pelat berbasis ATAGS: Setelah pembersihan di atas, terdapat 29 file board tersisa di 10 platform SoC.
  • Kernel OABI: Hampir semua orang saat ini menggunakan EABI, dan dukungan OABI telah dihapus sebagai target di GCC-4.8. Kernel masih memungkinkan dibangun sebagai OABI dengan -mabi=apcs-gnu, digunakan secara default di kernel ARMv4/ARMv5.
  • Mode Kompatibilitas OABI: Hal ini memungkinkan menjalankan binari OABI dengan kernel EABI.
  • NWFPE
  • anggota tertinggi: Sebagian besar mesin ARM dapat bekerja tanpa dukungan memori tinggi menggunakan CONFIG_VMSPLIT_2GB untuk menangani memori fisik hingga 2GB. Mesin yang lebih besar muncul dengan Cortex-A15 pada tahun 2012, dengan cepat digantikan oleh chip 64-bit.
  • Jarang: Ada diskusi tentang penghapusan dukungan terhadap sparsemem tradisional. Hal ini juga berkaitan dengan mesin yang membutuhkan memori tinggi untuk menggunakan seluruh RAM-nya
  • Risiko PC: Ini adalah platform tertua yang didukung, dan pada akhirnya akan dihapus, karena tidak berfungsi dengan GCC-9 atau lebih tinggi karena penghapusan ARMv3.
  • SA1100, Jembatan Penyeberangan: platform berbasis StrongARM lainnya, hanya relevan untuk nostalgia.
  • Gemini, Moxart: Keduanya menggunakan inti CPU Faraday FA526, yang seperti StrongARM mengimplementasikan ARMv4, bukan ARMv4T dengan jempol. Chipnya juga berusia lebih dari 20 tahun, tetapi kode kernel telah diperbarui dan tidak menjadi beban pemeliharaan.
  • File papan PXA: Ada dua file pelat tersisa dalam kode PXA yang belum dihapus dua tahun lalu, dengan harapan ini akan membantu konversi ke DT
  • OMAP1: satu-satunya platform ARMv4T/ARMv5 tanpa dukungan DT, menjadikannya target penghapusan di beberapa titik.
  • Nspire, AT91RM9200, CLPS711X, EP93xx, iMX1
  • OMAP24xx
  • iMX31, tampilan nyata/integrator dengan 1136r0
  • S3C64xx (Cragganmore): Ini adalah satu-satunya board ARMv6K tanpa dukungan pohon perangkat, dan file board memiliki kompleksitas yang sama dengan gabungan semua file board lainnya. arch/arm/mach-s3c/Kconfig.s3c64xx mencantumkannya untuk dihapus awal tahun depan, yang akan memungkinkan pembersihan besar-besaran pada infrastruktur dan driver platform.
  • Orion5x, mv78xx0, file papan merpati: Seperti PXA, ini masih menunggu kemajuan menuju konversi DT, tetapi tidak ada yang terjadi kecuali beberapa perbaikan kecil di mv78xx0. Sebaliknya, Debian telah menghapus biner kernel orion5x dengan alasan kurangnya pengguna, sehingga kemungkinannya kecil untuk diselesaikan.
  • iMX35, WM8750, AST2500, BCM2835: Keempatnya merupakan platform ARMv6K dan didukung dengan baik, meskipun hanya AST2500 dan BCM2835 yang memiliki basis pengguna aktif.
  • Mikrokontroler Stm32f4/f7/h7: Ini adalah satu-satunya chip Arm non-MMU yang mengalami pengembangan berkelanjutan seiring ST terus mendukung pelanggannya yang sudah ada.

Akhirnya, harus disebutkan bahwa rencana ini masih dalam tahap RFC, yaitu diterbitkan untuk diskusi komunitas. Jika disetujui, diusulkan untuk memulai penghapusan prosesor ARM lama di kernel Linux 6.12, diharapkan pada bulan Desember. Kandidat pertama yang dihapus adalah ARMv4 (tanpa menghapus ARMv4T), iWMMXt, BE32 dan OABI.

sumber: https://lkml.org