2017-06-17 15 views
0

デバイスツリーのテキストファイル(.dts)が書き込まれる順序はまったく重要ですか?デバイスツリーのテキストファイルが書き込まれる順序は重要ですか?

たとえば、ノードをファイルの先頭から取り出し、そのノードを最下部に移動すると、ハードウェアの検出、IRQ設定などの順序が変更されますか?

+0

* ".dtx" *ファイルとは何ですか?私は**。dts **と**。dtsi **のソース/テキストファイルだけに精通しています。 – sawdust

答えて

1

デバイスツリーのテキストファイル(.dtx)が書き込まれる順序はまったく関係しますか?

.dts.dtsiソースファイルの答えは "依存" です。
デバイスツリーには構造があるため、ノードの再配置によってシステムのハードウェア構成が変更される場合と変更されない場合があります。


は、全体的なデバイスツリーは、(スライドDevice Tree for Dummiesの23)

/ { 
    aliases { ... }; 
    cpus { ... }; 
    [email protected] { 
     [email protected] { 
      /* Some devices */ 
     }; 
     [email protected] { 
      /* Some devices */ 
     }; 
    }; 
    [email protected] { 
     /* Some devices */ 
    }; 
}; 

デバイスがノードによって記載されるような構造を有しています。
特定のバス(たとえば、apbh @ 80000000)に接続されたデバイスノードは、デバイスアドレス別に、またはデバイス名順にアルファベット順に並べ替えることができます。このノードの順序付け(バス内)は重要ではありません。
もし ""の場合、ファイルの先頭からノードを取り出し、それを底部に移動して ""のノードを別のバスに再割り当てすると、別の構成を定義することになります。


デバイスツリーソーステキストのファイル構造は、.dts(ボード用)ファイルとオプションの.dtsiファイルで構成されています。理想的には、.dtsiのSoC用ファイルが汎用であり、SoCを使用するすべての.dtsボードファイルに含めることができます。

.dtsi SoC用のファイルは、通常、ベンダーによって提供され、すべてのチップデバイスの定義を持つ必要があります。必須のデバイス(例えば、電力管理、DMAコントローラ)が定義され、使用可能になる。しかし、必須ではないオプションの周辺デバイスおよび/または多重化されたピンに入出力が接続されているオプションのデバイスは無効になります。あなたはボード上のオプション周辺機器を使用する場合は

[email protected] { 
    [...] 
    hsadc: [email protected] { 
     reg = <0x80002000 0x2000>; 
     [...] 
     status = "disabled"; 
    }; 
    [...] 
}; 

、あなたは変更またはちょうどあなたのボード用のSoC .dtsiファイルをカスタマイズするべきではありません。
ではなく、最上位のボードファイル(SoC .dtsiファイルを含む)にそのデバイスのノードを追加し、デバイスのステータスを再宣言する必要があります。

#include "my_soc.dtsi" 
/{ 
    [email protected] { 
     [email protected] { 

      hsadc: [email protected] { 
       status = "okay"; 
      }; 

      [...] 
     }; 
    }; 
}; 

適切な構成を得るために、status = "okay"このノードはstatus = "disabled"をオーバーライドすることができるように(含ま.dtsiに)汎用ノードの後に​​配置されなければなりません。
これは、位置依存性の別のケースです。


たとえばあなたはファイルの先頭からノードを取り、下に移動し、それはハードウェアの検出、IRQの設定、または任意の順序を変更するかどうか私が意味ですか?

デバイスツリーは、システムハードウェアの構成を定義するためのものです。デバイスドライバの実行順序は、ドライバの構築方法、すなわちinitcallマクロによって制御されます。 init function invocation of drivers compiled into kernelおよびWhat is the difference between module_init and subsys_initcall while initializing the driver?
デバイスドライバによるリソースの取得は、そのドライバの制御下にあり、ドライバによって読み取られるだけのデバイスツリープロパティでは指示されません。

+0

ありがとうございます。質問を更新して "dtx"への参照を削除します。これは "dts"を正しく読んでいるはずです。 – Bludzee

+0

@sawdust:ノードを有効にするために、ステートメントはstatus = "okay"と考えられます。 –

+0

@ a.saurabh - はい!間違いを指摘してくれてありがとう。 – sawdust

関連する問題