Hi, In this new version the most notable changes are:
- removed fdt_pack() from machine specific code. As discussed in the previous version, the proper use of fdt_pack() would require more work/thought and, since it's not required for the work we're doing here, it was removed; - we're now handling string arrays. The previous version was interpreting all string properties as a single, plain string. We're now dealing with string arrays instead; - changed the output format to be more in line with the dts format. Other small changes were made based on the feeback of the previous version. Changes from v2: - patches 1-8: - remove fdt_pack() to shrink the FDT before assigning it to ms->fdt - patch 9: - call g_free(ms->fdt) to avoid leaking an old fdt during reset - patch 10: - added a commit msg note about why we're not eliminating spapr->fdt_blob for machine->fdt at this moment - patches 11, 12: - remove fdt_pack() to shrink the FDT before assigning it to ms->fdt - added Alistair's r-b - patch 13: - remove fdt_pack() to shrink the FDT before assigning it to ms->fdt - patch 14: - added a commit msg note about BQL - patch 15: - added a commit msg note about BQL - patch 16: - renamed fdt_prop_is_string to fdt_prop_is_string_array. \0 characters in the middle of the data array is now legal - added a new fdt_prop_format_string_array() to format the string array - added a semicolon at the end of the string array - patch 17: - added semicolon at the end of properties - use %02x instead of %x to format vals in [] notation - v2 link: https://lists.gnu.org/archive/html/qemu-devel/2022-08/msg00937.html Daniel Henrique Barboza (20): hw/arm: do not free machine->fdt in arm_load_dtb() hw/microblaze: set machine->fdt in microblaze_load_dtb() hw/nios2: set machine->fdt in nios2_load_dtb() hw/ppc: set machine->fdt in ppce500_load_device_tree() hw/ppc: set machine->fdt in bamboo_load_device_tree() hw/ppc: set machine->fdt in sam460ex_load_device_tree() hw/ppc: set machine->fdt in xilinx_load_device_tree() hw/ppc: set machine->fdt in pegasos2_machine_reset() hw/ppc: set machine->fdt in pnv_reset() hw/ppc: set machine->fdt in spapr machine hw/riscv: set machine->fdt in sifive_u_machine_init() hw/riscv: set machine->fdt in spike_board_init() hw/xtensa: set machine->fdt in xtfpga_init() qmp/hmp, device_tree.c: introduce dumpdtb qmp/hmp, device_tree.c: introduce 'info fdt' command device_tree.c: support string array prop in fdt_format_node() device_tree.c: support remaining FDT prop types device_node.c: enable 'info fdt' to print subnodes device_tree.c: add fdt_format_property() helper hmp, device_tree.c: add 'info fdt <property>' support hmp-commands-info.hx | 14 +++ hmp-commands.hx | 13 +++ hw/arm/boot.c | 6 +- hw/microblaze/boot.c | 11 +- hw/microblaze/meson.build | 2 +- hw/nios2/boot.c | 11 +- hw/nios2/meson.build | 2 +- hw/ppc/e500.c | 13 ++- hw/ppc/pegasos2.c | 7 ++ hw/ppc/pnv.c | 8 +- hw/ppc/ppc440_bamboo.c | 11 +- hw/ppc/sam460ex.c | 8 +- hw/ppc/spapr.c | 6 + hw/ppc/spapr_hcall.c | 8 ++ hw/ppc/virtex_ml507.c | 11 +- hw/riscv/sifive_u.c | 6 + hw/riscv/spike.c | 9 ++ hw/xtensa/meson.build | 2 +- hw/xtensa/xtfpga.c | 9 +- include/monitor/hmp.h | 2 + include/sysemu/device_tree.h | 7 ++ monitor/hmp-cmds.c | 28 +++++ monitor/qmp-cmds.c | 27 +++++ qapi/machine.json | 38 ++++++ softmmu/device_tree.c | 219 +++++++++++++++++++++++++++++++++++ 25 files changed, 466 insertions(+), 12 deletions(-) -- 2.37.2