【问题标题】:After boot does Linux reclaims Tianocore boot loader memory引导后 Linux 会回收 Tianocore 引导加载程序内存
【发布时间】:2015-10-16 17:59:13
【问题描述】:

我正在使用 Tianocore 引导 Linux,我了解 Linux 可以使用 Tianocore 运行时服务(重启、update_capsule 等),这意味着 Tianocore 代码的某些部分仍未被 linux 修改。 Linux 永远不会触及那段内存。

我的问题是,它是 Tianocore 代码的一部分(与运行时服务相关)还是整个 Tianocore 即使在启动后仍然不受 Linux 内核的影响?

以及,Linux 内核如何知道包含 Tianocore 映像的内存区域?

【问题讨论】:

  • 我投票结束这个问题,因为它不是关于具体的编程问题,而是关于 Linux 实现细节。
  • 同意,但如果可以重新措辞以适应一些非常有用的答案。
  • TeanoCore 是示例代码实现。这并不意味着您平台上的 UEFI 固件正是以这种方式实现的。 TeanoCore 只是供应商和 UEFI 开发人员的参考代码。是 UEFI 运行时服务(作为加载到 dram 中的 UEFI 固件的一部分)保持活动状态,直到平台启动并可供操作系统使用,并且有一个 UEFI 标准说明 UEFI 运行时接入点的物理地址的确切位置services 是以及它占用了多少内存。

标签: bios uefi


【解决方案1】:

many memory types 可以由 UEFI 实现分配(使用 AllocatePool 或 AllocatePages BootServices),其中一些将保持 UEFI 感知操作系统不变,其他将被释放。所有不应释放的内存区域也将添加到 e820 内存映射中,以防止旧版操作系统损坏它们。

通常,只有一小部分分配的内存在 ExitBS 事件之后没有被释放:运行时服务代码和数据、ACPI 表和 MMIO 区域。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-19
    • 1970-01-01
    相关资源
    最近更新 更多