对我来说ACPI就是Lua,一种粘合剂,用一种贴近于平台无关二进制编码,来干平台相关的事情。其中Lua解释器,相当于就是ACPICA开源库中OSPM调用的部分。
ACPI的文档,确实是放在UEFI官网的下面
Specifications | Unified Extensible Firmware Interface Forum
对于EC,那么ACPI也必须把他抽象出来成一个设备

我在ACPI的文档中找到对EC的抽象描述,举了个例子如下

最吸引我的是_CRS对设备资源的描述这段,定义了两个虚拟端口0x62,0x66,有了这个抽象端口,就可以无缝的对ACPI空间下的EC设备进行端口读写操作,当然这需要解释器的帮助,ACPICA开源库就是这个作用,其实运行的上下文依然是在OS下面。
我需要在Windows OS上找到一些证据,没错0x62, 0x66的确是EC的通讯唯一接口

这是文档,我要看实战代码,于是找到开源BIOS,coreboot的google chrome book
coreboot\src\ec\google\wilco\acpi\ec_dev.asl


ACPI作为一种平台无关的二进制编码,通过ACPICA库中的OSPM调用来实现平台相关任务。EC作为设备被ACPI抽象为一个设备,使用_CRS描述资源,定义了0x62和0x66虚拟端口进行读写操作。在Windows OS中,0x62和0x66是EC通信的关键。通过查看coreboot开源BIOS项目中的EC_dev.asl代码,可以深入了解实战应用。
3605

被折叠的 条评论
为什么被折叠?



