On Tue, Apr 1, 2025 at 2:16 PM Joel Stanley <j...@jms.id.au> wrote: > > In commit 8fd2518ef2f8 ("hw: Centralize handling of -machine dumpdtb > option") the call to dump was moved with respect to the init of the > machine. This resulted in the device tree missing parts of the machine > description, depending on how they construct their device tree. > > The arm virt machine is missing some PSCI nodes, while the riscv one > is missing most of its content. > > Move the dump to after the notifiers have been run, allowing > virt_machine_done to be called and the device tree to be fully > populated. > > Fixes: 8fd2518ef2f8 ("hw: Centralize handling of -machine dumpdtb option") > Signed-off-by: Joel Stanley <j...@jms.id.au>
Reviewed-by: Alistair Francis <alistair.fran...@wdc.com> Alistair > --- > hw/core/machine.c | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/hw/core/machine.c b/hw/core/machine.c > index f52a4f2273b2..63c6ef93d296 100644 > --- a/hw/core/machine.c > +++ b/hw/core/machine.c > @@ -1731,12 +1731,6 @@ void qdev_machine_creation_done(void) > phase_advance(PHASE_MACHINE_READY); > qdev_assert_realized_properly(); > > - /* > - * If the user used -machine dumpdtb=file.dtb to request that we > - * dump the DTB to a file, do it now, and exit. > - */ > - handle_machine_dumpdtb(current_machine); > - > /* TODO: once all bus devices are qdevified, this should be done > * when bus is created by qdev.c */ > /* > @@ -1750,6 +1744,12 @@ void qdev_machine_creation_done(void) > > notifier_list_notify(&machine_init_done_notifiers, NULL); > > + /* > + * If the user used -machine dumpdtb=file.dtb to request that we > + * dump the DTB to a file, do it now, and exit. > + */ > + handle_machine_dumpdtb(current_machine); > + > if (rom_check_and_register_reset() != 0) { > exit(1); > } > -- > 2.47.2 > >