SCI VS SMI
来源:互联网 发布:桌面课程表软件 编辑:程序博客网 时间:2024/05/22 06:12
SCI与SMI的区别与联系
SMI: System Management Interrupt,系统管理中断,进入SMM的方法,包含(但不限于)电源管理功能,对OS透明的;
SMI pin触发后,CPU进入SMM Mode,转去执行BIOS中的SMI Handler。
SMI pin--> CPU SMM Mode --> BIOS routine
SCI: System Control Interrupt,系统控制中断,是ACPI定义的,专用于ACPI电源管理的一个IRQ,需要OS支持的。
SCI pin触发后,CPU去执行某个放在中断描述表(IDT)中的程式,一般都是指向某个驱动程式(ACPI.sys),ACPI driver会通知相关的驱动程式(ACPI EC Driver),然后跟EC BIOS取得一个代码,而这个代码就是ASL code中的Qxx Number,接着OS会去执行相应的ASL Code,一般都是Method(Qxx)。
SCI pin --> OS Acpi Driver --> ASL Code (Q event) --> ? (看BIOS Spec需求)
联系:都可以用于电源管理功能
区别:SMI是CPU级别的,ACPI和非ACPI模式下都可以用;SCI是OS级别的,只有在ACPI模式才可以用。
SCI只能在ACPI的OS下发出来,如果在DOS下能触发的中断,那肯定不是SCI,那可能是SMI。SMI同样可以在OS下发出来。在进入ACPI的OS后,Bios把CPU的控制权交给OS,SMI还是可以发出来的。SMI大部分由硬件来issue,也可以发soft SMI,一般是在port 0B2h下command,然后在SMI Handle中加入对cmd的动作即可。
SCI_INT
FADT的Offset46为SCI_INT field。
它记录了在PIC Mode下,SCI连接到8259的哪个pin(通常都是IRQ9);在APIC Mode下,它记录了SCI interrupt的Global System interrupt number。
如果在PIC Mode下SCI连接到IRQ9,而在APIC Mode下IRQ9连接到INTIN11,则在FADT中SCI_INT为9, MADT中interrupt resource override entry mapping 将IRQ9 mapping到INTIN11。
如何把SCI_INT从IRQ9改成IRQ11?
三个地方要改:
1. SCI IRQ Select(D31:F0:R44h bit[2:0])由000h(IRQ9)改成010h(IRQ11)
2. FADT中SCI_INT 由9改成11
3. MADT中interrupt resource override entry, Source 0x09; GSI:由0x09改成0x0B
- SCI VS SMI
- SCI VS SMI
- SCI VS SMI
- SMI vs SCI (转)
- SMI vs SCI (转)
- SCI/SMI
- 关于SMI、MSI、SCI、INTx各种中断小结
- 关于SMI、MSI、SCI、INTx各种中断小结
- SMI
- SCI
- SCI
- SCI
- SCI
- SCI
- SMI-S
- SW SMI
- SMI接口,SMI帧结构,MDC/MDIO
- SMI-S期待更多
- listview
- j2ee开发中的感想记录
- 数据证书
- OpenSips阅读笔记
- C#在WinForm下使用HttpWebRequest上传文件并显示进度
- SCI VS SMI
- linaro:Open source software for ARM
- android回到桌面的方法
- SharePoint 2010 子站点迁移到新站点集的根站点
- VMware中Linux无法全屏的问题
- DNS随笔1-其实就是个数据库
- 抽象类与接口的区别
- hdu 2443 Counter Strike
- C#异常处理初探