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

    • 总览
    • 14.1. 平台通信通道表
    • 14.2. 通用通信通道共享内存区域
    • 14.3. 扩展 PCC 子空间共享内存区域
    • 14.4. 精简 PCC 子空间共享内存区域
    • 14.5. 门铃协议
    • 14.6. 平台通知
    • 14.7. 引用 PCC 地址空间

14.1. 平台通信通道表

表 14.1 平台通信通道表(PCCT)

字段字节长度字节偏移描述
头部
签名40平台通信通道表的 ‘PCCT’ 签名。
长度44整个 PCCT 的长度,以字节为单位。
修订版本182
校验和19整个表相加必须为零。
OEMID610OEM ID
OEM 表 ID816对于 PCCT,表 ID 是制造商型号 ID。
OEM 修订版本424所提供 OEM 表 ID 对应的 PCCT 的 OEM 修订版。
创建者 ID428创建该表的工具的供应商 ID。对于包含定义块的表,这是 ASL 编译器的 ID。
创建者修订版本432创建该表的工具的修订版。对于包含定义块的表,这是 ASL 编译器的修订版。
标志436平台通信通道全局标志,见平台通信通道全局标志。
保留840保留
PCC 子空间结构[n](n = 子空间 ID)–48此平台的平台通信通道子空间结构列表。该结构在下一节中描述。最多支持 256 个子空间。

14.1.1. 平台通信通道全局标志

表 14.2 平台通信通道全局标志

PCC 全局标志位长度位偏移描述
平台中断10如果置位,则平台能够生成一个中断来指示命令完成。
保留311必须为零。

14.1.2. 平台通信通道子空间结构

PCC 子空间由 PCCT 表中的 PCC 子空间结构描述。PCC 子空间的子空间 ID 是其在子空间结构数组中的索引,从子空间 0 开始。所有子空间都有一个公共头,后跟一组特定于类型的字段:

表 14.3 通用 PCC 子空间结构

字段字节长度字节偏移描述
类型10子空间的类型。
长度11子空间结构的长度,以字节为单位。下一个子空间结构从该结构起始位置之后 length 个字节处开始。
类型特定字段可变2更多细节见具体子空间类型

本规范定义了以下子空间:

  • 类型 0,通用通信子空间,

  • 类型 1 到 2,硬件精简 通信子空间,

  • 类型 3 和 4,扩展 PCC 子空间。

  • 类型 5,基于硬件寄存器的 PCC 子空间。

所有其他子空间类型均保留。

14.1.3. 通用通信子空间结构(类型 0)

表 14.4 PCC 子空间结构类型 0(通用通信子空间)

字段字节长度字节偏移描述
类型100(通用通信子空间)
长度1162
保留62保留
基地址88共享内存范围的基地址,见通用通信通道共享内存区域。
内存长度816内存范围的长度。必须 > 8。
门铃寄存器1224包含 PCC 门铃的处理器相对地址,以通用地址结构格式表示。注:对于 Address_Space_I D,只有系统 I/O 空间和系统内存空间是有效值。
门铃保留836包含在写入门铃寄存器时要保留的位掩码。
门铃写入844包含在写入门铃寄存器时要置位的位掩码。
标称延迟452处理命令的预期延迟,以微秒为单位。
最大周期性访问速率456子空间通道可支持的周期性请求的最大数量,以每分钟命令数报告。0 表示无限制。
最小请求周转时间260OSPM 在一个命令完成后发出下一个命令之前必须等待的最短时间,以微秒为单位。

注

最大周期性访问速率和最小请求周转时间字段的值不准确,可能会给依赖 PCC 接口的功能带来惩罚性副作用。平台应报告准确的值,以在保持最大通道稳定性的同时实现最大通道效率。

OSPM 使用最大周期性访问速率来确定命令周期性求值的最大速率。不频繁的事件驱动命令不受最大周期性访问速率的限制。

14.1.4. 硬件精简 通信子空间结构(类型 1)

硬件精简 通信子空间定义见表 14.5。它旨在用于 硬件精简 ACPI 平台,这些平台不支持 SCI。除中断变化以及允许门铃寄存器使用 Functional Fixed HW 地址空间之外,该子空间与第 14.2 节和第 14.5 节中描述的通用通信子空间相同。

表 14.5 PCC 子空间结构类型 1(硬件精简 通信子空间)

字段字节长度字节偏移描述
类型101(硬件精简 通信子空间)
长度1162
平台中断42用于该子空间的 PCC 平台中断的中断 GSIV。
平台中断标志16位 [2-7] 保留 位 [1] 平台中断模式 1:中断为边沿触发 0:中断为电平触发 位 [0] 平台中断极性 1:中断为低电平有效 0:中断为高电平有效
保留17保留
基地址88共享内存范围的基地址,见通用通信通道共享内存区域。
内存长度816内存范围的长度。必须 > 8。
门铃寄存器1224包含 PCC 门铃的处理器相对地址,以通用地址结构格式表示。注:对于 Address_Space_I D,只有系统 I/O、系统内存和 Functional Fixed Hardware 空间是有效值。
门铃保留836包含在写入门铃寄存器时要保留的位掩码。
门铃写入844包含在写入门铃寄存器时要置位的位掩码。
标称延迟452处理命令的预期延迟,以微秒为单位。
最大周期性访问速率456子空间通道可支持的周期性请求的最大数量,以每分钟命令数报告。0 表示无限制。
最小请求周转时间260OSPM 在一个命令完成后发出下一个命令之前必须等待的最短时间,以微秒为单位。

注

最大周期性访问速率和最小请求周转时间字段的值不准确,可能会给依赖 PCC 接口的功能带来惩罚性副作用。平台应报告准确的值,以在保持最大通道稳定性的同时实现最大通道效率。

OSPM 使用最大周期性访问速率来确定命令周期性求值的最大速率。不频繁的事件驱动命令不受最大周期性访问速率的限制。

类型 1 子空间不支持电平触发的平台中断,因为未提供清除该中断的方法。在需要电平中断的情况下,应使用类型 2 或类型 3 子空间。

14.1.5. 硬件精简 通信子空间结构(类型 2)

硬件精简 通信子空间定义如下表 14.6 所示。它旨在用于需要通过读-改-写序列来确认平台中断的 硬件精简 ACPI 平台。除表底部的三个平台确认字段外,该子空间与上文描述的 硬件精简 通信子空间结构(类型 1)相同。

表 14.6 PCC 子空间结构类型 2(硬件精简 通信子空间)

字段字节长度字节偏移描述
类型102(硬件精简通信子空间)
长度1190
平台中断42用于此子空间的 PCC 平台中断的 GSIV。
平台中断标志16位 [2-7] 保留 位 [1] 平台中断模式 1:中断为边沿触发 0:中断为电平触发 位 [0] 平台中断极性 1:中断为低电平有效 0:中断为高电平有效
保留17保留
基地址88共享内存范围的基地址,如“通用通信信道共享内存区域”中所述。
内存长度816内存范围的长度。必须 > 8。
门铃寄存器1224包含 PCC 门铃的处理器相对地址,以通用地址结构格式表示。注:对于 Address_Space_I D,仅 System I/O、System Memory 和 Functional Fixed Hardware 空间的值有效。
门铃保留836包含在写入门铃寄存器时要保留的位掩码。
门铃写入844包含在写入门铃寄存器时要置位的位掩码。
标称延迟452处理一个命令的预期延迟,单位为微秒。
最大周期性访问速率456子空间信道所能支持的最大周期性请求数,以每分钟命令数报告。0 表示无限制。
最小请求周转时间260OSPM 在一个命令完成之后、发出下一个命令之前必须等待的最短时间,单位为微秒。
平台中断确认寄存器1262包含平台中断确认寄存器的处理器相对地址,以通用地址结构格式表示。注:对于 Address_Space_I D,仅 System I/O、System Memory 和 Functional Fixed Hardware 空间的值有效。
平台中断确认保留874包含在写入平台中断确认寄存器时要保留的位掩码。
平台中断确认写入882包含在写入平台中断确认寄存器时要置位的位掩码。

注

最大周期性访问速率和最小请求周转时间字段的不准确取值,可能会对依赖 PCC 接口的特性产生惩罚性副作用。平台应报告准确的值,以便在保持最大信道稳定性的同时实现最大的信道效率。

OSPM 使用最大周期性访问速率来确定周期性求值命令的最大速率。非频繁的、事件驱动的命令不受最大周期性访问速率限制。

14.1.6. 扩展 PCC 子空间(类型 3 和 4)

扩展 PCC 通信子空间有两种类型:

类型 3 主子空间:由 OSPM 用于与平台通信。

类型 4 从子空间:由平台用于向 OSPM 发送异步通知。

主子空间与类型 0、1 或 2 子空间并无实质性差异,最显著的不同之处在于类型 3 主子空间不支持异步通知。类型 4 的从子空间提供这些通知,并且不能由 OSPM 用于向平台发送消息。主从成对时,会在 OSPM 与平台之间创建一个双向接口。

描述主(类型 3)和从(类型 4)子空间的 PCCT 项格式如下表所示。

表 14.7 PCC 子空间结构类型 3 和类型 4

字段字节长度字节偏移描述
类型103 - 主子空间 4 - 从子空间
长度11164
平台中断42由平台触发的中断的 GSIV:对于主子空间(类型 3),当此子空间上的命令完成时会触发该中断。对于从子空间(类型 4),当平台发送通知时会触发该中断。对于主子空间,如果表 14.2 中的平台中断标志设置为零,则忽略此字段。如果 PCCT 中存在从子空间,则平台中断标志必须设置为 1。请注意,如果中断为边沿触发,则每个子空间都必须具有其自己唯一的中断。如果中断为电平触发,则多个子空间可以共享一个 GSIV,但每个子空间都必须具有唯一的 Platform interrupt Ack preserve 和 Ack Set 掩码。
平台中断标志16位 7:2 保留 位 1:平台中断模式 - 设置为 1 表示中断为边沿触发 - 设置为 0 表示中断为电平触发 位 0:平台中断极性 - 设置为 1 表示中断为低电平有效 - 设置为 0 表示中断为高电平有效
保留17保留,必须为零
基地址88共享内存范围的基地址,如“主从通信信道共享内存区域”中所述。
内存长度416内存范围的长度。必须 >= 16。
门铃寄存器1220包含 PCC 门铃的处理器相对地址,以通用地址结构 (GAS) 格式表示。注:对于 Address_Space_I D,仅 System I/O、System Memory 和 Functional Fixed Hardware 空间是有效值。对于从子空间,此字段是可选的;如果不存在,该字段应仅包含零。
门铃保留832包含在写入门铃寄存器时要保留的位掩码。
门铃写入840包含在写入门铃寄存器时要置位的位掩码。
标称延迟448处理一个命令的预期延迟,单位为微秒。此字段仅与主子空间相关。
最大周期性访问速率452子空间子空间所能支持的最大周期性请求数,以每分钟命令数报告。0 表示无限制。此字段仅与主子空间相关。
最小请求周转时间456OSPM 在一个命令完成之后、发出下一个命令之前必须等待的最短时间,单位为微秒。此字段仅与主子空间相关。
平台中断确认寄存器1260包含平台中断确认寄存器的处理器相对地址,以通用地址结构 (GAS) 格式表示。注:对于 Address_Space_I D,仅 System I/O、System Memory 和 Functional Fixed Hardware 空间的值有效。如果子空间不支持中断或者中断为边沿触发,则该寄存器可以省略。GAS 结构的全部 12 个字节均为 0x0 表示该寄存器不存在。如果子空间支持中断且这些中断为电平触发,则必须提供该寄存器。并且通过读-修改-写序列使用该寄存器来清除中断。
平台中断确认保留872包含在写入平台中断确认寄存器时要保留的位掩码。
平台中断确认置位880包含在写入平台中断确认寄存器时要置位的位掩码。
保留888保留,必须为零
命令完成检查寄存器地址1296包含命令完成检查寄存器的处理器相对地址,以通用地址结构 (GAS) 格式表示。注:对于 Address_Space_I D,仅 System I/O、System Memory 和 Functional Fixed Hardware 空间的值有效
命令完成检查掩码8108用于使用命令完成检查寄存器判断命令是否完成的掩码。如果寄存器的值与此掩码进行逻辑与后的结果为非零值,则命令已完成
命令完成更新寄存器地址12116包含命令完成更新寄存器的处理器相对地址,以通用地址结构 (GAS) 格式表示。注:对于 Address_Space_I D,仅 System I/O、System Memory 和 Functional Fixed Hardware 空间的值有效
命令完成更新保留掩码8128在此子空间中更新命令完成状态时,命令完成更新寄存器中要保留的位掩码。
命令完成更新置位掩码8136在此子空间中更新命令完成状态时,命令完成更新寄存器中要置位的位掩码。对于主子空间,该掩码必须指示如何清除命令完成位。对于从子空间,该掩码必须指示如何设置命令完成位。
错误状态寄存器12144包含错误状态寄存器的处理器相对地址,以通用地址结构 (GAS) 格式表示。OSPM 在从信道上会忽略此字段。注:对于 Address_Space_I D,仅 System I/O、System Memory 和 Functional Fixed Hardware 空间的值有效。注:该寄存器可以与命令完成检查寄存器相同。
错误状态掩码8156此处包含的掩码可与错误状态寄存器的内容进行逻辑与,以确定通过该子空间传输命令时是否发生错误。该掩码的逻辑非用于清除错误。将反转后的掩码与错误状态寄存器的内容进行逻辑与,并将结果写回该寄存器。此字段在从信道中被忽略。

注

最大周期性访问速率和最小请求周转时间字段的不准确取值,可能会对依赖 PCC 接口的特性产生惩罚性副作用。平台应报告准确的值,以便在保持最大信道稳定性的同时实现最大的信道效率。

从子空间可由平台用于向 OSPM 发送异步通知。PCCT 中的从子空间项与主子空间共享相同的格式,但有以下修改:

  • Type 设置为 4 - 从子空间

  • 门铃可以为零,如果为零,OSM 必须忽略它。如果存在,平台可以请求 OSPM 在其处理完通知后写入该门铃。

从子空间与一个主子空间相关联,也就是说,主/从对会将 OSPM 连接到平台中的同一处理实体。

如果 PCCT 中包含从子空间,则全局 Plaform Interrupt 标志(见表 14.2)必须设置为 1。

14.1.7. 基于 HW 寄存器的通信子空间结构(类型 5)

表 14.8 基于 HW 寄存器的通信子空间结构(类型 5)

字段长度(以字节计)偏移量值
类型105
长度11长度(包括厂商定义区域)
版本220x0001(此 PCC 定义的版本 1)
基地址84共享内存范围的基地址,见第 14.4 节
共享内存范围长度812表 14.14 中描述的共享内存范围长度。如果该长度为零,则忽略基地址。
门铃寄存器1220包含 PCC 门铃的处理器相对地址,以 Generic Address Structure 格式表示。注意:Address_Space_ID 的有效值仅限于系统 I/O 空间和系统内存空间。
门铃保留832包含在写入门铃寄存器时需要保留的位掩码
门铃写入840包含在写入门铃寄存器时需要置位的位掩码。这用于向平台发送特定命令。
命令完成检查寄存器1248包含命令完成检查寄存器的处理器相对地址,以 Generic Address Structure 格式表示。注意:Address_Space_ID 的有效值仅限于系统 I/O 空间和系统内存空间。
命令完成检查掩码860包含用于从命令完成状态寄存器查询先前发出命令完成状态的位掩码。OS 应对命令完成检查寄存器的值执行 AND 操作。OS 在为下一条命令写入门铃寄存器之前必须检查完成状态。如果计算值为 0,则表示前一次操作已经完成。如果未实现完成状态,则该掩码应为 0。在这种情况下,OS 只需等待最小请求周转时间。注意:在写入门铃寄存器之前需要执行命令完成检查,以避免与先前使用门铃寄存器发生任何竞争条件。此外,在写入门铃寄存器之后以及从错误状态寄存器读取状态之前,也需要执行命令完成检查。
错误状态寄存器1268包含错误状态寄存器的处理器相对地址,以 Generic Address Structure 格式表示。注意:Address_Space_ID 的有效值仅限于系统 I/O 空间和系统内存空间。
错误状态掩码880包含用于从错误状态寄存器获取前一条命令请求错误状态的位掩码。OS 应对错误状态寄存器的值执行 AND 操作。如果该掩码值为 0,则忽略错误状态寄存器。应在完成状态表明已发出的命令完成后检查错误状态。如果未实现命令完成检查(即命令完成检查掩码为 0),则等待最小请求周转时间。如果计算值为零,则表示成功。任何其他值均表示失败。
标称延迟488处理一条命令的预期延迟,单位为微秒。
最小请求周转时间492OSPM 在一条命令完成后、发出下一条命令之前必须等待的最短时间,单位为微秒。
Prev
总览
Next
14.2. 通用通信通道共享内存区域