아른드 버그만, arm-soc 지점의 Linux 커널 개발자이자 SUSE의 커널 패키지 관리자가 신청 그가 테이블 위에 올려놓은 것 GCC 기반 커널 제거 문제 이전 ARM CPU, 관련 ABI, 명령어 세트 및 커널 기능을 지원하는 코드 도구를 만듭니다.
Arnd Bergmann은 다음과 같이 언급합니다. 제안의 기초 지원 중단의 ARM CPU용 케른의 오래된l GCC의 중단으로 인해 제거를 위해 제안된 CPU 중 일부는 최신 GCC 브랜치에서 더 이상 지원되지 않으며 나머지는 향후 릴리스에서 제거될 예정입니다.
이것을 적용함으로써, 컴파일러에서 새로운 기능의 현대화 및 구현이 촉진될 것입니다. 그리고커널에서 지원하는 최소 GCC 버전이 증가한 경우 GCC에서 아키텍처에 대한 지원을 제거하려면 커널에서 아키텍처를 제거해야 합니다(현재 커널을 컴파일하려면 최소한 GCC 버전 5.1이 필요합니다).
아키텍처, 칩, 확장 사이 커널에서 제거되도록 제안된 항목은 다음과 같습니다.
- ARMv3: GCC-9에서 제거되었으므로 최소 컴파일러 버전이 증가함에 따라 결국 커널에서 제거됩니다.
- ARMv4: StrongARM 및 FA526 CPU에 사용되지만 일부 보드에서는 여전히 사용됩니다. 심지어 최신 칩도 20년 가까이 되었습니다. 이를 지원하는 데비안의 마지막 버전은 Lenny(5.0)였습니다. ARMv4T 코어(ARM720T, ARM920T 및 ARM922T)가 포함된 4개의 SoC 제품군은 계속 지원됩니다. 오래되었지만 ARMv9.0보다 사용자와 개발자가 더 많습니다. Debian Stretch(XNUMX)는 이를 마지막으로 지원했습니다.
- ARMv5: 지원되는 플랫폼 중 약 5/XNUMX이 ARMvXNUMX를 사용하지만 대부분은 지원이 거의 종료됩니다.
- ARMv6 초기: NXP i.MX1136 및 OMAP0xx(주로 Nokia N31xx 태블릿)에는 ARM24r8p가 포함되어 있습니다. 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만이 이를 사용합니다. 데비안은 리틀 엔디안 모드에서 이를 지원했지만 LE에서는 드라이버가 손상되었습니다.
- ARMv7 빅엔디안 커널(BE8)
- Param_struct 사전 ATAGS: 이는 2001년에 감가상각되어 "5년" 후에 제거되었습니다. 이미 발생한 일입니다.
- ATAGS 기반 플레이트 파일: 위의 정리 후에는 29개의 SoC 플랫폼에 10개의 보드 파일이 남아 있습니다.
- OABI 커널: 오늘날 거의 모든 사람이 EABI를 사용하고 있으며 OABI 지원은 GCC-4.8의 대상에서 제거되었습니다. ARMv4/ARMv5 커널에서 기본적으로 사용되는 -mabi=apcs-gnu를 사용하여 커널을 OABI로 빌드할 수 있습니다.
- OABI 호환 모드: 이를 통해 EABI 커널로 OABI 바이너리를 실행할 수 있습니다.
- NWFPE
- 하이멤: 대부분의 ARM 시스템은 CONFIG_VMSPLIT_2GB를 사용하여 최대 2GB의 물리적 메모리를 처리하는 highmem 지원 없이 작동할 수 있습니다. 15년에는 Cortex-A2012가 탑재된 더 큰 머신이 등장했고 빠르게 64비트 칩으로 대체되었습니다.
- 스파스멤: 전통적인 sparsemem에 대한 지원을 제거하는 것에 대한 논의가 있습니다. 이는 모든 RAM을 사용하기 위해 highmem이 필요한 시스템과도 관련이 있습니다.
- RiscPC: 이는 지원되는 가장 오래된 플랫폼이며 ARMv9 제거로 인해 GCC-3 이상에서는 작동하지 않으므로 결국 제거될 예정입니다.
- SA1100, 인도교: 향수에만 관련된 다른 StrongARM 기반 플랫폼.
- 쌍둥이자리, 목사르트: 둘 다 Faraday FA526 CPU 코어를 사용합니다. StrongARM은 ARMv4T 대신 ARMv4를 구현합니다. 칩도 20년이 넘었지만 커널 코드가 업데이트되어 유지 관리 부담이 되지 않습니다.
- PXA 보드 파일: 2년 전에 제거되지 않은 PXA 코드에는 두 개의 플레이트 파일이 남아 있습니다. 이것이 DT로의 변환에 도움이 되기를 바랍니다.
- OMAP1: DT를 지원하지 않는 유일한 ARMv4T/ARMv5 플랫폼이므로 언젠가는 제거 대상이 됩니다.
- 엔스파이어, AT91RM9200, CLPS711X, EP93xx, iMX1
- OMAP24xx
- iMX31, 1136r0을 갖춘 realview/통합자
- S3C64xx(크래건모어): 이는 장치 트리를 지원하지 않는 유일한 ARMv6K 보드이며 보드 파일에는 다른 모든 보드 파일을 결합한 것과 비슷한 정도의 복잡성이 포함되어 있습니다. Arch/arm/mach-s3c/Kconfig.s3c64xx는 내년 초에 제거할 것으로 나열되어 있으며, 이를 통해 플랫폼 인프라와 드라이버를 대대적으로 정리할 수 있습니다.
- Orion5x, mv78xx0, 비둘기 보드 파일: PXA와 마찬가지로 DT 변환을 위한 진행이 보류되었지만 mv78xx0의 일부 사소한 수정 외에는 아무 일도 일어나지 않았습니다. 이에 비해 데비안은 사용자 부족을 이유로 orion5x 커널 바이너리를 제거했기 때문에 완성될 가능성은 훨씬 낮아 보입니다.
- iMX35, WM8750, AST2500, BCM2835: 이 네 가지는 모두 ARMv6K 플랫폼이며 잘 지원되지만 AST2500과 BCM2835만이 활성 사용자 기반을 가지고 있습니다.
- Stm32f4/f7/h7 마이크로컨트롤러: 이는 ST가 기존 고객을 계속 지원함에 따라 지속적인 개발을 볼 수 있는 유일한 비 MMU Arm 칩입니다.
마지막으로 이 계획은 아직 RFC 단계에 있습니다.즉, 커뮤니티 토론을 위해 게시되었습니다. 승인되면 6.12월로 예상되는 Linux 4 커널에서 기존 ARM 프로세서 제거를 시작하는 것이 제안됩니다. 제거할 첫 번째 후보는 ARMv4(ARMv32T를 제거하지 않음), iWMMXt, BEXNUMX 및 OABI입니다.
출처 : https://lkml.org