-M virt,dumpdtb is missing information from the device tree Description of problem: 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/; / { #address-cells = <0x02>; #size-cells = <0x02>; compatible = "riscv-virtio"; model = "riscv-virtio,qemu"; pmu { riscv,event-to-mhpmcounters = <0x01 0x01 0x7fff9 0x02 0x02 0x7fffc 0x10019 0x10019 0x7fff8 0x1001b 0x1001b 0x7fff8 0x10021 0x10021 0x7fff8>; compatible = "riscv,pmu"; }; fw-cfg@10100000 { dma-coherent; reg = <0x00 0x10100000 0x00 0x18>; compatible = "qemu,fw-cfg-mmio"; }; flash@20000000 { bank-width = <0x04>; reg = <0x00 0x20000000 0x00 0x2000000 0x00 0x22000000 0x00 0x2000000>; compatible = "cfi-flash"; }; aliases { }; chosen { rng-seed = <0xd4266784 0xc7a7c66f 0xd5b7347d 0x862188f3 0x78065a8e 0xebdedae5 0xd77c47b0 0x34d31eff>; }; soc { #address-cells = <0x02>; #size-cells = <0x02>; compatible = "simple-bus"; ranges; pci@30000000 { }; }; }; ``` Steps to reproduce: 1. qemu-system-riscv64 -machine virt,dumpdtb=test.dtb 2. dtc -I dtb -O dts test.dtb Additional information: 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 "@" platform-bus@4000000 { memory@80000000 { cpu@0 { fw-cfg@10100000 { flash@20000000 { serial0 = "/soc/serial@10000000"; stdout-path = "/soc/serial@10000000"; rtc@101000 { serial@10000000 { clock-frequency = "", "8@"; test@100000 { virtio_mmio@10008000 { virtio_mmio@10007000 { virtio_mmio@10006000 { virtio_mmio@10005000 { virtio_mmio@10004000 { virtio_mmio@10003000 { virtio_mmio@10002000 { virtio_mmio@10001000 { plic@c000000 { clint@2000000 { pci@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 @@ #address-cells = <0x02>; compatible = "linux,dummy-virt"; - psci { - migrate = <0x84000005>; - cpu_on = <0x84000003>; - cpu_off = <0x84000002>; - cpu_suspend = <0x84000001>; - method = "hvc"; - compatible = "arm,psci-1.0", "arm,psci-0.2", "arm,psci"; - }; - - memory@40000000 { - reg = <0x00 0x40000000 0x00 0x8000000>; - device_type = "memory"; - }; - - platform-bus@c000000 { - interrupt-parent = <0x8002>; - ranges = <0x00 0x00 0xc000000 0x2000000>; - #address-cells = <0x01>; - #size-cells = <0x01>; - compatible = "qemu,platform", "simple-bus"; - }; - ```