裝置樹狀架構重疊圖層

裝置樹狀結構 (DT) 是具名節點和屬性的資料結構,用於說明無法探索的硬體。核心 (例如 Android 使用的 Linux 核心) 會使用 DT 支援 Android 裝置採用的各種硬體設定。硬體供應商會提供自己的裝置樹狀架構來源 (DTS) 檔案,並使用裝置樹狀架構編譯器編譯成裝置樹狀架構 Blob (DTB) 檔案。然後由開機載入程式使用。DTB 檔案包含二進位格式的扁平化裝置樹狀結構

裝置樹狀結構疊加 (DTO) 可讓中央 DTB 疊加在 DT (疊加用的裝置樹狀結構 Blob (DTBO)) 上。使用 DTO 的系統啟動載入程式可以維護系統單晶片 (SoC) DT,並動態疊加裝置專屬 DT,在樹狀結構中新增節點,以及變更現有樹狀結構中的屬性。

Android 9 版本更新

在 Android 9 中,開機載入程式不得修改 DTO 中定義的屬性,再將統一 DTB 傳遞至核心。

載入 DT

在系統啟動載入程式中載入 DT 時,需要建構、分割及執行。

圖 1. 在系統啟動載入程式中載入裝置樹狀結構的典型實作方式。

  1. 如要建立及刷新 DTB:

    1a. 使用 DTC (dtc) 將 DTS (.dts) 編譯為 DTB (.dtb)。 DTB 的格式為扁平化 DT。 1b. 將 .dtb 檔案刷新到系統啟動載入程式執行階段可存取的位置 (詳情請見下文)。

  2. 如要進行分割,請在快閃記憶體中找出開機載入程式執行階段可存取且信任的位置,以放置 .dtb。範例地點﹕

    圖 2. 將 .dtb 放入開機分割區,方法是附加至 image.gz,並以「kernel」形式傳遞至 mkbootimg。

    圖 3. 將 .dtb 放在專屬磁碟分割區
    (例如 dtb 磁碟分割區)。

  3. 如要載入 DTB 並啟動核心,請執行下列指令:

    • .dtb 從儲存空間載入記憶體。
    • 使用載入 DT 的記憶體位址啟動核心。

後續步驟

本頁詳細說明載入 DT 的一般系統啟動載入程式工作流程,並提供常見 DT 術語清單。本節的其他頁面說明如何實作系統啟動載入程式支援、如何編譯、驗證及最佳化 DTO,以及如何使用多個 DT。您也可以取得 DTO 語法必要 DTO 和 DTBO 分區格式的詳細資料。