ARM Cortex-A78에 대한 Linux 커널 지원

ARM Cortex-A78에 대한 Linux 커널 지원

ARM Cortex A78 기반 시스템용 Linux를 부팅할 계획입니다.
그리고 나는 그것에 대해 약간의 의구심을 가지고 있습니다.

1. 어떤 커널 버전을 선택해야 합니까?
ARM_CPU_PART_CORTEX_A78에 대해 5.4.112, 5.10.30, 5.11.14, 5.12-rc7 커널을 루트/arch/arm64/include/cputype.h에서 확인했지만 일치하는 항목이 없습니다.
Cortex-A78을 지원하는 커널 버전을 제안해 주실 수 있나요? 또는
Cortex-A78 지원을 커널에 추가할 수 있는 패치를 제안할 수 있습니까?

2. 내 대상 플랫폼/머신은 ARM Cortex A78 코어와 DDR RAM만 갖춘 에뮬레이터입니다. 현재로서는 다른 주변 장치가 없습니다.
이 머신의 최소 커널 구성은 무엇입니까?
커널을 구성하는 동안 defconfig에서 어떤 옵션을 '아니요'로 선택할 수 있으며, 선택한 최소 구성으로 위에 언급된 플랫폼에서 Linux가 확실히 부팅된다는 보장이 있습니까?

3. 압축되지 않은 이미지를 사용해야 합니까, 아니면 압축된 이미지를 사용해야 합니까?
컴파일된 Linux 이미지의 바이너리를 RAM의 A78이 재설정 시 점프하는 위치에 배치할 계획입니다. 필요한 경우 프로세서가 RAM의 Linux 이미지 위치로 점프할 수 있도록 하는 A78용 기본 부팅 코드도 개발할 것입니다.

임베디드 장치에서 Linux를 부팅하려면 bood 코드, FSBL, uboot 등과 같은 더 많은 소프트웨어 구성 요소가 필요하다는 것을 알고 있습니다.
하지만 실험하고 싶기 때문에 ARM Cortex-A78 및 A DDR RAM용으로 가능한 가장 작은 Linux를 컴파일하고 싶습니다. Linux에서 실행되는 동일한 시스템을 보고 싶습니다.

위 질문에 대한 답변 외에도 귀하의 제안을 높이 평가하겠습니다.
제가 이해하기 어려운 부분이 있으면 언제든지 알려주시기 바랍니다.

감사합니다,
Maunik Patel

답변1

  1. 리눅스 버전

특정 Linux 커널 버전이 필요하지 않습니다. 최신 ARM CPU는 ID 레지스터를 통해 지원되는 기능을 보고합니다. 커널에는 사용 중인 정확한 프로세서에 대한 구체적인 지식이 필요하지 않습니다. 가능한 가장 최신 커널을 선택하세요.

  1. 최소 플랫폼

Linux를 실행하기 위한 유일한 실제 요구 사항은 인터럽트 컨트롤러입니다. Cortex-A78은 ARM의 GICv4 사양을 준수하는 하나와 타이머(A78에 포함됨)와 함께 작동하도록 설계되었습니다. 그러나 시스템과 상호 작용할 수 있는 방법이 필요할 것이며 UART의 직렬 콘솔이 이를 수행하는 방법입니다.

EL3을 완전히 우회하고 EL2에 삽입되어 거기서 커널을 실행하는 래퍼를 작성하면 보안 세계를 위한 별도의 콘솔이 필요하지 않을 수도 있습니다. 그리고 다시 UART는 저렴하므로 어쨌든 여분의 UART를 추가할 수도 있습니다. 그러나 둘 이상의 코어를 실행하려면 PSCI 구현이 필요합니다. 이 시점에서는 EL3 펌웨어로 Trusted Firmware-A를 가져올 수도 있습니다.

그런 다음 DRAM, CPU, UART, GIC 및 일반 타이머를 설명하는 장치 트리가 필요합니다. (그리고 모든 PSCI 후크.)

  1. 압축 커널 여부

64비트 ARM은 32비트 ARM처럼 독립형 실행 가능한 자체 압축 해제 zImage를 지원하지 않습니다. 저장 공간에 대해 걱정하지 않는 한 커널을 압축하는 것은 가치가 없습니다.

관련 정보