Google is committed to advancing racial equity for Black communities. See how.
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

使用多個DT

許多SoC供應商和ODM支持在設備上使用多個DT,從而使一個映像可以為多個SKU /配置供電。在這種情況下,引導加載程序會識別硬件並在運行時加載相應的DT:

圖1.引導程序中覆蓋了多個設備樹。

注意:不是必須使用多個DT。

配置

要向DTO模型添加對多個DT的支持,請設置一個主要DT列表和另一個重疊DT列表。

圖2.多個DT的運行時DTO實現。

引導加載程序應能夠:

  • 讀取SoC ID並選擇相應的主設備樹,然後
  • 讀取板ID,並相應地選擇一組覆蓋設備樹。

在運行時僅應選擇一個主要DT來使用。可以選擇多個疊加DT,但是它們必須與所選的主DT兼容。使用多個覆蓋可以幫助避免在DTBO分區中每塊板存儲一個覆蓋,並使引導加載程序根據板ID(或可能通過探測外圍設備)確定所需覆蓋的子集。例如,板A可能需要由覆蓋1、3和5添加的設備,而板B可能需要由覆蓋1、4和5添加的設備。

分區

要進行分區,請確定閃存中的引導加載程序在運行時可訪問且受信任的位置,以存儲DTB和DTBO(引導加載程序必須能夠在匹配過程中找到這些文件)。請記住,DTB和DTBO不能存在於同一分區中。如果您的DTB / DTBO位於dtb / dtbo分區中,請使用DTB / DTBO分區格式中詳細介紹的表結構和標頭格式。

在引導程序中運行

跑步:

  1. 確定SoC並將相應的.dtb從存儲加載到內存中。
  2. 確定板子,然後將相應的.dtbo從存儲設備加載到內存中。
  3. 覆蓋的.dtb.dtbo是一個合併DT。
  4. 給定合併的DT的內存地址,啟動內核。