我知道进入ACPI模式是通过在接收事件后设置SCI_EN位,但是为什么操作系统在设置此位时启动ACPI模式?为什么在接收事件时设置SCI_EN位而不是其他位?
当计算机第一次打开时,固件处于电源管理控制中,任何会导致电源管理事件的事件都被视为SMI,以使固件进入称为系统管理模式的特殊模式,在该模式下它可以确定事件是什么并处理事件。
当操作系统想要控制电源管理时,它使用SCI_EN
,这主要触发另一个交换机固件的系统管理模式,以便固件可以准备将控制权从自身转移到操作系统。一旦完成(控制从SMM返回到OS),任何会导致电源管理事件的事件都被视为SCI("系统控制中断"),由OS处理(而不是由固件的SMM代码处理);操作系统确定事件是什么,并处理该事件。
我知道进入ACPI模式是通过在接收事件后设置SCI_EN位
不,SCI_EN
是在OS接收到事件之前设置的(而不是在OS接收到事件之后)。
为什么当这个位被设置时操作系统启动ACPI模式
如果操作系统从未设置SCI_EN
位;然后计算机处于"遗留模式";(固件做所有的电源管理)。
为什么在收到事件时设置SCI_EN位而不是其他位?
我猜SCI_EN
位只剩下"set"在操作系统设置它之后(此时它完成了它的唯一目的)。