阅读:8925回复:7
当BIOS写好ACPI Tables后,Windows怎么和ACPI进行交互?
BIOS除了提供一些ACPI tables,还需要做什么样的工作,才能让Windows正常使用ACPI,在Windows的启动过程中,是怎么样和Acpi交互的呢?谢谢啦
|
|
沙发#
发布于:2007-03-22 17:16
操作系统应该是在F0000H段搜索"RSD PTR"字符串在通过结构中的指针访问到RSDT表
|
|
板凳#
发布于:2007-05-25 16:30
ACPI Table是让OS用的。不同的表,有不同的用途,象IO APIC中断配置表。。。不说也知道了。
象GPE的事件处理代码,是SCI,SCI是一个中断。GPE产生SCI之后...看Device manger吧,有一个ACPI中断哦,可以用WinDbg等工具自己去看代码哦。不需要再说了吧。不过SCI中可能产生SMI,你小心S机。 又象VGA里的一些东西,象VISTA最新要求的_BCM _BCL都是驱动程序要Handle的事情呢。还有很多好玩的,象wmiacpi,pnp设备的定义之类的,自己看吧。 一言两语又何能说清楚。 |
|
|
地板#
发布于:2007-06-22 13:26
OS是解释执行ACPI的AML代码的。ACPI提供了整个平台的信息,包括中断Routine,电源管理能力,不能通过枚举找到的设备,Memory, I/O地址空间映像,CPU电源和性能管理等。
OS找到后便把ACPI提供的PNPID和驱动的ID来匹配,这样就把驱动Load起来了。同时可以知道这个设备的mem, IO起始地址和大小。 ACPI还提供了在S1/S3时,系统应该执行的动作以便恢复。 Intel的CPU可以动态调频(Enhenced Speed Step)也是通过ACPI和驱动一起工作来达到的。 |
|
地下室#
发布于:2007-11-08 09:18
os中包含一个东西叫做OSPM(os电源管理模块?)他负责解释执行ACPI中的AML代码
ACPI规范定义了一些方法(叫函数接口比较合适,一般都是下划线开头的),OSPM会去找到这些函数 |
|
|
5楼#
发布于:2007-11-21 20:05
上面几位都说得很详细了呢。
ACPI提供给Windows 以及windows其它各家的驱动程序一些信息。以让驱动程序支持与如何处理此系统下面各种电源管理事件以及各种OEM功能。 windows的OSPM,会处理来自南桥的sci(系统控制中断),是一个IRQ,可以桥寄存来设置,其它设备的驱动程序在被自己中断后,会从acpi table读取相关参数或执行ACPI方法来进行动作。或者其它设备自己去拉某个GPIO或通过EC来发相应的_Q方法来执行相关ACPI动作(当然不仅仅是电源管理)。 |
|
|
6楼#
发布于:2007-12-08 10:12
在ACPI架构中,BIOS只是底层工作者,提供系统相关信息如有哪些基本设备,这些设备有些什么基本功能,系统是什么平台(desktop,mobile,server...),这些信息通过ACPI Table和AML code的方式提供给OS使用。
所以BIOS只需要正确的回报系统结构(ACPI Table),设备配置(AML)就可以了吧. |
|
7楼#
发布于:2008-04-03 10:12
re re
|
|