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 的 Model-Specific Data 区域的硬件 ID。
请注意,硬件 ID 最多可包含 256 个字符,包括终止 null。
FWID(Chrome OS 固件版本)¶
此控制方法返回主处理器固件的可重写部分的固件版本。
参数:¶
无
结果代码:¶
一个以 null 结尾的 ASCII 字符串,包含主处理器固件的可重写部分的完整固件版本。
FRID(Chrome OS 只读固件版本)¶
此控制方法返回主处理器固件的只读部分的固件版本。
参数:¶
无
结果代码:¶
一个以 null 结尾的 ASCII 字符串,包含主处理器固件的只读(bootstrap + recovery)部分的完整固件版本。
BINF(Chrome OS 启动信息)¶
此控制方法返回有关当前启动的信息。
参数:¶
无
结果代码:¶
Package {
Reserved1
Reserved2
Active EC Firmware
Active Main Firmware Type
Reserved5
}
字段 |
格式 |
描述 |
---|---|---|
Reserved1 |
DWORD |
设置为 256 (0x100)。这表明该字段不再使用。 |
Reserved2 |
DWORD |
设置为 256 (0x100)。这表明该字段不再使用。 |
Active EC firmware |
DWORD |
启动期间使用的 EC 固件。
如果 EC 固件始终为只读,则设置为 0。 |
Active Main Firmware Type |
DWORD |
启动期间使用的主固件类型。
其他值已保留。 |
Reserved5 |
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” - Intel NM10 芯片 |
VBNV(Chrome OS NVRAM 位置)¶
此控制方法返回用于与 BIOS 通信的 NVRAM (CMOS) 位置的信息。
参数:¶
无
结果代码:¶
Package {
NV Storage Block Offset //DWORD
NV Storage Block Size //DWORD
}
字段 |
格式 |
描述 |
---|---|---|
NV 存储块偏移 |
DWORD |
经验证的启动非易失性存储块在 CMOS bank 0 中的偏移量,从第一个可写 CMOS 字节开始计算(即,偏移量 = 0 是时钟数据的 14 个字节之后的字节)。 |
NV 存储块大小 |
DWORD |
经验证的启动非易失性存储块的大小(以字节为单位)。 |
FMAP(Chrome OS flashmap 地址)¶
此控制方法返回主处理器固件 flashmap 起始位置的物理内存地址。
参数:¶
无
None结果代码:¶
一个 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"
}