Can be used to initialize the same property on all cpus. Signed-off-by: Damien Hedde <damien.he...@greensocs.com> --- include/hw/cpu/cpus.h | 3 +++ hw/cpu/cpus.c | 5 +++++ 2 files changed, 8 insertions(+)
diff --git a/include/hw/cpu/cpus.h b/include/hw/cpu/cpus.h index 295d7537e2..7e89a0d018 100644 --- a/include/hw/cpu/cpus.h +++ b/include/hw/cpu/cpus.h @@ -46,6 +46,8 @@ OBJECT_DECLARE_TYPE(CpusState, CpusClass, CPUS) * written before realize in order to enable/disable clustering. * @cluster_index: The cluster ID. This value is for internal use only and * should not be exposed directly to the user or to the guest. + * @start_powered_off: Default start power state of all cpus + * (can be modified on a per-cpu basis after realize). */ struct CpusState { /*< private >*/ @@ -59,6 +61,7 @@ struct CpusState { struct { uint16_t cpus; } topology; + bool start_powered_off; CPUState **cpus; }; diff --git a/hw/cpu/cpus.c b/hw/cpu/cpus.c index ed9402c100..d1fe80f0ab 100644 --- a/hw/cpu/cpus.c +++ b/hw/cpu/cpus.c @@ -27,6 +27,7 @@ static Property cpus_properties[] = { * FIXME: remove this property to keep it internal ? */ DEFINE_PROP_INT32("cluster-id", CpusState, cluster_index, -1), + DEFINE_PROP_BOOL("start-powered-off", CpusState, start_powered_off, false), DEFINE_PROP_END_OF_LIST() }; @@ -71,6 +72,10 @@ static void cpus_create_cpus(CpusState *s, Error **errp) cpu->cluster_index = s->cluster_index; } + /* set power start state */ + qdev_prop_set_bit(DEVICE(cpu), "start-powered-off", + s->start_powered_off); + /* let subclass configure the cpu */ if (cgc->configure_cpu) { cgc->configure_cpu(s, cpu, i); -- 2.35.1