打印

BIOS系列杂谈-按下电源键后发生了什么-2

[复制链接]
112|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
海洋无限|  楼主 | 2024-12-1 17:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我们把按下电源键分成两种情况:一、按一下立刻抬起。二、按住不动超过5秒。
按一下
ACPI定义了两种电源键:Fixed hardware power button和Control method power button。Fixed hardware power button一般对应南桥或者SOC中的PWRBTN#引脚,而Control method power button一般可以用GPIO等扩展,它需要在ACPI table中报告_HID(PNP0C0C)设备并提供_GPE Event。为了简单起见,我们以最常见的PWRBTN#来说明整个流程:1.       用户按下电源键,并抬起。2.       PWRBTN#被触发。3.       PWRBTN_STS被置1。4.       SCI产生。5.       操作系统的OSPM发现SCI是电源键产生,随后检查用户的电源键设置偏好。用户可以设置睡眠或者关机。6.       如果是关机,通知各个应用程序保存退出;通知各个驱动程序电源事件。有序关闭应用和驱动。7.       调用关机前的各个ACPI定义的Event。8.       写MADT表中的电源寄存器真正关机,进入G2/S5状态。
按住不动超过5秒
这是一种强制关机操作。前一种操作需要OS配合,如果系统已经死机了呢?我们总不能拔电源插头或者抠出来电池吧,这是一种保险措施了。这个操作叫做Power button override。在PWRBTN#上,硬件都有专有的Timer来计时,超过5秒还没有抬起,就触发了强制关机,硬件会直接关闭电源,进入G2/S5状态。

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

62

主题

503

帖子

1

粉丝