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.23. 固件性能数据表 (FPDT)

本节介绍固件性能数据表 (FPDT) 的格式,它提供了足够的信息来描述平台初始化性能记录。此信息表示与固件启动过程中的特定任务相关的启动性能数据。 FPDT仅包含每个平台启动过程中的里程碑:

  • 复位序列结束(在平台启动固件初始化开始时记录的计时器值 - 通常在复位向量处)

  • 移交至OS 装载机

此信息表示固件启动性能数据集,该数据集将用于跟踪每个UEFI阶段的性能,并且可用于跟踪因硬件/软件配置而发生的更改所产生的影响。

所有计时器值均以 1 纳秒增量表示。例如,如果记录指示在计时器值为 25678 时发生事件,则这意味着自上次重置计时器测量以来已经过去了 25.678 微秒。所有计时器值的精度都要求为 +/- 10%。

../_images/ACPI_FPDT.png

图 5.8 FPDT 层次结构

表 5.87 固件性能数据表 (FPDT) 格式 字段字节长度字节偏移描述
标题
- 签名40“FPDT”固件性能数据表签名。
- 长度44整个FPDT的表长度(以字节为单位)。
- 修订18与该表的签名字段相对应的结构的修订版。对于符合该规范修订版的固件性能数据表,修订版为1。
- 校验和19整个表(包括校验和字段)必须加为零才能被视为有效。
- OEMID61010 OEM 提供的字符串,用于标识 OEM。
- OEM 表 ID81616 OEM 提供的字符串,OEM 使用该字符串来标识此特定数据表。
- OEM 修订424OEM 提供的修订号。
- 创建者ID42828创建此表的实用程序的供应商ID。
- 创建者修订43232创建此表的实用程序的修订版。
性能记录–3636一组 FPDT 性能记录,如表 5-112 所定义。{添加链接}

5.2.23.1. 性能记录格式

性能记录由包含记录类型和长度的子标头以及一组数据组成。数据的格式特定于记录类型。以这种方式,记录的大小仅与包含要传送的特定类型的数据所需的大小相同。

请注意,除非另有说明,否则给定类型允许有多个记录,因为某些事件在引导过程中可能会发生多次。

表 5.88 性能记录结构 字段字节长度字节偏移描述
性能记录类型20该值描述了性能记录的格式和内容。
记录长度12该值描述性能记录的长度(以字节为单位)。
修订13如果扩展记录类型的格式,则更新该值。对性能记录布局的任何更改都必须向后兼容,因为如果仍然适用,则必须保留所有先前定义的字段,但新定义的字段允许增加性能记录的长度。以前定义的记录字段不得重新定义,但允许废弃。
数据–4该字段的内容由性能记录类型定义定义。

5.2.23.2. FPDT 性能记录类型

下表描述了FPDT中包含的各种记录及其相应的记录类型。

表 5.89 FPDT 性能记录类型 记录类型值类型描述
0x00000x0000固件基本启动性能指针记录包含指向固件基本引导性能表的指针的记录。
0x00010x0001 S3 性能表指针记录包含指向S3性能表的指针的记录。
0x0002 - 0x0FFF0x0002 - 0x0FFF保留保留供ACPI规范使用。
0x1000 - 0x1FFF0x1000 - 0x1FFF保留保留供平台供应商使用。
0x2000 - 0x2FFF0x2000 - 0x2FFF保留保留供硬件供应商使用。
0x3000 - 0x3FFF0x3000 - 0x3FFF保留保留供平台固件供应商使用。
0x4000 - 0xFFFF0x4000 - 0xFFFF保留保留供将来使用

5.2.23.3. 运行时性能记录类型

下表描述了各种运行时性能记录及其相应的记录类型。这些记录不包含在FPDT中;它们由FPDT中各自的指针记录引用。

表 5.90 运行时性能记录类型 记录类型值类型描述
0x00000x0000基本S3 恢复表现记录描述S3恢复操作的最低固件性能指标的性能记录。
0x00010x0001基本S3 暂停性能记录描述S3挂起操作的最低固件性能指标的性能记录。
0x00020x0002固件基本启动性能数据记录性能记录显示固件启动过程关键阶段的基本性能指标。
0x0003 - 0x0FFF0x0003 - 0x0FFF保留保留供ACPI规范使用。
0x1000 - 0x1FFF0x1000 - 0x1FFF保留保留供平台供应商使用。
0x2000 - 0x2FFF0x2000 - 0x2FFF保留保留供硬件供应商使用。
0x3000 - 0x3FFF0x3000 - 0x3FFF保留保留供平台固件供应商使用。
0x4000 - 0xFFFF0x4000 - 0xFFFF保留保留供将来使用

5.2.23.4. 固件基本启动性能表指针记录

固件基本引导性能表指针记录包含指向固件基本引导性能表的指针。固件基本引导性能表本身存在于系统内存映射中描述为ACPIAddressRangeReserved 的内存范围内。对于任何系统,记录指针都是FPDT中必需的条目,并且该指针必须指向有效的静态物理地址。将只产生这些记录中的一份。

表 5.91 固件基本启动性能表指针记录 字段字节长度字节偏移描述
性能记录类型200 - 固件基本启动性能表指针记录
记录长度1216 - 该值描述性能记录的长度(以字节为单位)。
修订131 - 本性能记录的修订
保留44保留
FBPT 指针88固件基本启动性能表的 64 位处理器相对物理地址

5.2.23.5. S3 性能表指针记录

S3性能表指针记录包含指向S3性能表的指针。 S3性能表本身存在于系统内存映射中描述为ACPIAddressRangeReserved 的内存范围内。对于任何支持S3状态的系统,记录指针是FPDT中必需的条目,并且该指针必须指向有效的静态物理地址。将只产生这些记录中的一份。

表 5.92 S3 性能表指针记录 字段字节长度字节偏移描述
性能记录类型201 - S3 性能表指针记录
记录长度1216 - 该值描述性能记录的长度(以字节为单位)。
修订131 - 本性能记录的修订
保留44保留
S3PT 指针88S3 性能表的 64 位处理器相对物理地址

5.2.23.6. 固件基本启动性能表

固件基本启动性能表位于FPDT之外。它包括表 5.93 中定义的标头和一个或多个性能记录。

所有事件条目都将在平台运行时固件S4恢复序列期间被覆盖。固件基本启动性能表必须包括固件基本启动性能数据记录。其他条目是可选的。

表 5.93 固件基本启动性能表头 字段字节长度字节偏移描述
签名40“FBPT”是要使用的签名。
长度44固件基本启动性能表的长度。这包括后续记录的标头和分配的大小。该大小至少包括标头和固件基本引导性能数据记录的大小。

5.2.23.7. 固件基本启动性能数据记录

固件基本启动性能数据记录包含与最终OS加载程序活动相关的计时器信息,以及与启动时间开始和结束信息相关的数据。

表 5.94 固件基本启动性能数据记录 字段字节长度字节偏移描述
性能记录类型202 - 固件基本启动性能数据记录。将只产生这些记录中的一份。
记录长度1248 - 该值描述性能记录的长度(以字节为单位)。
修订132 - 本性能记录的修订
保留44保留
重置结束88固件映像执行开始时记录的计时器值。这可能并不总是为零或接近于零。
OS 加载程序 LoadImage 开始81616在将OS引导加载程序加载到内存之前记录计时器值。对于非UEFI兼容的引导,该字段必须为零。
OS 加载程序 StartImage 启动824在启动当前加载的OS引导加载程序映像之前记录计时器值。对于非UEFI兼容启动,记录的计时器值将恰好在INT19h 处理程序调用之前。
退出BootServices 入口83232当OS加载程序调用UEFI兼容固件的 ExitBootServices 函数时记录的计时器值。对于非UEFI兼容的靴子,该字段必须为零。
ExitBootServices 退出840计时器值记录在OS加载程序从UEFI兼容固件的 ExitBootServices 函数夺回控制权之前的时间点。对于非UEFI兼容的靴子,该字段必须为零。

5.2.23.8. S3 性能表

S3性能表位于FPDT之外。它包括表 5.96 中定义的标头和一个或多个性能记录。

所有事件条目必须在初始引导序列期间初始化为零,并在平台运行时固件S3恢复序列期间被覆盖。 S3绩效表必须包括基本S3恢复性能记录。其他条目是可选的。

表 5.95 S3 性能表标题 字段字节长度字节偏移描述
签名40“S3PT”是要使用的签名。
长度44S3性能表的长度。这包括后续记录的标头和分配的大小。该大小至少包括标题和基本S3恢复性能记录的大小。
表 5.96 基本S3 恢复表现记录 字段字节长度字节偏移描述
------------
运行时性能记录类型200 - 基本S3 恢复表现记录类型。将只产生这些记录中的一份。
记录长度1224 - 该值描述了此性能记录的长度(以字节为单位)。
修订131 - 本性能记录的修订
简历计数44自上次完整启动序列以来S3恢复周期数的计数。
完整简历88计时器在平台运行时固件S3恢复结束时记录,就在切换到OS唤醒向量之前。仅保留最近的恢复周期时间。
平均简历81616自上次完整启动序列(包括最近的恢复)以来记录的所有恢复周期的平均计时器值。请注意,不需要保留计时器值的整个日志来计算该平均值。平均恢复新 = (平均恢复旧 * (恢复计数 -1) + 完整恢复) / 恢复计数
表 5.97 基本S3 暂停性能记录 字段字节长度字节偏移描述
------------
运行时性能记录类型201 - 基本S3 暂停性能记录。将产生零到一的这些记录。
记录长度1220 - 该值描述了此性能记录的长度(以字节为单位)。
修订131 - 本性能记录的修订
暂停启动84记录在OS的计时器值在输入S3后写入SLP_TYP。仅保留最近的挂起周期的计时器值。
暂停结束81212最终固件写入SLP_TYP(或其他机制)时记录的计时器值,用于触发硬件进入S3。仅保留最近的挂起周期的计时器值。
Prev
5.2.22. 启动图形资源表 (BGRT)
Next
5.2.24. 通用定时器描述表 (GTDT)