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
>
>

Reply via email to