5.2.15. 嵌入式控制器启动资源表 (ECDT)
此可选表提供了嵌入式控制器的与处理器相关的翻译资源。该表的存在允许OSPM在评估命名空间之前提供嵌入式控制器操作区域空间访问。如果未提供此表,则在发现并枚举AML命名空间中的嵌入式控制器设备之前,嵌入式控制器区域空间将不可用。可以通过在嵌入式控制器设备下提供 _REG 方法对象来检测区域空间的可用性。
| 表 5.46 嵌入式控制器启动资源表格式 字段 | 字节长度 | 字节偏移 | 描述 |
|---|---|---|---|
| 标题 | |||
| 签名 | 4 | 0 | ‘ECDT’嵌入式控制器表的签名。 |
| 长度 | 4 | 4 | 整个嵌入式控制器表的长度(以字节为单位) |
| 修订 | 1 | 8 | 1 |
| 校验和 | 1 | 9 | 整个表的总和必须为零。 |
| OEMID | 6 | 10 | 10 OEM ID |
| OEM 表ID | 8 | 16 | 16对于嵌入式控制器表,表ID是制造商型号ID。 |
| OEM 修订 | 4 | 24 | OEM 所提供的OEM 表ID 嵌入式控制器表的修订版。 |
| 创建者ID | 4 | 28 | 28创建该表的实用程序的供应商ID。对于包含定义块的表,这是ASL编译器的ID。 |
| 创建者修订 | 4 | 32 | 32创建表的实用程序的修订。对于包含定义块的表,这是 ASL 编译器的修订版。 |
| EC_CONTROL | 12 | 12 36 | 36包含嵌入式控制器命令/状态寄存器的处理器相对地址,以通用地址结构格式表示。 |
| EC_DATA | 12 | 12 48 | 48包含嵌入式控制器数据寄存器的处理器相对地址,以通用地址结构格式表示。 |
| UID | 4 | 60 | 唯一ID - 与代表此嵌入式控制器的命名空间中设备下的 _UID 返回的值相同。 |
| GPE_BIT | 1 | 64 | 64嵌入式控制器触发的FADT中描述的GPE块的GPEx_STS寄存器内的SCI中断的位分配。 |
| EC_ID | 变量 | 65 | 65 ASCII,以 null 结尾,包含对此嵌入式控制器设备的命名空间对象的完全限定引用的字符串(例如,“\_SB.PCI0.ISA.EC”)。数据字段中省略了引号。 |
支持嵌入式控制器设备的ACPIOSPM实现也必须支持ECDT。 ACPI 1.0 OSPM 实现不会识别或使用ECDT。以下示例代码显示如何以向后兼容ACPI/OSPM之前版本的方式检测嵌入式控制器操作区域是否可用。
Device(EC0)
{
Name(REGC,Ones)
Method(_REG,2)
{
If(Arg0 == 3)
{
REGC = Arg1
}
}
}
Method(ECAV,0)
{
If (REGC == Ones)
{
If (_REV >=2)
{
Return(One)
}
Else
{
Return(Zero)
}
}
Else
{
Return(REGC)
}
}
要检测该区域的可用性,请调用ECAV方法。例如:
If (\_SB.PCI0.EC0.ECAV())
{
//...regions are available...
}
else
{
//...regions are not available...
}