acpi问题
问个问题 。asl文件中FFixedHW这种寄存器在哪里?CPU还是chipset?怎么确定其地址?回复 1# 的帖子
ResourceTemplate(){Register(FfixedHW, 0, 0, 0)}这样的用法看不懂,是不是访问cpu里的msr寄存器? 你可查一下ACPI Spec 都翻遍了acpi spec,没怎么说。
其他几种一看就明白,
SystemMemory
SystemIO
PCI_Config
Embedded Controller
SMBus
这些都很明显,就Ffixedhw不清楚。 ACPI spec 3.0b 4.1有讲一点
Intel的CPU的C state和P state是用的SMI的方式,
这个FFixedHW应该是通知OS采用SMI的方式来转换C state和P state,其中转换的命令和SMI 口在FADT里面定义
而AMD的CPU现在是用的MSR来做的,没有用这个方式.
个人猜想. 那就是还得看SMI handler代码了,谢谢了。 ACPI 1.0规范定义了C0~C3的C-State和processor clock throttling,这些功能通过fixed hardware interface(P_BLK)得到支持。随着技术的进步,IA-32 CPU发展出了更多的power management方面的功能,比如P-State (通过MSR读写)和比C0~C3更多的C State (要用MWAIT指令)等,老的fixed hardware interface已经无法支持这些新的功能。为了支持新功能需要新的接口,这就引出了ACPI 2.0中的Functional Fixed Hardware的概念,伴随着象_CST,_PCT等新的processor object。基本上FFH可以理解为固定功能的抽象硬件接口,用抽象的地址空间向OSPM提供各种各样的硬件信息,比如I/O地址,MSR地址,MWAIT指令的hint值,来支持现有和未来的功能。目前FFH专用于CPU,FFH的功能和内容格式由CPU厂商指定,依赖于OS的支持。
参考文档:
1. ACPI 3.0 spec 4.1.1 Functional Fixed Hardware
2. ACPI 2.0 Specification Technical Review and ACPI 2.0 Specification Technical Update
3. Intel Processor Vendor-Specific ACPI Interface Specification
页:
[1]