Chrome OS ACPI 裝置

Chrome OS 特有的硬體功能透過 Chrome OS ACPI 裝置公開。Chrome OS ACPI 裝置的即插即用 ID 為 GGL0001,硬體 ID 為 GOOG0016。支援以下 ACPI 物件

支援的 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 韌體。

  • 0 - 只讀(恢復)韌體

  • 1 - 可重寫韌體。

如果 EC 韌體始終為只讀,則設定為 0。

Active Main Firmware Type

DWORD

啟動期間使用的主韌體型別。

  • 0 - 恢復

  • 1 - 正常

  • 2 - 開發者

  • 3 - 網路啟動(僅用於工廠安裝)

其他值已保留。

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 訊號的型別

  • 0x00000001 - 恢復按鈕

  • 0x00000002 - 開發者模式開關

  • 0x00000003 - 韌體防寫開關

  • 0x00000100 - 除錯頭 GPIO 0

  • ...

  • 0x000001FF - 除錯頭 GPIO 255

其他值已保留。

屬性

DWORD

作為位域的訊號屬性

  • 0x00000001 - 訊號為高電平有效(對於按鈕,GPIO 值為 1 表示按下按鈕;對於開關,GPIO 值為 1 表示啟用開關)。如果此位為 0,則訊號為低電平有效。對於除錯頭 GPIO,設定為 0。

控制器偏移

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"
}