أرند بيرجمان, أصدر مطور Linux kernel من فرع Arm-soc ومدير حزم kernel في SUSE إصدارًا اقتراح الذي يضعه على الطاولة مسألة إزالة النواة المعتمدة على دول مجلس التعاون الخليجي وإنشاء أدوات تعليمات برمجية لدعم وحدات المعالجة المركزية ARM الأقدم وواجهات التطبيقات الثنائية المرتبطة بها ومجموعات التعليمات وإمكانيات kernel.
يذكر أرند بيرجمان ذلك أساس الاقتراح من وقف الدعم لوحدات المعالجة المركزية ARM قديم في القرنl بسبب التوقف في دول مجلس التعاون الخليجي، نظرًا لأن بعض وحدات المعالجة المركزية المقترحة للإزالة لم تعد مدعومة في أحدث فروع دول مجلس التعاون الخليجي، ومن المقرر إزالة وحدات أخرى في الإصدارات المستقبلية.
أذكر أنه بتطبيق هذا ، سيتم تسهيل تحديث وتنفيذ الوظائف الجديدة في المترجم. وستتطلب إزالة دعم البنية في دول مجلس التعاون الخليجي إزالتها من النواة إذا تمت زيادة الحد الأدنى لإصدار مجلس التعاون الخليجي الذي تدعمه النواة (حاليًا، مطلوب الإصدار 5.1 من مجلس التعاون الخليجي على الأقل لتجميع النواة).
بين البنى والرقائق والامتدادات التي يقترح إزالتها من النواة، نذكر ما يلي:
- أرم الإصدار 3: تمت إزالته في مجلس التعاون الخليجي-9، لذلك سيتم إزالته في النهاية من النواة مع زيادة الحد الأدنى لإصدارات المترجم.
- أرم الإصدار 4: يستخدم لوحدات المعالجة المركزية StrongARM وFA526، ولا يزال موجودًا في بعض اللوحات. حتى أحدث الرقائق يقترب عمرها من 20 عامًا. الإصدار الأخير من دبيان الذي دعمهم كان Lenny (5.0). لا تزال ستة عائلات SoC ذات نوى ARMv4T (ARM720T وARM920T وARM922T) مدعومة. على الرغم من أنها قديمة، إلا أنها تحتوي على عدد أكبر من المستخدمين والمطورين مقارنة بـ ARMv4. كان Debian Stretch (9.0) هو آخر من دعمهم.
- أرم الإصدار 5: يستخدم حوالي ثلث الأنظمة الأساسية المدعومة ARMv5، ولكن معظمها يقترب من نهاية دعمه.
- ARMv6 مبكرًا: يتضمن ARM1136r0p في NXP i.MX31 وOMAP24xx، وبشكل أساسي جهاز Nokia N8xx اللوحي. يتطلب اختراقًا خاصًا لدعم النواة باستخدام SMP. يوجد تصحيح يغير ARMv6 من متوافق مع ARMv7 إلى متوافق مع ARMv5، ولكنه يحتاج إلى المزيد من العمل.
- أرمف6ك
أرمv7-م: Cortex-M3/M4/M7 هي النوى الوحيدة المدعومة بدون MMU، وهي موجودة حاليًا على 5 منصات للتحكم الدقيق. يمكن إزالتها في عام 2027، لكن دول مجلس التعاون الخليجي ستظل بحاجة إلى دعمها على أنظمة التشغيل الأخرى. - iWMMXt: لا يوجد مستخدمون متبقون معروفون لـ iWMMXt، وتمت إزالة دعم وحدات المعالجة المركزية ARMv7 PJ4. وهو مدعوم فقط في Intel/Marvell PXA وMMP1.
- نواة ARMv5 الكبيرة (BE32): يستخدمه نظام SoC واحد فقط، وهو Intel IXP4xx. يدعمه دبيان في وضع النهاية الصغيرة، لكن برامج التشغيل معطلة بالجنيه المصري.
- نواة ARMv7 الكبيرة (BE8)
- Param_struct قبل ATAGS: وقد تم تخفيض هذه القيمة في عام 2001، ليتم إلغاؤها خلال "5 سنوات"، وهو ما حدث بالفعل.
- ملفات اللوحة المعتمدة على ATAGS: بعد عملية التنظيف المذكورة أعلاه، يتبقى 29 ملفًا للوحة على 10 منصات SoC.
- حبات OABI: يستخدم الجميع تقريبًا EABI اليوم، وتمت إزالة دعم OABI كهدف في مجلس التعاون الخليجي 4.8. لا تزال النواة تسمح ببنائها كـ OABI مع -mabi=apcs-gnu، المستخدمة افتراضيًا في نواة ARMv4/ARMv5.
- وضع التوافق OABI: يسمح هذا بتشغيل ثنائيات OABI باستخدام نواة EABI.
- NWFPE
- هايميم: يمكن أن تعمل معظم أجهزة ARM دون دعم Highmem باستخدام CONFIG_VMSPLIT_2GB لمعالجة ما يصل إلى 2 جيجابايت من الذاكرة الفعلية. ظهرت الأجهزة الأكبر حجمًا المزودة بـ Cortex-A15 في عام 2012، وسرعان ما تم استبدالها برقائق 64 بت.
- سبارسميم: هناك نقاش حول إزالة الدعم لـ sparsemem التقليدية. يتعلق هذا أيضًا بالأجهزة التي تحتاج إلى ذاكرة عالية لاستخدام كل ذاكرة الوصول العشوائي الخاصة بها
- ريسك بي سي: هذه هي أقدم منصة مدعومة، وستتم إزالتها في النهاية، لأنها لا تعمل مع مجلس التعاون الخليجي-9 أو أعلى بسبب إزالة ARMv3.
- SA1100، جسر المشاة: منصات أخرى تعتمد على StrongARM، وهي ذات صلة بالحنين إلى الماضي فقط.
- الجوزاء، موكسارت: كلاهما يستخدم نواة وحدة المعالجة المركزية Faraday FA526، والتي مثل StrongARM تنفذ ARMv4 بدلاً من ARMv4T بالإبهام. يزيد عمر الرقائق أيضًا عن 20 عامًا، ولكن تم تحديث كود النواة ولا يمثل عبئًا للصيانة.
- ملفات لوحة PXA: يوجد ملفان للوحة متبقيان في كود PXA ولم تتم إزالتهما منذ عامين، على أمل أن يساعد ذلك في التحويل إلى DT
- OMAP1: منصة ARMv4T/ARMv5 الوحيدة التي لا تحتوي على دعم DT، مما يجعلها هدفًا للإزالة في مرحلة ما.
- نسبير، AT91RM9200، CLPS711X، EP93xx، iMX1
- OMAP24xx
- iMX31، عرض حقيقي/متكامل مع 1136r0
- S3C64xx (كراجانمور): هذه هي لوحة ARMv6K الوحيدة التي لا تحتوي على دعم Devicetree، ويحتوي ملف اللوحة على قدر مماثل من التعقيد مثل جميع ملفات اللوحة الأخرى مجتمعة. يدرجها Arch/arm/mach-s3c/Kconfig.s3c64xx لإزالتها في أوائل العام المقبل، مما سيسمح بإجراء عملية تنظيف كبيرة للبنية التحتية للنظام الأساسي وبرامج التشغيل.
- Orion5x، mv78xx0، ملفات لوحة الحمامة: مثل PXA، تم تركها في انتظار التقدم نحو تحويل DT، ولكن لم يحدث شيء باستثناء بعض الإصلاحات الطفيفة في mv78xx0. في المقابل، أزال دبيان ثنائي نواة orion5x بسبب قلة المستخدمين، لذلك يبدو أن احتمال اكتماله أقل بكثير.
- iMX35، WM8750، AST2500، BCM2835: هذه الأربعة جميعها منصات ARMv6K وهي مدعومة بشكل جيد، على الرغم من أن AST2500 وBCM2835 فقط لديهما قاعدة مستخدمين نشطة.
- المتحكمات الدقيقة Stm32f4/f7/h7: هذه هي الرقائق الوحيدة غير التابعة لـ MMU والتي تشهد تطويرًا مستمرًا حيث تواصل ST دعم عملائها الحاليين.
أخيرًا ، يجب ذكر ذلك هذه الخطة لا تزال في مرحلة RFCأي أنه تم نشره للمناقشة المجتمعية. إذا تمت الموافقة عليه، فمن المقترح البدء في إزالة معالجات ARM القديمة في Linux kernel 6.12، والمتوقع في ديسمبر. أول المرشحين الذين سيتم إزالتهم هم ARMv4 (بدون إزالة ARMv4T)، وiWMMXt، وBE32، وOABI.
مصدر: https://lkml.org