DTO 支援

裝置樹狀結構疊加層 (DTO) 延伸 現有 啟用扁平化裝置樹狀結構 (FDT) 使用者空間,以在執行階段修改核心中的初始 devicetree 資料, 載入其他修改原始資料的疊加層 FDT。Android 沒有 需要從使用者空間更新 DT blob 的執行階段更新,但建議使用 合作夥伴可在系統啟動載入程式中加入 devicetree 修補程式 libfdtlibufdt

Android DTO 支援

DTO 的 Android 支援會因 Android 版本而異:

  • Android 7.x 以下版本不需要支援 devicetree,而且不需要 針對供應商如何將 DT blob 傳遞至核心或 儲存這些資訊
  • Android 8.x 建議支援 devicetree 以供 Jamboard 使用, 與核心的 SoC 專用部分分開。
  • Android 9 以上版本需要裝置樹狀結構 blob 必須有重疊 (DTBO) 分區,且至少要套用一個 DTO。

DTO 分區需求

大多數 Android 裝置會在建構時將 DT blob 附加至核心, 系統啟動載入程式從核心載入 blob。不過,由於 DT blob 是晶片系統核心的一部分,Android 並沒有 建構或儲存 DT blob 等方面的需求。裝置可以附加 DT 將 blob 儲存至核心,或是將 blob 儲存至獨立分區;唯一的 是指系統啟動載入程式知道載入 DT blob 的方式和位置

如要支援 DTO,裝置應符合下列條件:

  • 每個核心映像檔一個 DTBO 分區,供 Jamboard 專屬的 DT 疊加層, 系統啟動載入程式必須知道載入 SoC 專屬 DTB 的位置和方式。 分區大小取決於執行 SoC 所需的變更次數 核心—選擇適合的尺寸,以便日後更新。通常是 8 MB 分區大小超過這個上限。
  • 已針對 A/B 更新 DTO 分區 裝置。復原核心與 Android 核心相同,但 必須為 A/B 裝置設定分區,才能在無線更新中 (OTA) 更新。分區大小取決於裝置和數量 在主要 SoC 核心 DT blob 上方進行的變更。

DTO 系統啟動載入程式需求

如要支援 DTO,系統啟動載入程式應:

  • 請瞭解載入 以供應商特定方式擷取的 SoC 專屬 DT blob (通常從 做為 blob 附加至核心的結尾)。
  • 瞭解從供應商專屬 DT blob 載入疊加層 DT blob 的方式與位置 。
  • 先使用疊加層修補主要 DT blob ,再傳遞合併的裝置 新增至核心

如要進一步瞭解如何在系統啟動載入程式中新增 DTO 支援功能,請參閱 裝置樹狀結構疊加層