ACPI 中文文档ACPI 中文文档
首页
第 1 章
第 2 章
第 3 章
第 4 章
第 5 章
第 6 章
第 7 章
第 8 章
第 9 章
第 10 章
第 11 章
第 12 章
第 13 章
第 14 章
第 15 章
第 16 章
第 17 章
第 18 章
第 19 章
第 20 章
第 21 章
附录 A
首页
第 1 章
第 2 章
第 3 章
第 4 章
第 5 章
第 6 章
第 7 章
第 8 章
第 9 章
第 10 章
第 11 章
第 12 章
第 13 章
第 14 章
第 15 章
第 16 章
第 17 章
第 18 章
第 19 章
第 20 章
第 21 章
附录 A
  • 第 15 章

    • 总览
    • 15.1. INT 15H, E820H - 查询系统地址映射
    • 15.2. E820 假设与限制
    • 15.3. UEFI GetMemoryMap() 启动服务函数
    • 15.4. UEFI 假设和限制
    • 15.5. 示例地址映射
    • 15.6. 示例:操作系统用法

15. 系统地址映射接口

本节说明兼容 ACPI 的系统如何将其内存资源/类型映射传达给 OSPM。系统向 OSPM 传达内存资源/映射有三种方式。第一种是 INT 15 BIOS 接口,用于基于 IA-PC 的系统,以传达系统的初始内存映射。启用 UEFI 的系统使用 UEFI GetMemoryMap() 启动服务函数将内存资源传达给操作系统加载器。然后,这些资源必须由操作系统加载器传达给 OSPM。有关 UEFI 服务的更多信息,请参见 UEFI 规范。

最后,如果内存资源可能动态添加或移除,则在 ACPI 命名空间中定义内存设备,以传达该内存设备所描述的资源信息(见 内存设备)。

ACPI 定义了以下地址范围类型。

表 15.1 地址范围类型

值助记符在 S4 中保存描述
1AddressRangeMemory是该范围是操作系统可用的可用 RAM。
2AddressRangeReserved否该地址范围正被系统使用或保留,不应包含在操作系统内存管理器的可分配内存池中。
3AddressRangeACPI是ACPI 可回收内存。系统读取 ACPI 表之后,该范围内的可用 RAM 可供 OS 使用。
4AddressRangeNVS是ACPI NVS 内存。该地址范围正被系统使用或保留,操作系统不得使用。要求在 NVS 睡眠期间保存并恢复该范围。
5AddressRangeUnusable否该地址范围包含已检测到错误的内存。OSPM 不得使用该范围。
6AddressRangeDisabled否该地址范围包含未启用的内存。OSPM 不得使用该范围。
7AddressRangePersistent-Memory否OSPM 必须将此内存理解为具有非易失属性,并将其与传统易失内存区别处理。该内存区域支持按字节寻址的非易失性。注意:使用 AddressRangePersistentMemory 报告的内存的扩展属性应将位 [0] 置为 1(见 地址范围描述符结构的扩展属性)。
8 - 11未定义否保留供将来使用。OSPM 必须将任何此类型的范围视为其返回类型为 AddressRangeReserved。
12OEM 定义否操作系统不应使用供应商定义范围内的内存类型,因为不同供应商之间可能发生冲突。
13 to 0xEFFFFFFF未定义否保留供将来使用。OSPM 必须将任何此类型的范围视为其返回类型为 AddressRangeReserved。
0xF0000000 to 0xFFFFFFFFOEM 定义否操作系统不应使用供应商定义范围内的内存类型,因为不同供应商之间可能发生冲突。

平台运行时固件可以使用 AddressRangeReserved 地址范围类型,将各种地址屏蔽为不适合可编程设备使用。平台运行时固件这样做的部分原因如下:

  • 该地址范围包含系统 ROM。

  • 该地址范围包含 ROM 正在使用的 RAM。

  • 该地址范围正被内存映射系统设备使用。

  • 无论出于何种原因,该地址范围都不适合标准设备用作设备内存空间。

  • 该地址范围位于某个 NVRAM 设备内,其中对内存位置的读写已不再成功,也就是说,该设备已磨损损坏。

  • 当进入 S4 睡眠状态或从 S4 睡眠状态返回时,OSPM 不会保存或恢复报告为 AddressRangeReserved、AddressRangeUnusable、AddressRangeDisabled 或 AddressRangePersistentMemory 的内存。

  • 平台引导固件必须确保,报告为 AddressRangePersistentMemory 的内存内容在系统复位或电源循环事件后得以保留。

  • 15.1. INT 15H, E820H - 查询系统地址映射

  • 15.2. E820 假设与限制

  • 15.3. UEFI GetMemoryMap() 启动服务函数

  • 15.4. UEFI 假设与限制

  • 15.5. 地址映表示例

  • 15.6. 示例:操作系统使用

小节

  • 15.1. INT 15H, E820H - 查询系统地址映射
  • 15.2. E820 假设与限制
  • 15.3. UEFI GetMemoryMap() 启动服务函数
  • 15.4. UEFI 假设和限制
  • 15.5. 示例地址映射
  • 15.6. 示例:操作系统用法
Next
15.1. INT 15H, E820H - 查询系统地址映射