設備樹 (DT)是一種由命名節點和屬性組成的資料結構,用於描述不可發現的硬體。核心(例如 Android 中使用的 Linux 核心)使用 DT 來支援 Android 裝置使用的各種硬體配置。硬體供應商提供自己的設備樹源 (DTS)文件,這些文件使用設備樹編譯器編譯為設備樹 Blob (DTB)文件。然後引導程式將使用這些檔案。 DTB 檔案包含二進位格式的扁平設備樹。
設備樹覆蓋 (DTO)使中央設備樹 blob (DTB) 能夠覆蓋在設備樹上。使用 DTO 的引導程式可以維護系統單晶片 (SoC) DT 並動態覆寫特定於裝置的 DT,向樹中新增節點並對現有樹中的屬性進行變更。
Android 9 版本中的更新
在 Android 9 中,引導程式在將統一裝置樹 blob 傳遞到核心之前不得修改裝置樹覆蓋中定義的屬性。
載入設備樹
在引導程式中載入設備樹涉及建置、分區和運行。
建立並刷新設備樹 blob:
1a.使用設備樹編譯器 (
dtc
>) 將設備樹源 (.dts
) 編譯為設備樹 blob (.dtb
)。設備樹 blob 被格式化為扁平設備樹。 1b.將.dtb
檔案閃存到引導程式運行時可存取的位置(詳細資訊如下)。若要進行分割區,請確定快閃記憶體中引導程式運行時可存取且可信任的位置來放置
.dtb
。位置範例:引導分割區 獨特的分區 要載入設備樹 blob 並啟動核心:
- 將
.dtb
從儲存載入到記憶體中。 - 使用載入的DT的記憶體位址啟動核心。
- 將
下一步是什麼?
本頁詳細介紹了載入 DT 的典型引導程式工作流程,並提供了常見 DT 術語的清單。本節中的其他頁面描述如何實現引導程式支持,如何編譯、驗證和最佳化 DTO ,以及如何使用多個 DT 。您還可以獲得有關DTO 語法和所需的DTO/DTBO 分區格式的詳細資訊。