อาร์นด์ เบิร์กมันน์, นักพัฒนาเคอร์เนล Linux จากสาขา arm-soc และผู้จัดการแพ็คเกจเคอร์เนลที่ SUSE เปิดตัว ข้อเสนอ ที่เขาวางไว้บนโต๊ะ ปัญหาการลบเคอร์เนลที่ใช้ GCC และสร้างเครื่องมือโค้ดเพื่อรองรับ ARM CPU รุ่นเก่า, ABI ที่เกี่ยวข้อง, ชุดคำสั่ง และความสามารถของเคอร์เนล
Arnd Bergmann กล่าวถึงสิ่งนั้น พื้นฐานของข้อเสนอ ของการยุติการสนับสนุน สำหรับซีพียู ARM เก่าในเคอร์นl เกิดจากการหยุดให้บริการใน GCC เนื่องจาก CPU บางตัวที่เสนอให้ลบออกไม่รองรับใน GCC สาขาล่าสุดอีกต่อไป และตัวอื่นๆ ก็มีแผนที่จะลบออกในรุ่นต่อๆ ไป
กล่าวถึงว่าโดยการใช้สิ่งนี้ ความทันสมัยและการปรับใช้ฟังก์ชันใหม่ในคอมไพเลอร์จะได้รับการอำนวยความสะดวก และการลบการรองรับสถาปัตยกรรมใน GCC จะต้องถูกลบออกจากเคอร์เนล หากเคอร์เนลเวอร์ชัน GCC ขั้นต่ำที่รองรับนั้นเพิ่มขึ้น (ปัจจุบัน ต้องใช้ GCC เวอร์ชัน 5.1 เป็นอย่างน้อยในการคอมไพล์เคอร์เนล)
ระหว่างสถาปัตยกรรม ชิป และส่วนขยาย ที่ถูกเสนอให้ลบออกจากเคอร์เนลมีดังต่อไปนี้:
- ARMv3: ลบออกใน GCC-9 ดังนั้นในที่สุดจะถูกลบออกจากเคอร์เนลเมื่อเวอร์ชันคอมไพเลอร์ขั้นต่ำเพิ่มขึ้น
- ARMv4: ใช้สำหรับ CPU StrongARM และ FA526 ซึ่งยังอยู่ในบอร์ดบางรุ่น แม้แต่ชิปใหม่ล่าสุดก็มีอายุเกือบ 20 ปีแล้ว Debian เวอร์ชันล่าสุดที่รองรับคือ Lenny (5.0) ยังคงรองรับตระกูล SoC หกตระกูลที่มีคอร์ ARMv4T (ARM720T, ARM920T และ ARM922T) แม้ว่าพวกเขาจะเก่า แต่ก็มีผู้ใช้และนักพัฒนามากกว่า ARMv4 Debian Stretch (9.0) เป็นคนสุดท้ายที่สนับสนุนพวกเขา
- ARMv5: ประมาณหนึ่งในสามของแพลตฟอร์มที่รองรับใช้ ARMv5 แต่ส่วนใหญ่ใกล้จะสิ้นสุดการสนับสนุนแล้ว
- ARMv6 ในช่วงต้น: รวม ARM1136r0p ใน NXP i.MX31 และ OMAP24xx ซึ่งส่วนใหญ่เป็นแท็บเล็ต Nokia N8xx ต้องใช้แฮ็กพิเศษเพื่อรองรับเคอร์เนลด้วย SMP มีแพตช์ที่เปลี่ยน ARMv6 จากเข้ากันได้กับ ARMv7 ไปเป็นเข้ากันได้กับ ARMv5 แต่จำเป็นต้องปรับปรุงเพิ่มเติม
- ARMv6K
ARMv7-M: Cortex-M3/M4/M7 เป็นคอร์เดียวที่รองรับโดยไม่มี MMU ซึ่งปัจจุบันอยู่บนแพลตฟอร์มไมโครคอนโทรลเลอร์ 5 ตัว สิ่งเหล่านี้สามารถถูกลบออกได้ในปี 2027 แต่ GCC ยังคงต้องรองรับระบบปฏิบัติการอื่น - iWMMXt: ไม่มีผู้ใช้ iWMMXt ที่ทราบเหลืออยู่ และการสนับสนุน CPU ARMv7 PJ4 ได้ถูกลบออกแล้ว รองรับเฉพาะ Intel/Marvell PXA และ MMP1 เท่านั้น
- เคอร์เนล endian ขนาดใหญ่ ARMv5 (BE32): มี SoC เพียงตัวเดียวเท่านั้นที่ใช้ Intel IXP4xx Debian รองรับในโหมด little-endian แต่ไดรเวอร์ใช้งานไม่ได้ใน LE
- เคอร์เนล endian ขนาดใหญ่ ARMv7 (BE8)
- Param_struct ก่อนหน้า ATAGS: ซึ่งคิดค่าเสื่อมราคาในปี 2001 และจะตัดออกใน "5 ปี" ซึ่งได้เกิดขึ้นแล้ว
- ไฟล์เพลทที่ใช้ ATAGS: หลังจากการล้างข้อมูลข้างต้น จะเหลือไฟล์บอร์ด 29 ไฟล์บนแพลตฟอร์ม SoC 10 แพลตฟอร์ม
- เมล็ด OABI: ทุกวันนี้แทบทุกคนใช้ EABI และการสนับสนุน OABI ถูกลบออกจากเป้าหมายใน GCC-4.8 เคอร์เนลยังคงอนุญาตให้สร้างเป็น OABI ด้วย -mabi=apcs-gnu ซึ่งใช้เป็นค่าเริ่มต้นในเคอร์เนล ARMv4/ARMv5
- โหมดที่รองรับ OABI: ซึ่งอนุญาตให้เรียกใช้ไบนารี OABI ด้วยเคอร์เนล EABI
- NWFPE
- ประเด็นสำคัญ: เครื่อง ARM ส่วนใหญ่สามารถทำงานได้โดยไม่ต้องรองรับ highmem โดยใช้ CONFIG_VMSPLIT_2GB เพื่อรองรับหน่วยความจำกายภาพสูงสุด 2GB เครื่องจักรขนาดใหญ่ปรากฏขึ้นพร้อมกับ Cortex-A15 ในปี 2012 และถูกแทนที่ด้วยชิป 64 บิตอย่างรวดเร็ว
- สปาร์เซเมม: มีการอภิปรายเกี่ยวกับการลบการสนับสนุนสปาร์เซเมมแบบเดิม นอกจากนี้ยังเกี่ยวข้องกับเครื่องที่ต้องการหน่วยความจำสูงเพื่อใช้ RAM ทั้งหมด
- RiscPC: นี่เป็นแพลตฟอร์มที่เก่าแก่ที่สุดที่รองรับ และจะถูกลบออกในที่สุด เนื่องจากใช้งานไม่ได้กับ GCC-9 หรือสูงกว่าเนื่องจากการถอด ARMv3 ออก
- SA1100, สะพานลอย: แพลตฟอร์มที่ใช้ StrongARM อื่นๆ ซึ่งเกี่ยวข้องกับความคิดถึงเท่านั้น
- ราศีเมถุน, ม็อกซาร์: ทั้งสองใช้คอร์ CPU ของ 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 ในทางตรงกันข้าม Debian ได้ลบไบนารีเคอร์เนล orion5x ออก เนื่องจากไม่มีผู้ใช้ ดังนั้นจึงดูเหมือนว่าจะมีโอกาสน้อยมากที่จะเสร็จสมบูรณ์
- iMX35, WM8750, AST2500, BCM2835: สี่แพลตฟอร์มนี้เป็นแพลตฟอร์ม ARMv6K ทั้งหมดและได้รับการสนับสนุนอย่างดี แม้ว่ามีเพียง AST2500 และ BCM2835 เท่านั้นที่มีฐานผู้ใช้ที่ใช้งานอยู่
- ไมโครคอนโทรลเลอร์ Stm32f4/f7/h7: นี่เป็นชิป Arm ที่ไม่ใช่ MMU เพียงตัวเดียวที่จะได้เห็นการพัฒนาอย่างต่อเนื่อง เนื่องจาก ST ยังคงให้การสนับสนุนลูกค้าปัจจุบันต่อไป
ในที่สุดก็ควรจะกล่าวถึงว่า แผนนี้ยังอยู่ในขั้นตอน RFCนั่นคือเผยแพร่เพื่อการอภิปรายในชุมชน หากได้รับการอนุมัติ จะมีการเสนอให้เริ่มลบโปรเซสเซอร์ ARM เก่าในเคอร์เนล Linux 6.12 ซึ่งคาดว่าจะเกิดขึ้นในเดือนธันวาคม ตัวเลือกแรกที่จะถูกลบออกคือ ARMv4 (โดยไม่ต้องถอด ARMv4T), iWMMXt, BE32 และ OABI
Fuente: https://lkml.org