Deriving from TYPE_SYS_BUS_DEVICE fixes the SoC object to be reset upon machine reset.
Signed-off-by: Bernhard Beschow <[email protected]> --- include/hw/arm/fsl-imx6.h | 5 ++--- hw/arm/fsl-imx6.c | 4 +--- hw/arm/sabrelite.c | 2 +- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/include/hw/arm/fsl-imx6.h b/include/hw/arm/fsl-imx6.h index 376deea3a4..4cf26f1fbc 100644 --- a/include/hw/arm/fsl-imx6.h +++ b/include/hw/arm/fsl-imx6.h @@ -35,6 +35,7 @@ #include "hw/usb/imx-usb-phy.h" #include "hw/pci-host/designware.h" #include "hw/core/or-irq.h" +#include "hw/core/sysbus.h" #include "system/memory.h" #include "target/arm/cpu.h" #include "net/can_emu.h" @@ -56,10 +57,8 @@ OBJECT_DECLARE_SIMPLE_TYPE(FslIMX6State, FSL_IMX6) #define FSL_IMX6_NUM_CANS 2 struct FslIMX6State { - /*< private >*/ - DeviceState parent_obj; + SysBusDevice parent_obj; - /*< public >*/ ARMCPU cpu[FSL_IMX6_NUM_CPUS]; A9MPPrivState a9mpcore; IMX6CCMState ccm; diff --git a/hw/arm/fsl-imx6.c b/hw/arm/fsl-imx6.c index eec9673c6f..7ba9b85a2e 100644 --- a/hw/arm/fsl-imx6.c +++ b/hw/arm/fsl-imx6.c @@ -519,13 +519,11 @@ static void fsl_imx6_class_init(ObjectClass *oc, const void *data) device_class_set_props(dc, fsl_imx6_properties); dc->realize = fsl_imx6_realize; dc->desc = "i.MX6 SOC"; - /* Reason: Uses serial_hd() in the realize() function */ - dc->user_creatable = false; } static const TypeInfo fsl_imx6_type_info = { .name = TYPE_FSL_IMX6, - .parent = TYPE_DEVICE, + .parent = TYPE_SYS_BUS_DEVICE, .instance_size = sizeof(FslIMX6State), .instance_init = fsl_imx6_init, .class_init = fsl_imx6_class_init, diff --git a/hw/arm/sabrelite.c b/hw/arm/sabrelite.c index 34f302f83c..f29443948e 100644 --- a/hw/arm/sabrelite.c +++ b/hw/arm/sabrelite.c @@ -66,7 +66,7 @@ static void sabrelite_init(MachineState *machine) OBJECT(s->canbus[i]), &error_fatal); } - qdev_realize(DEVICE(&s->soc), NULL, &error_fatal); + sysbus_realize_and_unref(SYS_BUS_DEVICE(&s->soc), &error_fatal); memory_region_add_subregion(get_system_memory(), FSL_IMX6_MMDC_ADDR, machine->ram); -- 2.55.0
