mbox series

[v7,00/14] QMP/HMP: introduce 'dumpdtb'

Message ID 20220908194040.518400-1-danielhb413@gmail.com (mailing list archive)
Headers show
Series QMP/HMP: introduce 'dumpdtb' | expand

Message

Daniel Henrique Barboza Sept. 8, 2022, 7:40 p.m. UTC
Hi,

This new version implements all change requests from the v6.

- patch 5:
  - change bamboo_load_device_tree() to use a MachineState pointer
- patch 7:
  - change xilinx_load_device_tree() to use a MachineState pointer
- patch 14:
  - placed SRST/ERST below the { }'s
  - removed the '/tmp' reference in the command example
  - removed all 'Requires libfdt' references
  - changed qmp_dumpdtb() missing FDT error message to "This machine
    doesn't have a FDT"
- v6 link: https://lists.gnu.org/archive/html/qemu-devel/2022-09/msg00534.html

Daniel Henrique Barboza (14):
  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

 hmp-commands.hx              | 15 +++++++++++++++
 hw/arm/boot.c                |  3 ++-
 hw/microblaze/boot.c         |  8 +++++++-
 hw/microblaze/meson.build    |  2 +-
 hw/nios2/boot.c              |  8 +++++++-
 hw/nios2/meson.build         |  2 +-
 hw/ppc/e500.c                | 13 ++++++++++++-
 hw/ppc/pegasos2.c            |  4 ++++
 hw/ppc/pnv.c                 |  8 +++++++-
 hw/ppc/ppc440_bamboo.c       | 25 ++++++++++++++-----------
 hw/ppc/sam460ex.c            | 21 +++++++++++----------
 hw/ppc/spapr.c               |  3 +++
 hw/ppc/spapr_hcall.c         |  8 ++++++++
 hw/ppc/virtex_ml507.c        | 25 ++++++++++++++-----------
 hw/riscv/sifive_u.c          |  3 +++
 hw/riscv/spike.c             |  6 ++++++
 hw/xtensa/meson.build        |  2 +-
 hw/xtensa/xtfpga.c           |  6 +++++-
 include/sysemu/device_tree.h |  1 +
 monitor/misc.c               |  1 +
 qapi/machine.json            | 18 ++++++++++++++++++
 softmmu/device_tree.c        | 31 +++++++++++++++++++++++++++++++
 22 files changed, 172 insertions(+), 41 deletions(-)

Comments

Daniel Henrique Barboza Sept. 22, 2022, 9:40 a.m. UTC | #1
Ping

We're missing just patch 14/14. I'll leave non-acked patches behind and, if
no one is strongly against it, I'll push both the dumpdtb implementation and
the ppc parts via the ppc tree.

Alistair, I can also push the riscv bits through the ppc tree if it's easier
for you.


Thanks,

Daniel

On 9/8/22 16:40, Daniel Henrique Barboza wrote:
> Hi,
> 
> This new version implements all change requests from the v6.
> 
> - patch 5:
>    - change bamboo_load_device_tree() to use a MachineState pointer
> - patch 7:
>    - change xilinx_load_device_tree() to use a MachineState pointer
> - patch 14:
>    - placed SRST/ERST below the { }'s
>    - removed the '/tmp' reference in the command example
>    - removed all 'Requires libfdt' references
>    - changed qmp_dumpdtb() missing FDT error message to "This machine
>      doesn't have a FDT"
> - v6 link: https://lists.gnu.org/archive/html/qemu-devel/2022-09/msg00534.html
> 
> Daniel Henrique Barboza (14):
>    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
> 
>   hmp-commands.hx              | 15 +++++++++++++++
>   hw/arm/boot.c                |  3 ++-
>   hw/microblaze/boot.c         |  8 +++++++-
>   hw/microblaze/meson.build    |  2 +-
>   hw/nios2/boot.c              |  8 +++++++-
>   hw/nios2/meson.build         |  2 +-
>   hw/ppc/e500.c                | 13 ++++++++++++-
>   hw/ppc/pegasos2.c            |  4 ++++
>   hw/ppc/pnv.c                 |  8 +++++++-
>   hw/ppc/ppc440_bamboo.c       | 25 ++++++++++++++-----------
>   hw/ppc/sam460ex.c            | 21 +++++++++++----------
>   hw/ppc/spapr.c               |  3 +++
>   hw/ppc/spapr_hcall.c         |  8 ++++++++
>   hw/ppc/virtex_ml507.c        | 25 ++++++++++++++-----------
>   hw/riscv/sifive_u.c          |  3 +++
>   hw/riscv/spike.c             |  6 ++++++
>   hw/xtensa/meson.build        |  2 +-
>   hw/xtensa/xtfpga.c           |  6 +++++-
>   include/sysemu/device_tree.h |  1 +
>   monitor/misc.c               |  1 +
>   qapi/machine.json            | 18 ++++++++++++++++++
>   softmmu/device_tree.c        | 31 +++++++++++++++++++++++++++++++
>   22 files changed, 172 insertions(+), 41 deletions(-)
>
Philippe Mathieu-Daudé Sept. 22, 2022, 11:08 a.m. UTC | #2
Hi Daniel,

On 8/9/22 21:40, Daniel Henrique Barboza wrote:
> Hi,
> 
> This new version implements all change requests from the v6.
> 
> - patch 5:
>    - change bamboo_load_device_tree() to use a MachineState pointer
> - patch 7:
>    - change xilinx_load_device_tree() to use a MachineState pointer
> - patch 14:
>    - placed SRST/ERST below the { }'s
>    - removed the '/tmp' reference in the command example
>    - removed all 'Requires libfdt' references
>    - changed qmp_dumpdtb() missing FDT error message to "This machine
>      doesn't have a FDT"
> - v6 link: https://lists.gnu.org/archive/html/qemu-devel/2022-09/msg00534.html
> 
> Daniel Henrique Barboza (14):
>    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


- What about the MIPS Boston machine?

- We need to free ms->fdt in machine_finalize().