Linux 内核支持 ARM Cortex-A78

Linux 内核支持 ARM Cortex-A78

我计划为基于 ARM Cortex A78 的系统启动 Linux。
但我对此有些怀疑。

1.我应该选择哪个内核版本?
我检查了 5.4.112、5.10.30、5.11.14、5.12-rc7 内核,将 ARM_CPU_PART_CORTEX_A78 放入 root/arch/arm64/include/cputype.h,但没有匹配项。
您能推荐一个支持 Cortex-A78 的内核版本吗?或者
您能推荐任何可以为内核添加对 Cortex-A78 支持的补丁吗?

2. 我的目标平台/机器是模拟器,仅配备 ARM Cortex A78 内核和 DDR RAM。目前没有其他外围设备。
这台机器的最小内核配置应该是什么?
在配置内核时,defconfig 中的哪些选项可以选择为“否”,以保证所选的最小配置一定能在上述平台上启动 Linux?

3. 我应该使用未压缩的图像还是压缩的图像?
请注意,我计划将编译后的 Linux 映像的二进制文件放入 RAM 中,A78 在重置时会跳转到该位置。如果需要,我们还将为 A78 开发基本的启动代码,这将允许处理器跳转到 RAM 中的 Linux 映像位置。

我知道在嵌入式设备上启动 Linux 需要更多的软件组件,例如 bood 代码、FSBL、uboot 等。
但是,我只是想实验一下,这就是为什么我想为 ARM Cortex-A78 和 DDR RAM 系统编译尽可能最小的 Linux,并希望看到相同的系统在 Linux 上运行。

除了上述问题的答案外,我们还非常欢迎您提出建议。
如果我对您有任何不清楚的地方,请随时告知我。

感谢与问候,
Maunik Patel

答案1

  1. Linux 版本

您不需要任何特定的 Linux 内核版本。现代 ARM CPU 通过 ID 寄存器报告其支持的功能 - 内核不需要了解您正在使用的确切处理器的具体知识。尽可能选择最新的内核。

  1. 最低平台

运行 Linux 的唯一真正要求是中断控制器(Cortex-A78 设计为与符合 ARM 的 GICv4 规范的中断控制器配合使用)和计时器(包含在 A78 中)。但您需要某种方式与系统交互 - UART 上的串行控制台就是实现此目的的方法。

如果您完全绕过 EL3,并编写一个包装器,将其放入 EL2 并在那里运行内核,那么您可能不需要为安全世界单独设置控制台。再说一次,UART 很便宜,所以无论如何也许可以添加一个备用的。但是,只要您考虑运行多个核心,就需要 PSCI 实现。此时,您不妨将 Trusted Firmware-A 作为您的 EL3 固件。

然后,您需要一个设备树来描述 DRAM、CPU、UART、GIC 和通用计时器。(以及任何 PSCI 挂钩。)

  1. 是否压缩内核

64 位 ARM 不支持像 32 位 ARM 那样的独立可执行自解压 zImage。除非您开始担心存储空间,否则压缩内核毫无意义。

相关内容