@@ -166,8 +166,6 @@ static void fsl_imx6ul_realize(DeviceState *dev, Error **errp)
return;
}
- object_property_set_int(OBJECT(&s->cpu), "psci-conduit",
- QEMU_PSCI_CONDUIT_SMC, &error_abort);
qdev_realize(DEVICE(&s->cpu), NULL, &error_abort);
/*
@@ -159,9 +159,6 @@ static void fsl_imx7_realize(DeviceState *dev, Error **errp)
for (i = 0; i < smp_cpus; i++) {
o = OBJECT(&s->cpu[i]);
- object_property_set_int(o, "psci-conduit", QEMU_PSCI_CONDUIT_SMC,
- &error_abort);
-
/* On uniprocessor, the CBAR is set to 0 */
if (smp_cpus > 1) {
object_property_set_int(o, "reset-cbar", FSL_IMX7_A7MPCORE_ADDR,
@@ -169,7 +166,10 @@ static void fsl_imx7_realize(DeviceState *dev, Error **errp)
}
if (i) {
- /* Secondary CPUs start in PSCI powered-down state */
+ /*
+ * Secondary CPUs start in powered-down state (and can be
+ * powered up via the SRC system reset controller)
+ */
object_property_set_bool(o, "start-powered-off", true,
&error_abort);
}
@@ -35,6 +35,7 @@ static void mcimx6ul_evk_init(MachineState *machine)
.board_id = -1,
.ram_size = machine->ram_size,
.nb_cpus = machine->smp.cpus,
+ .psci_conduit = QEMU_PSCI_CONDUIT_SMC,
};
s = FSL_IMX6UL(object_new(TYPE_FSL_IMX6UL));
@@ -37,6 +37,7 @@ static void mcimx7d_sabre_init(MachineState *machine)
.board_id = -1,
.ram_size = machine->ram_size,
.nb_cpus = machine->smp.cpus,
+ .psci_conduit = QEMU_PSCI_CONDUIT_SMC,
};
s = FSL_IMX7(object_new(TYPE_FSL_IMX7));