許多 SoC 供應商和 ODM 支援在裝置上使用多種裝置樹狀結構 (DT), 可讓您使用一張映像檔支援多個 SKU 或設定。在這種情況下, 系統啟動載入程式會識別硬體,並在執行階段載入相應的 DT:
圖 1. 系統啟動載入程式中的多裝置樹狀結構疊加層 (DTO)。
注意:您可以選擇是否要使用多個 DT。
設定
如要在 DTO 模型中新增對多種 DT 的支援,請設定主要 DT 清單 以及重疊 DT 的清單
圖 2. 為多個 DT 實作執行階段 DTO。
系統啟動載入程式應可執行下列操作:
- 讀取 SoC ID,然後選取對應的主要 DT。
- 讀取主機板 ID,並據此選取一組疊加層 DT。
只應選取一個要在執行階段使用的主要 DT。多個重疊 DT 必須與所選主要 DT 相容,但其必須與所選主要 DT 相容。使用 多個疊加層有助於避免在 DTBO 中為每個板塊儲存一個疊加層 分區並啟用系統啟動載入程式,以決定所需的疊加層子集 根據主機板 ID (或探測週邊裝置) 而定。適用對象 例如,開發板 A 可能需要用到疊加層 1、3 和 5 加入的裝置 委員會 B 可能需要疊加 1、4 和 5 新增的裝置。
分區
如要進行分區,請決定系統啟動載入程式執行階段可以存取且受信任位置
使用快閃記憶體來儲存 DTB 和 DTBO (系統啟動載入程式必須
比對程序中的這些檔案)。提醒你,DTB 和 DTBO
存在於相同分區中如果您的 DTB/DTBO 落在
dtb
個分區 (共 dtbo
個),請使用表格結構和標題
格式請見 DTB 和 DTBO 格式
分區格式。
在系統啟動載入程式中執行
跑步程序:
- 找出 SoC,並從中載入對應的 .dtb 複製到記憶體
- 識別白板並載入對應的
將
.dtbo
從儲存空間轉換為記憶體。 - 將
.dtb
重疊與要合併的.dtbo
資料移轉 - 根據合併 DT 的記憶體位址啟動核心。