12.5. 嵌入式控制器固件
嵌入式控制器固件必须遵守以下规则才能与 ACPI 兼容:
SMI 处理。尽管命令规范部分没有明确说明,但共享的嵌入式控制器接口为其计划支持的每个环境提供一组独立的通信命令集。换言之,嵌入式控制器知道是哪个环境生成了命令请求,以及在检测到事件时应通知哪个环境,从而能够生成正确的中断和通知值。这意味着系统管理处理程序使用的命令在功能上应与 ACPI 的所有命令相对应,包括查询、读取、写入以及任何其他已实现的特定命令。
SCI/SMI 任务排队。如果系统设计在系统管理中断处理程序和 OSPM 之间共享该接口,则嵌入式控制器在接收到命令时应始终准备好对通知进行排队。只有当控制器检测到应传达给 OS 或系统管理处理程序的事件时,嵌入式控制器才会在状态(EC_SC)寄存器中设置适当的事件标志。嵌入式控制器必须能够处理来自任一环境的命令,而不会丢失通知事件。在稍后的某个时间,OS 或系统管理处理程序向嵌入式控制器发出查询命令,以请求通知事件的原因。
通知管理。使用嵌入式控制器意味着使用查询(QR_EC)命令将需要采取措施的系统事件通知给 OSPM。如果嵌入式控制器与操作系统共享,则 SMI 处理程序使用 SMI_EVT 标志和一个 SMI 查询命令(本文档未定义)来接收事件通知。除非从 OSPM 或系统管理中断处理程序接收到查询命令,否则嵌入式控制器不会将事件通知放入共享接口的输出缓冲区中。