Convert the *_orphan() device-creation calls in the hw/arm misc board files to the new parented API introduced earlier in this series, so every onboard device gets a stable path in the composition tree instead of landing in /machine/unattached with an unstable device[N] name.
The parent for each device is the object that owns its lifetime: the machine for board-created devices, the containing SoC device for composite children. Names follow existing QOM conventions. Per-site rationale (reviewers: dispute the modeling here): hw/arm/max78000fthr.c:29 | qdev_new_orphan | OBJECT(machine) | "soc" | board init; existing add_child(machine,"soc") collapsed; drop _and_unref hw/arm/msf2-som.c:62 | qdev_new_orphan | OBJECT(machine) | "soc" | board init; existing add_child(machine,"soc") collapsed; drop _and_unref hw/arm/msf2-som.c:86 | qdev_new_orphan | OBJECT(machine) | "spi-flash" | board init; single m25p80 flash on SPI bus; drop _and_unref hw/arm/netduino2.c:47 | qdev_new_orphan | OBJECT(machine) | "soc" | board init; existing add_child(machine,"soc") collapsed; drop _and_unref hw/arm/netduinoplus2.c:47 | qdev_new_orphan | OBJECT(machine) | "soc" | board init; existing add_child(machine,"soc") collapsed; drop _and_unref hw/arm/olimex-stm32-h405.c:50 | qdev_new_orphan | OBJECT(machine) | "soc" | board init; existing add_child(machine,"soc") collapsed; drop _and_unref hw/arm/raspi.c:286 | qdev_new_orphan | OBJECT(machine) | "sd-card" | raspi_base_machine_init(MachineState *machine); single SD card; drop _and_unref hw/arm/stm32vldiscovery.c:50 | qdev_new_orphan | OBJECT(machine) | "soc" | board init; existing add_child(machine,"soc") collapsed; drop _and_unref Link: https://lore.kernel.org/qemu-devel/[email protected]/ Assisted-by: Kiro Signed-off-by: Alexander Graf <[email protected]> --- hw/arm/max78000fthr.c | 5 ++--- hw/arm/msf2-som.c | 10 +++++----- hw/arm/netduino2.c | 5 ++--- hw/arm/netduinoplus2.c | 5 ++--- hw/arm/olimex-stm32-h405.c | 5 ++--- hw/arm/raspi.c | 4 ++-- hw/arm/stm32vldiscovery.c | 5 ++--- 7 files changed, 17 insertions(+), 22 deletions(-) diff --git a/hw/arm/max78000fthr.c b/hw/arm/max78000fthr.c index d2fb4c018b..e38a3340a4 100644 --- a/hw/arm/max78000fthr.c +++ b/hw/arm/max78000fthr.c @@ -26,10 +26,9 @@ static void max78000_init(MachineState *machine) sysclk = clock_new(OBJECT(machine), "SYSCLK"); clock_set_hz(sysclk, SYSCLK_FRQ); - dev = qdev_new_orphan(TYPE_MAX78000_SOC); - object_property_add_child(OBJECT(machine), "soc", OBJECT(dev)); + dev = qdev_new(OBJECT(machine), "soc", TYPE_MAX78000_SOC); qdev_connect_clock_in(dev, "sysclk", sysclk); - sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal); + sysbus_realize(SYS_BUS_DEVICE(dev), &error_fatal); armv7m_load_kernel(ARM_CPU(first_cpu), machine->kernel_filename, diff --git a/hw/arm/msf2-som.c b/hw/arm/msf2-som.c index bb1e774764..0d0e2514dd 100644 --- a/hw/arm/msf2-som.c +++ b/hw/arm/msf2-som.c @@ -59,8 +59,7 @@ static void emcraft_sf2_s2s010_init(MachineState *machine) &error_fatal); memory_region_add_subregion(sysmem, DDR_BASE_ADDRESS, ddr); - dev = qdev_new_orphan(TYPE_MSF2_SOC); - object_property_add_child(OBJECT(machine), "soc", OBJECT(dev)); + dev = qdev_new(OBJECT(machine), "soc", TYPE_MSF2_SOC); qdev_prop_set_string(dev, "part-name", "M2S010"); qdev_prop_set_uint64(dev, "eNVM-size", M2S010_ENVM_SIZE); qdev_prop_set_uint64(dev, "eSRAM-size", M2S010_ESRAM_SIZE); @@ -77,19 +76,20 @@ static void emcraft_sf2_s2s010_init(MachineState *machine) qdev_prop_set_uint32(dev, "apb0div", 2); qdev_prop_set_uint32(dev, "apb1div", 2); - sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal); + sysbus_realize(SYS_BUS_DEVICE(dev), &error_fatal); soc = MSF2_SOC(dev); /* Attach SPI flash to SPI0 controller */ spi_bus = qdev_get_child_bus(dev, "spi0"); - spi_flash = qdev_new_orphan("s25sl12801"); /* Spansion S25FL128SDPBHICO */ + /* Spansion S25FL128SDPBHICO */ + spi_flash = qdev_new(OBJECT(machine), "spi-flash", "s25sl12801"); qdev_prop_set_uint8(spi_flash, "spansion-cr2nv", 0x8); if (dinfo) { qdev_prop_set_drive_err(spi_flash, "drive", blk_by_legacy_dinfo(dinfo), &error_fatal); } - qdev_realize_and_unref(spi_flash, spi_bus, &error_fatal); + qdev_realize(spi_flash, spi_bus, &error_fatal); cs_line = qdev_get_gpio_in_named(spi_flash, SSI_GPIO_CS, 0); sysbus_connect_irq(SYS_BUS_DEVICE(&soc->spi[0]), 1, cs_line); diff --git a/hw/arm/netduino2.c b/hw/arm/netduino2.c index cee887c194..9a1caf06a1 100644 --- a/hw/arm/netduino2.c +++ b/hw/arm/netduino2.c @@ -44,10 +44,9 @@ static void netduino2_init(MachineState *machine) sysclk = clock_new(OBJECT(machine), "SYSCLK"); clock_set_hz(sysclk, SYSCLK_FRQ); - dev = qdev_new_orphan(TYPE_STM32F205_SOC); - object_property_add_child(OBJECT(machine), "soc", OBJECT(dev)); + dev = qdev_new(OBJECT(machine), "soc", TYPE_STM32F205_SOC); qdev_connect_clock_in(dev, "sysclk", sysclk); - sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal); + sysbus_realize(SYS_BUS_DEVICE(dev), &error_fatal); armv7m_load_kernel(STM32F205_SOC(dev)->armv7m.cpu, machine->kernel_filename, 0, FLASH_SIZE); diff --git a/hw/arm/netduinoplus2.c b/hw/arm/netduinoplus2.c index 65251dfe96..564dae1f16 100644 --- a/hw/arm/netduinoplus2.c +++ b/hw/arm/netduinoplus2.c @@ -44,10 +44,9 @@ static void netduinoplus2_init(MachineState *machine) sysclk = clock_new(OBJECT(machine), "SYSCLK"); clock_set_hz(sysclk, SYSCLK_FRQ); - dev = qdev_new_orphan(TYPE_STM32F405_SOC); - object_property_add_child(OBJECT(machine), "soc", OBJECT(dev)); + dev = qdev_new(OBJECT(machine), "soc", TYPE_STM32F405_SOC); qdev_connect_clock_in(dev, "sysclk", sysclk); - sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal); + sysbus_realize(SYS_BUS_DEVICE(dev), &error_fatal); armv7m_load_kernel(STM32F405_SOC(dev)->armv7m.cpu, machine->kernel_filename, diff --git a/hw/arm/olimex-stm32-h405.c b/hw/arm/olimex-stm32-h405.c index 70f7791695..b24142e909 100644 --- a/hw/arm/olimex-stm32-h405.c +++ b/hw/arm/olimex-stm32-h405.c @@ -47,10 +47,9 @@ static void olimex_stm32_h405_init(MachineState *machine) sysclk = clock_new(OBJECT(machine), "SYSCLK"); clock_set_hz(sysclk, SYSCLK_FRQ); - dev = qdev_new_orphan(TYPE_STM32F405_SOC); - object_property_add_child(OBJECT(machine), "soc", OBJECT(dev)); + dev = qdev_new(OBJECT(machine), "soc", TYPE_STM32F405_SOC); qdev_connect_clock_in(dev, "sysclk", sysclk); - sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal); + sysbus_realize(SYS_BUS_DEVICE(dev), &error_fatal); armv7m_load_kernel(STM32F405_SOC(dev)->armv7m.cpu, machine->kernel_filename, diff --git a/hw/arm/raspi.c b/hw/arm/raspi.c index 2d5f51506d..55ca84cd1d 100644 --- a/hw/arm/raspi.c +++ b/hw/arm/raspi.c @@ -283,9 +283,9 @@ void raspi_base_machine_init(MachineState *machine, error_report("No SD bus found in SOC object"); exit(1); } - carddev = qdev_new_orphan(TYPE_SD_CARD); + carddev = qdev_new(OBJECT(machine), "sd-card", TYPE_SD_CARD); qdev_prop_set_drive_err(carddev, "drive", blk, &error_fatal); - qdev_realize_and_unref(carddev, bus, &error_fatal); + qdev_realize(carddev, bus, &error_fatal); vcram_size = object_property_get_uint(OBJECT(soc), "vcram-size", &error_abort); diff --git a/hw/arm/stm32vldiscovery.c b/hw/arm/stm32vldiscovery.c index 8c37d41e63..69503805cb 100644 --- a/hw/arm/stm32vldiscovery.c +++ b/hw/arm/stm32vldiscovery.c @@ -47,10 +47,9 @@ static void stm32vldiscovery_init(MachineState *machine) sysclk = clock_new(OBJECT(machine), "SYSCLK"); clock_set_hz(sysclk, SYSCLK_FRQ); - dev = qdev_new_orphan(TYPE_STM32F100_SOC); - object_property_add_child(OBJECT(machine), "soc", OBJECT(dev)); + dev = qdev_new(OBJECT(machine), "soc", TYPE_STM32F100_SOC); qdev_connect_clock_in(dev, "sysclk", sysclk); - sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal); + sysbus_realize(SYS_BUS_DEVICE(dev), &error_fatal); armv7m_load_kernel(STM32F100_SOC(dev)->armv7m.cpu, machine->kernel_filename, -- 2.47.1
