@@ -6,6 +6,6 @@ xtensa_ss.add(files(
))
xtensa_ss.add(when: 'CONFIG_XTENSA_SIM', if_true: files('sim.c'))
xtensa_ss.add(when: 'CONFIG_XTENSA_VIRT', if_true: files('virt.c'))
-xtensa_ss.add(when: 'CONFIG_XTENSA_XTFPGA', if_true: files('xtfpga.c'))
+xtensa_ss.add(when: 'CONFIG_XTENSA_XTFPGA', if_true: [files('xtfpga.c'), fdt])
hw_arch += {'xtensa': xtensa_ss}
@@ -50,6 +50,8 @@
#include "hw/xtensa/mx_pic.h"
#include "migration/vmstate.h"
+#include <libfdt.h>
+
typedef struct XtfpgaFlashDesc {
hwaddr base;
size_t size;
@@ -377,7 +379,12 @@ static void xtfpga_init(const XtfpgaBoardDesc *board, MachineState *machine)
cur_tagptr = put_tag(cur_tagptr, BP_TAG_FDT,
sizeof(dtb_addr), &dtb_addr);
cur_lowmem = QEMU_ALIGN_UP(cur_lowmem + fdt_size, 4 * KiB);
- g_free(fdt);
+
+ /*
+ * Update the machine->fdt pointer to enable support for
+ * 'dumpdtb' and 'info fdt' QMP/HMP commands.
+ */
+ machine->fdt = fdt;
}
#else
if (dtb_filename) {
This will enable support for 'dumpdtb' and 'info fdt' HMP commands for all xtensa machines that uses a FDT. Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com> --- hw/xtensa/meson.build | 2 +- hw/xtensa/xtfpga.c | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-)