裝置樹狀架構重疊圖層

裝置樹狀結構 (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 分區格式