计算机进入低能耗休眠状态,BIOS电源管理ACPI的D3cold-D3hot

D3cold 的固件要求((v=vs.85))

从 Windows 8 开始,设备可以进入 D3cold 电源子状态,即使当系统处于 S0 电源状态。本主题介绍实现 D3cold 支持嵌入式设备的固件要求。下面的讨论旨在帮助固件开发人员实现其嵌入式设备可靠进入和退出 D3cold。

此外,简单讨论了支持 D3cold 的设备驱动程序要求。有关设备驱动程序支持 D3cold 的详细信息,请参阅。

介绍

在 ACPI 规范中和各种总线规范中定义。由于

PCI 总线规范引入了 PCI 电源管理,因此它已将 D3(关)设备电源状态拆分为两个子状态:D3hot 和 D3cold。这种区分已添加到

ACPI 3.0 中的 ACPI 规范,并在 ACPI 4.0 中扩展。Windows 始终支持这两个 D3 子状态,但仅当整个计算机退出

S0(工作)系统电源状态进入睡眠或休眠状态(通常 S3 或 S4)时,Windows 7 及早期版本的 Windows 才支持 D3cold

子状态。从 Windows 8 开始,即使当系统保持为 S0 状态时,设备驱动程序可以允许其设备进入 D3cold 状态。

D3hot(通常只称作“D3”)是设备的“软关闭”状态。在此状态下,总线扫描可以检测到设备,并且发送给设备的命令可能会导致它再次打开电源。在

D3cold 中,将切断所有电源,只保留少量电源以驱动设备的唤醒逻辑。例如,对于 PCI Express (PCIe) 设备,转换到

D3cold 后,经常关闭主要设备电源 Vcc。关闭 Vcc 可减少耗电量,并延长移动硬件平台在一定的电池电量下可运行的时间。当设备处在

D3cold 时,总线扫描将无法检测到该设备,并且该设备不能接收命令。恢复 Vcc 电源会将设备置于未初始化状态,通常相当于 D0

状态。然后,软件必须重新初始化该设备以将其置于工作状态。

将设备置于 D3cold 并不意味着已切断供给设备的所有电源 — 它仅表示切断了主电源 Vcc。如果唤醒逻辑不需要辅助电源

Vaux,也可能会将其切断。但是,可能需要将唤醒事件通知给处理器的设备必须能够获取足够电源,以便操作唤醒逻辑。例如,切断其主电源的以太网接口卡

(NIC) 可能从以太网电缆获取足够电源。或者,供给 Wi-Fi NIC 的待机电源可能从 PCIe

接口之外的电源提供,在这种情况下,可能会完全关闭 PCIe 接口。

在下面的讨论中,描述了实现将设备电源状态转换到 D3cold 的一组要求。这些要求分为以下两类:

固件和平台要求

设备驱动程序要求

这两类中的第一个类别是此次讨论的重点。将简要概述第二个类别。有关设备驱动程序要求的详细信息,请参阅。

固件和平台要求

在下面的讨论中,实现 D3cold 的固件和平台要求将针对这两种情况:

在 ACPI 中枚举设备时。

通过设备父总线枚举该设备时。

下面的大部分讨论针对 PCIe。然而,此处描述的一般原则同样在很大程度上适用于其他总线。

介绍一些细节,将 Vcc 电源重新供给嵌入式设备会触发 D3cold 转换到 D0 。重新供给电源将有效恢复设备与总线的连接。Windows 读取设备的标识符,以便区分以下两种情况:

设备由另一台设备删除并替换为该设备。

删除然后重新插入同一设备。

如果标识符匹配,设备驱动程序将重新初始化设备。如果标识符不匹配,Windows

将卸载该设备驱动程序,并生成新设备的新驱动程序堆栈。例如,PCIe 查询供应商 ID、设备 ID 和子系统

ID(在某些版本的规范中,其分解成子设备和子供应商

ID)。重新供给电源(且特定于总线的等待时间到期)后,这些标识符必须匹配之前已连接设备的标识符;否则,Windows

将认为新设备不同于以前的设备。

案例 1:在 ACPI 中枚举嵌入式设备

如果由总线规范(例如 PCIe 或

USB)定义的机制未发现嵌入式设备,但已固定连接该设备(或至少该连接专用于已知设备),则此设备在平台固件中由 ACPI _HID 和/或

_CID 对象描述。这些对象使设备可以由 OSPM 进行枚举。(“OSPM”是在 ACPI

规范中定义的术语。这大致意味着“不是固件的软件”。)仅当总线枚举器未能检测到设备 ID 时,OSPM 才会枚举设备。例如,OSPM 枚举 ISA

总线上的设备。此外,系统单芯片 (SoC) 上的设备通常由 ACPI 进行枚举,因为他们处在不可枚举的结构上。此类设备的示例包括 USB 和

SD 主控制器。

平台固件

OSPM 使用 \_SB._OSC 将平台范围的 OSPM 功能传达给平台固件。平台固件必须在 \_SB._OSC 返回值中设置位

2,以向 OSPM 表明该设备支持 _PR3。有关详细信息,请参阅 ACPI 5.0 规范的第 6.2.10.2 节“平台范围的 OSPM

功能”。

嵌入式设备 – 仅可通过 ACPI 发现

若要支持 D3cold,平台固件应针对嵌入式设备实现以下 ACPI 电源对象:

_PR0:此对象对 D0(完全打开)设备电源状态中的设备电源要求求值。返回值是该设备处于 D0 状态时所需电源资源的列表。

_PR2:此对象对 D2 设备电源状态中的设备的电源要求求值。返回值是该设备处于 D2

状态时所需电源资源的列表。请注意,由于历史原因,Windows 需要 _PR2 伴随 _PR0 存在。如果 D2

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值