デバイスツリー オーバーレイ

デバイスツリー(DT)は、名前付きノードと、検出不能ハードウェアを記述するプロパティで構成されるデータ構造です。Android で使用される Linux カーネルなどのカーネルは、Android デバイスで使用される幅広いハードウェア構成を DT によってサポートします。ハードウェア ベンダーは独自のデバイスツリーを提供 ソース(DTS) ファイル: デバイスツリー blob(DTB) ファイルにコンパイルされます デバイスツリー コンパイラを使用します。これらのファイルは、ブートローダーによって使用されます。DTB ファイルには、バイナリ形式のフラット化されたデバイスツリーが含まれています。

デバイスツリー オーバーレイ(DTO) 中央の DTB を DT(デバイスツリー blob)にオーバーレイできます。 オーバーレイ(DTBO))を使用します。ブートローダーで DTO を使用すると、システム オン チップの (SoC)DT と、デバイス固有の DT を動的にオーバーレイして、ツリーにノードを追加する 既存のツリー内のプロパティを変更できます

Android 9 リリースのアップデート

Android 9 では、ブートローダーが プロパティを DTO に置いてから、統合 DTB をカーネルに渡します。

DT を読み込む

ブートローダーに DT を読み込むには、ビルド、パーティショニング、実行が必要です。

図 1. ブートローダーでデバイスツリーを読み込むための一般的な実装。

  1. DTB を作成してフラッシュするには:

    1a. DTC(dtc)を使用して、DTS(.dts)を DTB(.dtb)にコンパイルします。 DTB は、フラット化された DT としてフォーマットされます。 1b. ブートローダーが実行時にアクセスできる場所に .dtb ファイルを書き込みます(詳細は後述します)。

  2. パーティショニングを行うには、ブートローダーが実行時にアクセスできるフラッシュ メモリ内の信頼できる場所を決定して、.dtb を配置します。場所の例:

    図 2. .dtb をブート パーティションに挿入するには、
    image.gz に追加して
    「kernel」として渡します。mkbootimg です。

    図 3. 固有のパーティション
    (dtb パーティションなど)に .dtb を挿入する

  3. DTB を読み込んでカーネルを起動するには:

    • ストレージからメモリに .dtb を読み込みます。
    • 読み込まれた DT のメモリアドレスを使用して、カーネルを起動します。

次のステップ

このページでは、DT を読み込むためのブートローダーの一般的なワークフローを説明し、一般的な DT 用語のリストを掲載しています。このセクションの他のページでは、ブートローダーのサポートを実装する方法、DTO をコンパイル、検証、最適化する方法、複数の DT を使用する方法について説明します。Google Chat では また、DTO の構文と 必須 DTO および DTBO パーティションのフォーマット: