Мне кажется, что я не понимаю, как интерпретировать формат файлов dtb
/ dts
, и надеялся, что вы поможете.После выполнения этих команд:
qemu-system-riscv64 -machine virt -machine dumpdtb=riscv64-virt.dtb
dtc -I dtb -O dts -o riscv-virt.dts riscv-virt.dtb
Полученный riscv-virt.dts
содержит определение memory
для машины:
/dts-v1/;
/ {
#address-cells = <0x02>;
#size-cells = <0x02>;
compatible = "riscv-virtio";
model = "riscv-virtio,qemu";
...other memory definitions...
memory@80000000 {
device_type = "memory";
reg = <0x0 0x80000000 0x0 0x8000000>;
};
};
У меня есть несколько вопросов:
- Почему существует несколько пар определений reg?Основываясь на этой ссылке , кажется, что вторая
0x0 0x8000000
перезаписывает то, что было только что установлено в предыдущей паре, 0x0 0x80000000
. - Как долго этот банк памяти?Какое значение говорит мне об этом?
- В первой строке написано
memory@80000000
, но затем команды reg начинаются с 0x0
.Память начинается с 0x0
или 0x80000000
?
По сути, я просто чувствую, что не понимаю, как это интерпретировать.На простом английском, что здесь определяется?