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 노드를 상속한다는 것을 발견했습니다. 이것이 어디에 문서화되어 있는지 확실하지 않으며 실험을 통해 발견했습니다. 이것들을 분리할 수 있는 방법이 있나요?