id = 2898 title = "-M virt,dumpdtb is missing information from the device tree" state = "closed" created_at = "2025-04-01T03:59:08.221Z" closed_at = "2025-05-08T13:46:59.812Z" labels = ["target: arm"] url = "https://gitlab.com/qemu-project/qemu/-/issues/2898" host-os = "n/a" host-arch = "n/a" qemu-version = "v10.0.0-rc1" guest-os = "n/a" guest-arch = "n/a" description = """dumpdtb no longer produces a device tree with the full system described. ``` $ dtc -I dtb -O dts test.dtb : Warning (unit_address_vs_reg): /soc/pci@30000000: node has a unit name, but no reg or ranges property : Warning (simple_bus_reg): /soc/pci@30000000: missing or empty reg/ranges property /dts-v1/; / { \t#address-cells = <0x02>; \t#size-cells = <0x02>; \tcompatible = "riscv-virtio"; \tmodel = "riscv-virtio,qemu"; \tpmu { \t\triscv,event-to-mhpmcounters = <0x01 0x01 0x7fff9 0x02 0x02 0x7fffc 0x10019 0x10019 0x7fff8 0x1001b 0x1001b 0x7fff8 0x10021 0x10021 0x7fff8>; \t\tcompatible = "riscv,pmu"; \t}; \tfw-cfg@10100000 { \t\tdma-coherent; \t\treg = <0x00 0x10100000 0x00 0x18>; \t\tcompatible = "qemu,fw-cfg-mmio"; \t}; \tflash@20000000 { \t\tbank-width = <0x04>; \t\treg = <0x00 0x20000000 0x00 0x2000000 0x00 0x22000000 0x00 0x2000000>; \t\tcompatible = "cfi-flash"; \t}; \taliases { \t}; \tchosen { \t\trng-seed = <0xd4266784 0xc7a7c66f 0xd5b7347d 0x862188f3 0x78065a8e 0xebdedae5 0xd77c47b0 0x34d31eff>; \t}; \tsoc { \t\t#address-cells = <0x02>; \t\t#size-cells = <0x02>; \t\tcompatible = "simple-bus"; \t\tranges; \t\tpci@30000000 { \t\t}; \t}; }; ```""" reproduce = """1. qemu-system-riscv64 -machine virt,dumpdtb=test.dtb 2. dtc -I dtb -O dts test.dtb""" additional = """The regression was introduced in https://gitlab.com/qemu-project/qemu/-/commit/8fd2518ef2f8d. If this commit is reverted, the expected behavior returns. ``` dtc -I dtb -O dts test.dtb | grep "@" \tplatform-bus@4000000 { \tmemory@80000000 { \t\tcpu@0 { \tfw-cfg@10100000 { \tflash@20000000 { \t\tserial0 = "/soc/serial@10000000"; \t\tstdout-path = "/soc/serial@10000000"; \t\trtc@101000 { \t\tserial@10000000 { \t\t\tclock-frequency = "", "8@"; \t\ttest@100000 { \t\tvirtio_mmio@10008000 { \t\tvirtio_mmio@10007000 { \t\tvirtio_mmio@10006000 { \t\tvirtio_mmio@10005000 { \t\tvirtio_mmio@10004000 { \t\tvirtio_mmio@10003000 { \t\tvirtio_mmio@10002000 { \t\tvirtio_mmio@10001000 { \t\tplic@c000000 { \t\tclint@2000000 { \t\tpci@30000000 { ``` Other machines are affected to a lesser degree. The arm virt machine: qemu-system-arm -machine virt,dumpdtb=test.dtb ``` @@ -8,28 +8,6 @@ \t#address-cells = <0x02>; \tcompatible = "linux,dummy-virt"; -\tpsci { -\t\tmigrate = <0x84000005>; -\t\tcpu_on = <0x84000003>; -\t\tcpu_off = <0x84000002>; -\t\tcpu_suspend = <0x84000001>; -\t\tmethod = "hvc"; -\t\tcompatible = "arm,psci-1.0", "arm,psci-0.2", "arm,psci"; -\t}; - -\tmemory@40000000 { -\t\treg = <0x00 0x40000000 0x00 0x8000000>; -\t\tdevice_type = "memory"; -\t}; - -\tplatform-bus@c000000 { -\t\tinterrupt-parent = <0x8002>; -\t\tranges = <0x00 0x00 0xc000000 0x2000000>; -\t\t#address-cells = <0x01>; -\t\t#size-cells = <0x01>; -\t\tcompatible = "qemu,platform", "simple-bus"; -\t}; - ```"""