@@ -715,6 +715,7 @@ static void armsse_init(Object *obj)
name = g_strdup_printf("cluster%d", i);
object_initialize_child(obj, name, &s->cluster[i], TYPE_CPU_CLUSTER);
qdev_prop_set_uint32(DEVICE(&s->cluster[i]), "cluster-id", i);
+ qdev_prop_set_string(DEVICE(&s->cluster[i]), "cpu-type", TYPE_ARMV7M);
g_free(name);
name = g_strdup_printf("armv7m%d", i);
@@ -224,6 +224,8 @@ static void xlnx_zynqmp_create_rpu(MachineState *ms, XlnxZynqMPState *s,
object_initialize_child(OBJECT(s), "rpu-cluster", &s->rpu_cluster,
TYPE_CPU_CLUSTER);
qdev_prop_set_uint32(DEVICE(&s->rpu_cluster), "cluster-id", 1);
+ qdev_prop_set_string(DEVICE(&s->rpu_cluster), "cpu-type",
+ ARM_CPU_TYPE_NAME("cortex-r5f"));
for (i = 0; i < num_rpus; i++) {
const char *name;
@@ -381,6 +383,8 @@ static void xlnx_zynqmp_init(Object *obj)
object_initialize_child(obj, "apu-cluster", &s->apu_cluster,
TYPE_CPU_CLUSTER);
qdev_prop_set_uint32(DEVICE(&s->apu_cluster), "cluster-id", 0);
+ qdev_prop_set_string(DEVICE(&s->apu_cluster), "cpu-type",
+ ARM_CPU_TYPE_NAME("cortex-a53"));
for (i = 0; i < num_apus; i++) {
object_initialize_child(OBJECT(&s->apu_cluster), "apu-cpu[*]",
ARM SSE expects v7-M cores; the ZynqMP SoC expects Cortex-A53/R5F. Do not allow any other CPU type by setting the cluster 'cpu-type' property. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- hw/arm/armsse.c | 1 + hw/arm/xlnx-zynqmp.c | 4 ++++ 2 files changed, 5 insertions(+)