This will enable support for 'dumpdtb' and 'info fdt' HMP commands for the virtex_ml507 machine.
Cc: Edgar E. Iglesias <edgar.igles...@gmail.com> Signed-off-by: Daniel Henrique Barboza <danielhb...@gmail.com> --- hw/ppc/virtex_ml507.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/hw/ppc/virtex_ml507.c b/hw/ppc/virtex_ml507.c index 53b126ff48..ed1d37486d 100644 --- a/hw/ppc/virtex_ml507.c +++ b/hw/ppc/virtex_ml507.c @@ -45,6 +45,8 @@ #include "hw/qdev-properties.h" #include "ppc405.h" +#include <libfdt.h> + #define EPAPR_MAGIC (0x45504150) #define FLASH_SIZE (16 * MiB) @@ -153,6 +155,7 @@ static int xilinx_load_device_tree(hwaddr addr, hwaddr initrd_size, const char *kernel_cmdline) { + MachineState *machine = MACHINE(qdev_get_machine()); char *path; int fdt_size; void *fdt = NULL; @@ -197,7 +200,15 @@ static int xilinx_load_device_tree(hwaddr addr, if (r < 0) fprintf(stderr, "couldn't set /chosen/bootargs\n"); cpu_physical_memory_write(addr, fdt, fdt_size); - g_free(fdt); + + /* + * Update the machine->fdt pointer to enable support for + * 'dumpdtb' and 'info fdt' commands. Use fdt_pack() to + * shrink the blob size we're going to store. + */ + fdt_pack(fdt); + machine->fdt = fdt; + return fdt_size; } -- 2.36.1