4.7. ACPI 硬件功能
本节描述由 ACPI 接口定义的不同硬件功能。这些功能分为以下几类:
固定硬件功能
通用硬件功能
固定硬件功能驻留在若干 ACPI 定义的地址空间中,其位置由 ACPI 编程模型描述。通用硬件功能驻留在五种地址空间之一中(系统 I/O、系统内存、PCI 配置、嵌入式控制器或串行设备 I/O 空间),并通过声明 AML 控制方法由 ACPI Namespace 进行描述。
固定硬件功能的实现具有精确定义。尽管许多固定硬件功能是可选的,但如果实现,就必须按所述方式实现,因为 OSPM 会操作固定硬件设备的寄存器并期望其具有已定义的行为。功能性固定硬件按《通用硬件编程模型》中所述提供固定硬件功能接口的功能等价物。
通用硬件功能实现是灵活的。该逻辑由 OEM 提供的 AML 代码控制(更多信息,请参见 ACPI 软件编程模型),可以编写为支持各种各样的硬件。此外,ACPI 还提供了专门的控制方法,以为专用设备提供能力。例如,Notify 命令可用于从通用硬件事件处理程序(控制方法)通知 OSPM 已发生扩展坞或热事件。对本节以及本规范中的 ACPI 软件编程模型 有充分理解,将使设计人员很好地理解如何设计硬件,以充分利用兼容 ACPI 的 OS。
请注意,这里列出的通用功能仅用于说明,ACPI 规范可以支持许多未列出的硬件类型。
表 4.1 功能-编程模型摘要
| 功能名称 | 描述 | 编程模型 |
|---|---|---|
| 电源管理定时器 | 24 位或 32 位自由运行定时器。 | 固定硬件特性控制逻辑 |
| 电源按钮 | 用户按下按钮以在工作状态与睡眠/软关机状态之间切换系统。 | 固定硬件事件和控制逻辑或通用硬件事件和逻辑 |
| 睡眠按钮 | 用户按下按钮以在工作状态与睡眠/软关机状态之间切换系统。 | 固定硬件事件和控制逻辑或通用硬件事件和逻辑 |
| 电源按钮覆盖 | 用户序列(按住电源按钮 4 秒)用于关闭无响应的系统。 | |
| 实时时钟闹钟 | 预设时间以唤醒系统。 | 可选固定硬件* |
| 睡眠/唤醒控制逻辑 | 用于在睡眠状态与工作状态之间转换系统的逻辑。 | 固定硬件控制和事件逻辑 |
| 嵌入式控制器接口 | ACPI 嵌入式控制器协议和接口,如 ACPI Embedded Controller Interface Specification 中所述。 | 通用硬件事件逻辑,必须驻留在通用寄存器块中 |
| 传统/ACPI 选择 | 指示系统正在使用传统电源管理模型还是 ACPI 电源管理模型的状态位(SCI_EN)。 | 固定硬件控制逻辑 |
| 盖盖开关 | 用于指示系统上盖是打开还是关闭的按钮(仅限移动系统) | 通用硬件事件特性 |
| C1 电源状态 | 使处理器进入低功耗状态的处理器指令。 | 处理器 ISA |
| C2 电源控制 | 使处理器进入 C2 电源状态的逻辑。 | 固定硬件控制逻辑 |
| C3 电源控制 | 使处理器进入 C3 电源状态的逻辑。 | 固定硬件控制逻辑 |
| 热控制 | 在指定跳变点生成热事件的逻辑。 | 通用硬件事件和控制逻辑(参见 Thermal Management Concepts 中对热逻辑的描述) |
| 设备电源管理 | 用于在不同设备电源状态之间切换的控制逻辑。 | 通用硬件控制逻辑 |
| 交流适配器 | 用于检测交流适配器插入和移除的逻辑。 | 通用硬件事件逻辑 |
| 扩展坞/设备插入与移除 | 用于检测设备插入和移除事件的逻辑。 | 通用硬件事件逻辑 |
- RTC 唤醒闹钟是必需的;固定硬件特性状态位是可选的。