設備樹覆蓋

設備樹 (DT) 是命名節點和描述不可發現硬件的屬性的數據結構。操作系統(例如 Android 中使用的 Linux 內核)使用 DT 來支持 Android 設備使用的各種硬件配置。硬件供應商提供他們自己的 DT 源文件,然後 Linux 將這些文件編譯成引導加載程序使用的設備樹 Blob (DTB) 文件。

設備樹覆蓋(DTO)使中心設備樹團塊(DTB)是覆蓋在設備樹。使用 DTO 的引導加載程序可以維護片上系統 (SoC) DT 並動態覆蓋特定於設備的 DT,將節點添加到樹中並對現有樹中的屬性進行更改。

本頁詳細介紹了加載 DT 的典型引導加載程序工作流程,並提供了常用 DT 術語列表。在本節中的其他頁面描述了如何實現對DTO引導程序的支持,如何編制,驗證和優化您的DTO的實現,以及如何使用台DTS 。您也可以在細節DTO語法和要求的DTO / DTBO分區格式化

Android 9 版本中的更新

在 Android 9 中,引導加載程序在將統一設備樹 blob 傳遞給內核之前不得修改設備樹覆蓋中定義的屬性。

加載設備樹

在引導加載程序中加載設備樹涉及構建、分區和運行。

中的引導裝載程序裝載設備樹1.典型的實現。
  1. 構建:
    • 使用的設備樹編譯器( dtc )來編譯設備樹源( .dts )轉換成設備樹團塊( .dtb ),格式化為扁平的設備樹。
    • .dtb文件轉換成一個引導程序運行時可訪問的位置(詳情如下)。
  2. 要分區,確定在閃存中的引導程序運行時可以訪問和可信的位置放.dtb 。示例位置:
    引導分區
    圖2..dtb通過附加在引導分區image.gz並通過的“ kernel ”,以mkbootimg
    唯一分區
    圖3..dtb在一個獨特的分區(例如dtb分區)。
  3. 跑步:
    • 加載.dtb從存儲到內存中。
    • 給定加載的 DT 的內存地址,啟動內核。

術語

本節使用以下設備樹術語:

DT設備樹
DTB設備樹 Blob
DTBO用於覆蓋的設備樹 Blob
故障診斷代碼設備樹編譯器
DTO設備樹覆蓋
數字傳輸系統設備樹源
FDT平板設備樹,二進制格式包含在.dtb BLOB文件