Chrome OS ACPI 设备¶
特定于 Chrome OS 的硬件功能通过 Chrome OS ACPI 设备公开。Chrome OS ACPI 设备的即插即用 ID 为 GGL0001,硬件 ID 为 GOOG0016。支持以下 ACPI 对象
对象 |
描述 |
---|---|
CHSW |
Chrome OS 开关位置 |
HWID |
Chrome OS 硬件 ID |
FWID |
Chrome OS 固件版本 |
FRID |
Chrome OS 只读固件版本 |
BINF |
Chrome OS 启动信息 |
GPIO |
Chrome OS GPIO 分配 |
VBNV |
Chrome OS NVRAM 位置 |
VDTA |
Chrome OS 验证启动数据 |
FMAP |
Chrome OS flashmap 基址 |
MLST |
Chrome OS 方法列表 |
CHSW(Chrome OS 开关位置)¶
此控制方法返回 Chrome OS 特定硬件开关的开关位置。
参数:¶
无
结果代码:¶
一个整数,其中包含作为位域的开关位置
0x00000002 |
当 x86 固件启动时,按下了恢复按钮。 |
0x00000004 |
当 EC 固件启动时,按下了恢复按钮。(如果 EC EEPROM 可重写,则为必需;否则可选) |
0x00000020 |
当 x86 固件启动时,启用了开发者开关。 |
0x00000200 |
当 x86 固件启动时,禁用了固件写保护。(如果固件写保护通过 x86 BIOS 控制,则为必需;否则可选) |
所有其他位保留,应设置为 0。
HWID(Chrome OS 硬件 ID)¶
此控制方法返回 Chromebook 的硬件 ID。
参数:¶
无
结果代码:¶
一个以 null 结尾的 ASCII 字符串,其中包含来自 EEPROM 的特定于型号的数据区域的硬件 ID。
请注意,硬件 ID 的长度可以长达 256 个字符,包括终止 null。
FWID(Chrome OS 固件版本)¶
此控制方法返回主处理器固件的可重写部分的固件版本。
参数:¶
无
结果代码:¶
一个以 null 结尾的 ASCII 字符串,其中包含主处理器固件的可重写部分的完整固件版本。
FRID(Chrome OS 只读固件版本)¶
此控制方法返回主处理器固件的只读部分的固件版本。
参数:¶
无
结果代码:¶
一个以 null 结尾的 ASCII 字符串,其中包含主处理器固件的只读(引导 + 恢复)部分的完整固件版本。
BINF(Chrome OS 启动信息)¶
此控制方法返回有关当前启动的信息。
参数:¶
无
结果代码:¶
Package {
Reserved1
Reserved2
Active EC Firmware
Active Main Firmware Type
Reserved5
}
字段 |
格式 |
描述 |
---|---|---|
保留 1 |
DWORD |
设置为 256 (0x100)。这表示不再使用此字段。 |
保留 2 |
DWORD |
设置为 256 (0x100)。这表示不再使用此字段。 |
活动的 EC 固件 |
DWORD |
启动期间使用的 EC 固件。
如果 EC 固件始终是只读的,则设置为 0。 |
活动主固件类型 |
DWORD |
启动期间使用的主固件类型。
其他值保留。 |
保留 5 |
DWORD |
设置为 256 (0x100)。这表示不再使用此字段。 |
GPIO(Chrome OS GPIO 分配)¶
此控制方法返回有关 Chrome OS 硬件的 Chrome OS 特定 GPIO 分配的信息,以便内核可以直接控制该硬件。
参数:¶
无
结果代码:¶
Package {
Package {
// First GPIO assignment
Signal Type //DWORD
Attributes //DWORD
Controller Offset //DWORD
Controller Name //ASCIIZ
},
...
Package {
// Last GPIO assignment
Signal Type //DWORD
Attributes //DWORD
Controller Offset //DWORD
Controller Name //ASCIIZ
}
}
其中 ASCIIZ 表示以 null 结尾的 ASCII 字符串。
字段 |
格式 |
描述 |
---|---|---|
信号类型 |
DWORD |
GPIO 信号的类型
其他值保留。 |
属性 |
DWORD |
作为位域的信号属性
|
控制器偏移 |
DWORD |
指定控制器上的 GPIO 编号。 |
控制器名称 |
ASCIIZ |
GPIO 控制器的名称。目前支持的名称:“NM10” - 英特尔 NM10 芯片 |
VBNV(Chrome OS NVRAM 位置)¶
此控制方法返回有关用于与 BIOS 通信的 NVRAM (CMOS) 位置的信息。
参数:¶
无
结果代码:¶
Package {
NV Storage Block Offset //DWORD
NV Storage Block Size //DWORD
}
字段 |
格式 |
描述 |
---|---|---|
NV 存储块偏移 |
DWORD |
CMOS 库 0 中经过验证的启动非易失性存储块的偏移量,从第一个可写入的 CMOS 字节开始计数(即,偏移量 = 0 是时钟数据 14 个字节之后的字节)。 |
NV 存储块大小 |
DWORD |
经过验证的启动非易失性存储块的大小(以字节为单位)。 |
FMAP(Chrome OS flashmap 地址)¶
此控制方法返回主处理器固件 flashmap 起始处的物理内存地址。
参数:¶
无
无结果代码:¶
一个 DWORD,其中包含主处理器固件 flashmap 起始处的物理内存地址。
VDTA(Chrome OS 验证启动数据)¶
此控制方法返回在固件验证步骤和内核验证步骤之间共享的验证启动数据块。
参数:¶
无
结果代码:¶
一个包含验证启动数据块的缓冲区。
MECK(管理引擎校验和)¶
此控制方法返回在启动期间从管理引擎扩展寄存器中读取的 SHA-1 或 SHA-256 哈希值。哈希值通过 ACPI 导出,以便操作系统可以验证 ME 固件是否已更改。如果不存在管理引擎,或者固件无法读取扩展寄存器,则此缓冲区可以为零。
参数:¶
无
结果代码:¶
一个包含 ME 哈希值的缓冲区。
MLST(Chrome OS 方法列表)¶
此控制方法返回 Chrome OS 硬件设备支持的其他控制方法的列表。
参数:¶
无
结果代码:¶
一个包含以 null 结尾的 ASCII 字符串列表的包,每个字符串对应 Chrome OS 硬件设备支持的一个控制方法,不包括 MLST 方法本身。对于此版本的规范,结果为
Package {
"CHSW",
"FWID",
"HWID",
"FRID",
"BINF",
"GPIO",
"VBNV",
"FMAP",
"VDTA",
"MECK"
}