/ procのデバイスツリーのメモリノードがdtbと一致しません。

/ procのデバイスツリーのメモリノードがdtbと一致しません。

zynqmp zcu102ボードのデバイスツリーでメモリノードを変更しようとしています。ところで何かがこのノードを覆っているようです。

FITイメージとu-bootを使用して起動します。 FIT イメージの shasum で正しい DTB が存在し、/proc/device-tree に表示される偽ノードを追加して、カーネルが正しい DTB を使用していることを確認しました。ただし、何らかの理由で /proc/device-tree に示されているメモリノードが DTB と一致しません。

私のデバイスツリーの関連部分は次のとおりです。

memory {
    device_type = "memory";
    reg = <0x0 0x0 0x0 0x10000000>;
};
fakenode{
    foo = "bar";
};

これは/proc/device-treeの次のノードで見ることができます:

root@zynqmp:/proc/device-tree# hexdump memory/reg
0000000 0000 0000 0000 0000 0000 0000 0080 0000
0000010 0000 0800 0000 0000 0000 0000 0080 0000
0000020
root@zynqmp:/proc/device-tree# hexdump memory/name -C
00000000  6d 65 6d 6f 72 79 00                              |memory.|
00000007
root@zynqmp:/proc/device-tree# hexdump fakenode/name -C
00000000  66 61 6b 65 6e 6f 64 65  00                       |fakenode.|
00000009
root@zynqmp:/proc/device-tree# hexdump fakenode/foo -C
00000000  62 61 72 00                                       |bar.|
00000004

u-boot または Linux 構成がブート時にメモリノードを上書きできますか?私は今次に何をすべきかを終えています。

修正する:

私はLinuxがu-boot独自のデバイスツリーから/ memoryノードを継承することを発見しました。これがどこに文書化されているのかわからず、実験を通して発見しました。これらを分離する方法はありますか?

ベストアンサー1

おすすめ記事