在 u-boot DTS 中禁用 CPU 核心

在 u-boot DTS 中禁用 CPU 核心

我试图“说服”FriendlyARM ZeroPi(全志 H3,4 x Cortex-A7)它的 SoC 中只有 3 个物理内核,并且只有 256M RAM(而不是实际板上的 512 个)。

我已经删除了文件中cpu3对应的行sun8i-h3.dtsi(发现这里),重建 u-boot 并将其闪存到 SD 卡上,但无济于事,因为 linux 仍然使用第四个核心。

至于RAM问题,我只找到了评论文件,指出

引导加载程序通常会填充内存节点

此时我的问题如下:

  1. 为什么 cpu3 仍然启动,即使它不存在于 DTS 中?
  2. 我怎样才能阻止 cpu3 启动呢?
  3. 我应该如何指定内存的大小?

我不想诉诸内核参数,因为这些参数应该在将内核加载到内存之前设置。此外,我不希望 Linux 稍后能够启动第四个核心,如果我使用该maxcpus=3参数,我就可以启动第四个核心。

目标是运行一个 AMP 系统,其中 RTOS 可以控制第四个核心和一部分内存。因此,我想对 Linux 完全隐藏有第四个核心的事实。我不介意更改内核,但我花了几个小时盯着它的源代码,但我仍然没有弄清楚它如何访问第四个核心。我不想进行非常具体的修复,例如对内核进行硬编码以仅处理最多 3 个内核。我希望有一个更“动态”的解决方案。

相关内容