ユーザーが変更可能な PetaLinux デバイス ツリーの設定は、<plnx-proj-root>/project-spec/meta-user/recipes-bsp/device-tree/files/ にある次の設定ファイルに関連付けられています。
- system-user.dtsi
生成されたファイルは <plnx-proj-root>/components/plnx_workspace/device-tree/device-tree/ ディレクトリにあります。
注意:
これらの DTSI ファイルは自動生成されます。これらのファイルは編集しないでください。
デバイス ツリー ファイルの詳細は、PetaLinux プロジェクトの構造 を参照してください。
イーサネット PHY などの情報を追加する場合は、system-conf.dtsi ファイルに追加してください。この場合、情報 (ここではイーサネット PHY の情報) はボード レベルおよびボード特定であるため、デバイス ツリーにはご使用のプラットフォーム特定の情報を含める必要があります。
PetaLinux プロジェクトを設定すると、system-user.dtsi が自動的に作成されます。一度作成されると、自動的にはアップデートされません。
注記: このように手動での操作が必要なのは、一部の情報はボード レベルであり、何を含めるべきかをツールが判断できないためです。各デバイスのバインディングの詳細は、Linux カーネル デバイス ツリー バインディング ドキュメント (カーネル ソースのルート下の Documentation/devicetree/bindings) を参照してください。
次に、system-user.dtsi の適切に記述されたデバイス ツリー ノードの例を示します。
/dts-v1/;
/include/ "system-conf.dtsi"
/ {
};
&gem0 {
phy-handle = <&phy0>;
ps7_ethernet_0_mdio: mdio {
phy0: phy@7 {
compatible = "marvell,88e1116r";
device_type = "ethernet-phy";
reg = <7>;
};
};
};
重要: デバイス ツリーのノード名、MDIO アドレスおよび互換文字列が、実際のシステムの命名規則に対応している必要があります。
次に、sample-user-1.dtsi ファイルを追加する例を示します。
-
project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi に
/include/ "system-user-1.dtsi"
を追加します。ファイルは次のようになります。/include/ "system-conf.dtsi" /include/ "system-user-1.dtsi" / { };
-
file://system-user-1.dtsi
を project-spec/meta-user/recipes-bsp/device-tree/device-tree.bbappend に追加します。ファイルは次のようになります。FILESEXTRAPATHS:prepend := "${THISDIR}/files:" SRC_URI += "file://system-user.dtsi" SRC_URI += "file://system-user-1.dtsi"
推奨: <plnx-proj-root>/components/plnx_workspace/device-tree/device-tree/ に含まれるファイルを変更することはお勧めしません。推奨: ノードまたは値の追加、変更、および削除には、system-user DTSI を使用することをお勧めします。system-user DTSI は最後に追加されるので、その値が最優先されます。system-user DTSI を定義することにより、ほかの DTSI の値を上書きできます。