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.6.6. 设备对象通知

正常运行时,平台需要通知OSPM各种设备相关事件。这些通知是使用 Notify 运算符完成的,该运算符指示目标设备、热区域或处理器对象以及表示通知目的的通知值。从 0 到 0x7F 的通知值在所有设备对象类型中都很常见。 0xC0 及以上的通知值保留供硬件供应商针对硬件特定通知进行定义。从 0x80 到 0xBF 的通知值是特定于设备的,并由每个此类设备定义。有关 Notify 运算符的更多信息,请参阅第 19.6.94 节。

表 5.154 设备对象通知值 值描述
0巴士检查。此通知在设备对象上执行,以向OSPM指示它需要从收到通知的点开始在设备树上执行即插即用重新枚举操作。 OSPM通常会在启动时自动执行完整枚举,但在系统初始化后,ACPI、AML代码负责在需要重新枚举操作时通知OSPM。通知越准确、越接近设备树的实际变化,操作系统的响应就越高效;但是,当无法确认设备更改时,这也可能是一个问题。例如,如果硬件在系统休眠状态期间无法识别特定位置的设备更改,则会在唤醒时发出总线检查通知,以通知OSPM它需要检查设备更改的配置。
1设备检查。用于通知OSPM设备出现或消失。如果该设备已出现,OSPM 将从父设备重新枚举。如果设备消失,OSPM 将使设备状态无效。 OSPM 可以优化重新枚举。如果 _DCK 存在,则假定 Notify(object,1) 指示取消停靠请求。如果设备是桥接器,OSPM可以重新枚举桥接器和子总线。
2设备唤醒。用于通知OSPM设备已发出唤醒事件信号,并且OSPM需要通知OSPM该设备的本机设备驱动程序。这仅用于支持 _PRW 的设备。
3弹出请求。用于通知OSPM设备需要弹出,并且OSPM需要执行即插即用弹出操作。 OSPM 将运行 _EJx 方法。
4设备检查灯。用于通知OSPM设备出现或消失。如果设备已出现,OSPM 将从设备本身(而不是父设备)重新枚举。如果设备消失,OSPM 将使设备状态无效。
5频率不匹配。用于通知OSPM插入插槽的设备无法连接到总线,因为该设备无法在总线的当前频率下运行。例如,如果用户尝试将 33 MHzPCI设备热插入运行频率高于 33 MHz 的总线上的插槽,则会使用此方法。
6总线模式不匹配。用于通知OSPM设备已插入到不支持该设备当前操作模式的插槽或托架中。例如,如果用户尝试将PCI设备热插入到以PCI-X模式运行的总线上的插槽中,则会使用此功能。
7电源故障。用于通知OSPM设备因电源故障而无法脱离D3状态。
8能力检查。此通知在设备对象上执行,以向OSPM指示它需要重新评估与设备关联的_OSC 控制方法。
9设备_PLD 检查。当设备的连接点发生变化时,用于通知OSPM重新评估_PLD对象。
0xA预订的。
0xB系统位置信息更新。系统的动态重新配置可能会导致现有的相对距离信息发生变化。平台将系统位置信息更新通知发送到设备树上的点,以向OSPM指示它需要从通知的点开始调用与设备树上的系统位置关联的_SLI对象。

0x0C | 0x0C预订的。 0x0D | 0x0D系统资源关联性更新。设备的动态迁移可能会导致现有系统资源关联性发生变化。平台软件向设备树上的某个点发出系统资源关联性更新通知,以向OSPM指示它需要调用被通知设备的_PXM对象来更新资源关联性。 0x0E|异构内存属性更新。系统的动态重新配置可能会导致现有延迟、带宽或内存端缓存属性发生变化。平台软件向设备树上的某个点发出异构内存属性更新通知,以向OSPM指示它需要从通知的点开始调用与设备树上的异构内存属性关联的_HMA对象。 0x0F|错误断开恢复:用于通知OSPM 出于错误遏制目的异步删除设备。该通知是在仍然存在的总线设备上发出的,但其一个或多个子设备由于错误情况已与系统断开连接。 OSPM 应使与断开连接的子设备关联的软件状态无效,而不尝试访问这些子设备。随后,OSPM可以选择尝试恢复断开连接的子设备,并且如果可能的话,通过总线特定方法将它们恢复到功能状态。 OSPM 通过 _OST 方法将这些恢复操作的状态传达给固件。第 6.3.5.2 节描述了相关的 _OST 状态代码。 OSPM 通过总线特定机制枚举对给定类型总线的错误断开恢复通知的支持。 0x10-0xFF | 0x10-0xFF |预订的。

以下是为特定ACPI设备定义的通知值。有关特定于对象的通知的更多信息,请参阅相应设备/对象的部分。

表 5.155 系统总线通知值 十六进制值描述
0x800x80预订的。
0x810x81 正常关闭请求。用于通知OSPM已请求正常关闭操作系统。一旦操作系统完成正常关闭程序,它应该开始转换到G2“软关闭”状态。通知操作符必须以系统总线为目标:(_SB)。有关关闭处理的说明,请参阅第 6.3.5 节。
表 5.156 控制方法电池设备通知值 十六进制值描述
------
0x800x80 电池状态已更改。用于通知OSPM控制方法电池设备状态已更改。
0x810x81 电池信息已更改。用于通知OSPM控制方法电池设备信息已更改。仅当更换电池时才会出现这种情况。
0x820x82 电池维护数据状态标志检查。用于通知OSPM 应检查控制方法电池设备电池维护数据状态标志。
0x83-0xBF0x83-0xBF
表 5.157 电源对象通知值 十六进制值描述
------
0x800x80 电源状态已更改。用于通知OSPM电源状态已更改。
0x810x81 电源信息已更改。用于通知OSPM电源信息已更改。
0x82-0xBF0x82-0xBF
表 5.158 热区对象通知值 十六进制值描述
------
0x800x80 热区状态已更改。用于通知OSPM热区温度已发生变化。
0x810x81 热区跳变点已更改。用于通知OSPM热区跳变点已更改。
0x820x82 设备列表已更改。用于通知OSPM热区设备列表(_ALx、_PSL、_TZD)已更改。
0x830x83 热/主动冷却关系表已更改。用于通知OSPM热关系表或主动冷却关系表中的值已更改。
0x84-0xBF0x84-0xBF
表 5.159 控制方法电源按钮通知值 十六进制值描述
------
0x800x80 S0 按下电源按钮。用于在系统处于S0状态时通知OSPM已按下电源按钮。请注意,当系统处于S1-S4状态时按下按钮时,必须发出设备唤醒通知。
0x81-0xBF0x81-0xBF
表 5.160 控制方法睡眠按钮通知值 十六进制值描述
------
0x800x80 S0 按下睡眠按钮。用于通知OSPM系统处于S0状态时已按下睡眠按钮。请注意,当系统处于S1-S4状态时按下按钮时,必须发出设备唤醒通知。
0x81-0xBF0x81-0xBF
表 5.161 控制方法盖子通知值 十六进制值描述
------
0x800x80 盖子状态已更改。用于通知OSPM控制方法盖子设备状态已更改。
0x81-0xBF0x81-0xBF
表 5.162 NVDIMM 根设备通知值 十六进制值描述
------

0x80 | 0x80 NFIT更新通知。用于通知OSPM需要重新评估NVDIMM根设备下的_FIT方法(请参阅[第9.20.2节](<../09_ACPI-Defined_Devices_and_Device-Specific_Objects/ACPIdefined_Devices_and_DeviceSpecificObjects.html#nvdimm-root-device>))。 0x81 | 0x81 检测到未消耗的不可纠正的内存错误。用于主动通知OSPM检测到的不可纠正的内存错误(例如,连续扫描 NVDIMM 内存的内存清理引擎)。这是一个可选的通知。只有平台映射到SPA的位置才会生成通知。 0x82 | 0x82 ARS 停止通知。这是一个可选通知,用于在平台完成 ARS 时或当 ARS 提前停止由平台或由 OSPM 通过 启动 ARS 启动的任何 ARS 时通知 OSPM(请参阅部分9.20.7.5)。 OSPM可以在收到此事件通知后评估查询ARS状态。 0x83-0xBF | 0x83-0xBF | 保留

表 5.163 NVDIMM 设备通知值 十六进制值描述
0x800x80 保留
0x810x81 NFIT健康事件通知。用于向OSPM通知NVDIMM设备的运行状况事件(请参阅第 9.20.3 节)。收到NFIT健康事件通知后,OSPM需要通过重新枚举相应NVDIMM设备的健康状况来确定新的健康事件。这可以通过评估 _NCH 方法(参见 第 9.20.8.1 节)或 NVDIMM 器件下的 _DSM 方法来完成。这也用于通知OSPM _NCH 方法报告的“总体健康状态属性”字段的变化。
0x82-0xBF0x82-0xBF
表 5.164 处理器设备通知值 十六进制值描述
------
0x800x80 性能当前功能已更改。用于通知OSPM支持的处理器性能状态数量已更改。此通知导致OSPM 重新评估_PPC 对象。有关详细信息,请参阅第 8.4.6.3 节。
0x810x81 C 状态已更改。用于通知OSPM支持的处理器C状态的数量或类型已更改。此通知会导致 OSPM 重新评估 _CST 对象。有关详细信息,请参阅第 8.4.2.1 节。
0x820x82 节流当前功能已更改。用于通知OSPM支持的处理器限制状态数量已更改。此通知导致OSPM 重新评估_TPC 对象。有关详细信息,请参阅第 8.4.5.3 节。
0x830x83 保证已更改。用于通知OSPM保证寄存器的值已更改。
0x840x84 最短行程。用于通知OSPM已发生超出CPPC最小值的情况。

0x85 | 0x85 最高性能已更改。用于通知OSPM最高性能寄存器的值已更改。 0x86-0xBF | 0x86-0xBF | 保留

表 5.165 用户存在设备通知值 十六进制值描述
0x800x80 用户状态已更改。用于通知 OSPM 用户状态发生了有意义的更改,导致 OSPM 重新评估 _UPD 对象。
0x81-0xBF0x81-0xBF
表 5.166 环境光传感器设备通知值 十六进制值描述
------
0x800x80 ALS照度已更改。用于通知OSPM环境光照度发生了有意义的变化,导致OSPM重新评估_ALI对象。
0x810x81 ALS 色温已更改。用于通知OSPM环境光色温或色度发生有意义的变化,导致OSPM重新评估_ALT和/或_ALC对象。
0x820x82 ALS 响应已更改。用于通知OSPM用于传达环境光响应的点集已更改,导致OSPM重新评估_ALR对象。
0x83-0xBF0x83-0xBF
表 5.167 功率计对象通知值 十六进制值描述
------
0x800x80 功率计功能已更改。用于通知OSPM电表信息已更改。
0x810x81 越过功率计跳变点。用于通知OSPM功率计跳闸点之一已被跨越。
0x820x82 功率计硬件限制已更改。用于通知OSPM硬件限制已被平台更改。
0x830x83 强制实施功率计硬件限制。用于通知OSPM平台已强制执行硬件限制。
0x840x84功率计平均间隔已更改。用于通知OSPM功率平均间隔已更改。
0x85-0xBF0x85-0xBF
表 5.168 处理器聚合器设备通知值 十六进制值描述
------
0x800x80 处理器使用请求。用于通知 OSPM OSPM 评估 _PUR 对象,该对象向 OSPM 指示要空闲的逻辑处理器的数量。
0x81-0xBF0x81-0xBF
表 5.169 错误设备通知值 十六进制值描述
------
0x800x80 一般错误源的通知。用于通知OSPM响应此通知,通过检查所有通用错误源的错误状态块来识别报告错误的源。
0x81-0xBF0x81-0xBF
表 5.170 风扇设备通知值 十六进制值描述
------
0x800x80 低风扇速度。用于通知OSPM风扇速度低(错误)。导致OSPM重新评估_FSL对象。
0x81-0xBF0x81-0xBF
表 5.171 存储设备通知值 十六进制值描述
------
0x800x80 内存带宽低阈值已过。用于通知OSPM,平台已将内存设备描述的内存带宽降低到低于低内存带宽阈值。
0x810x81 超过内存带宽高阈值。用于通知OSPM,平台已将内存设备描述的内存带宽增加到大于或等于高内存带宽阈值。
0x82-0xBF0x82-0xBF
Prev
5.6.5. GPIO 信号 ACPI 事件
Next
5.6.7. 设备类特定对象