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
  • 第 5 章

    • 总览
    • 5.1. 系统描述表架构概述
    • 5.2. ACPI 系统描述表
      • 5.2.1. 保留位和字段
      • 5.2.2. 兼容性
      • 5.2.3. 地址格式
      • 5.2.4. 通用唯一标识符 (UUID)
      • 5.2.5. 根系统描述指针 (RSDP)
      • 5.2.6. 系统描述表头
      • 5.2.7. 根系统描述表 (RSDT)
      • 5.2.8. 扩展系统描述表 (XSDT)
      • 5.2.9. 固定 ACPI 描述表 (FADT)
      • 5.2.10. 固件 ACPI 控制结构 (FACS)
      • 5.2.11. 定义块
      • 5.2.12. 多个APIC描述表(MADT)
      • 5.2.13. 全局系统中断
      • 5.2.14. 智能电池表 (SBST)
      • 5.2.15. 嵌入式控制器启动资源表 (ECDT)
      • 5.2.16. 系统资源关联表 (SRAT)
      • 5.2.17. 系统局部性信息表 (SLIT)
      • 5.2.18. 更正平台错误轮询表 (CPEP)
      • 5.2.19. 最大系统特性表 (MSCT)
      • 5.2.20. ACPI RAS 功能表 (RASF)
      • 5.2.21. 内存电源状态表 (MPST)
      • 5.2.22. 启动图形资源表 (BGRT)
      • 5.2.23. 固件性能数据表 (FPDT)
      • 5.2.24. 通用定时器描述表 (GTDT)
      • 5.2.25. NVDIMM 固件接口表 (NFIT)
      • 5.2.26. 安全设备 (SDEV) ACPI 表
      • 5.2.27. 异构内存属性表(HMAT)
      • 5.2.28. 平台调试触发器表 (PDTT)
      • 5.2.29. 处理器属性拓扑表 (PPTT)
      • 5.2.30. 平台健康评估表 (PHAT)
    • 5.3. ACPI 命名空间
    • 5.4. 定义块编码
    • 5.5. 控制方法和 ACPI 源语言 (ASL)
      • 5.5.1. ASL 报表
      • 5.5.2. 控制方法执行
        • 5.5.2.1. 论点
        • 5.5.2.2. 方法调用约定
        • 5.5.2.3. 局部变量和本地创建的数据对象
        • 5.5.2.4. 进入运营区域
          • 5.5.2.4.1. 运营地区
          • 5.5.2.4.2. CMOS 协议
          • 5.5.2.4.3. PCI 设备 BAR 目标协议
          • 5.5.2.4.4. 声明IPMI运营区域
          • 5.5.2.4.5. 声明 GeneralPurposeIO 操作区域
          • 5.5.2.4.6. 声明 GenericSerialBus 操作区域
            • 5.5.2.4.6.1. 声明 GenericSerialBus 字段
            • 5.5.2.4.6.2. 声明和使用 GenericSerialBus 数据缓冲区
            • 5.5.2.4.6.3. 使用通用串行总线协议
          • 5.5.2.4.7. 声明PCC运营区域
    • 5.6. ACPI 事件编程模型
      • 5.6.1. ACPI 事件编程模型组件
      • 5.6.2. ACPI 事件类型
      • 5.6.3. 固定事件处理
      • 5.6.4. 通用事件处理
      • 5.6.5. GPIO 信号 ACPI 事件
      • 5.6.6. 设备对象通知
      • 5.6.7. 设备类特定对象
      • 5.6.8. 对象、方法和资源的预定义ACPI名称
      • 5.6.9. 中断信号ACPI事件
      • 5.6.10. 使用设备 _PRW 对象管理唤醒事件
    • 5.7. 预定义对象
    • 5.8. 系统配置对象

5.2.5. 根系统描述指针 (RSDP)

在OS初始化期间,OSPM必须从平台获取根系统描述指针(RSDP)结构。当OSPM定位根系统描述指针(RSDP)结构时,它会使用RSDP中提供的物理系统地址定位根系统描述表(RSDT)或扩展根系统描述表(XSDT)。

5.2.5.1. 在 IA-PC 系统上查找 RSDP

OSPM 通过在 16 字节边界上的物理内存范围中搜索有效的根系统描述指针结构签名和校验和匹配来查找根系统描述指针 (RSDP) 结构,如下所示:

  • 扩展BIOS数据区 (EBDA) 的前 1 个KB。对于EISA或MCA系统,EBDA可在BIOS数据区的两字节位置 40:0Eh 中找到。

  • BIOS 只读存储空间位于 0E0000h 和 0FFFFFh 之间。

5.2.5.2. 在启用 UEFI 的系统上查找 RSDP

在启用统一可扩展固件接口 (UEFI) 的系统中,指向 RSDP 结构的指针存在于 EFI 系统表中。在调用时,OS加载程序提供了一个指向EFI系统表的指针。 OS加载器必须从EFI系统表中检索指向RSDP结构的指针,并使用OS相关数据结构将该指针传送到OSPM,作为从OS加载器向OS移交控制权的一部分。

OS加载程序通过检查EFI系统表中的EFI配置表来定位指向RSDP结构的指针。 EFI 配置表条目由全局唯一标识符 (GUID)/表指针对组成。 UEFI规范为ACPI定义了两个 GUID;一个用于 ACPI 1.0,另一个用于 ACPI 2.0 或更高版本的规范修订版。

指向 ACPI 1.0 规范 RSDP 结构的指针 EFI GUID 为:

  • eb9d2d30-2d88-11d3-9a16-0090273fc14d。

指向 ACPI 2.0 或更高版本规范 RSDP 结构的指针 EFI GUID 为:

  • 8868e871-e4f1-11d3-bc22-0080c73c8881。

与 ACPI 兼容的 OS 的 OS 加载程序将首先使用当前版本 GUID 搜索 RSDP 结构指针(RSDP 结构),如果找到,将使用相应的 RSDP 结构指针。如果找不到GUID,则OS加载程序将使用ACPI1.0 版本GUID来搜索RSDP结构指针。

在通过EFIExitBootServices 接口进行平台控制之前,OS加载程序必须从EFI系统表中检索指向RSDP结构的指针。有关详细信息,请参阅UEFI规格。

5.2.5.3. 根系统描述指针 (RSDP) 结构

结构中包含的修订号指示表结构的大小。

表 5.3 RSDP 结构 字段字节长度字节偏移描述
签名80“RSD PTR ”(请注意,此签名必须包含尾随空白字符。)
校验和18这是 ACPI 1.0 规范中定义的字段的校验和。这仅包括该表的前 20 个字节,即字节 0 到 19,包括校验和字段。这些字节之和必须为零。
OEMID69OEM 提供的字符串,用于标识 OEM。
修订11515本结构的修订。较大的修订号向后兼容较低的修订号。该表的ACPI版本 1.0 修订号为零。 ACPI版本 1.0 RSDP结构仅包括该表的前 20 个字节,即字节 0 到 19。它不包括长度字段及其他字段。该字段的当前值为 2。
Rsdt地址41616 RSDT的 32 位物理地址。
长度*420表的长度,以字节为单位,包括表头,从偏移0开始。该字段用于记录整个表的大小。此字段在ACPI版本 1.0RSDP结构中不可用。
Xsdt地址*824XSDT的 64 位物理地址。
扩展校验和*13232这是整个表的校验和,包括两个校验和字段。
保留*33333保留字段
  • 仅当修订值为 2 或以上时,这些字段才有效。
Prev
5.2.4. 通用唯一标识符 (UUID)
Next
5.2.6. 系统描述表头