qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 09/13] hw/arm/bcm2836: Only provide "enabled-cpus" propert


From: Luc Michel
Subject: Re: [PATCH v2 09/13] hw/arm/bcm2836: Only provide "enabled-cpus" property to multicore SoCs
Date: Tue, 18 Feb 2020 10:01:27 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0

On 2/17/20 12:45 PM, Philippe Mathieu-Daudé wrote:
> It makes no sense to set enabled-cpus=0 on single core SoCs.
> 
> Signed-off-by: Philippe Mathieu-Daudé <address@hidden>

Reviewed-by: Luc Michel <address@hidden>

> ---
>  hw/arm/bcm2836.c | 15 +++++++--------
>  1 file changed, 7 insertions(+), 8 deletions(-)
> 
> diff --git a/hw/arm/bcm2836.c b/hw/arm/bcm2836.c
> index 3b95ad11e9..caaa4b625e 100644
> --- a/hw/arm/bcm2836.c
> +++ b/hw/arm/bcm2836.c
> @@ -32,6 +32,9 @@ typedef struct BCM283XClass {
>  #define BCM283X_GET_CLASS(obj) \
>      OBJECT_GET_CLASS(BCM283XClass, (obj), TYPE_BCM283X)
>  
> +static Property bcm2836_enabled_cores_property =
> +    DEFINE_PROP_UINT32("enabled-cpus", BCM283XState, enabled_cpus, 0);
> +
>  static void bcm2836_init(Object *obj)
>  {
>      BCM283XState *s = BCM283X(obj);
> @@ -43,6 +46,10 @@ static void bcm2836_init(Object *obj)
>                                  sizeof(s->cpu[n].core), bc->cpu_type,
>                                  &error_abort, NULL);
>      }
> +    if (bc->core_count) {
> +        qdev_property_add_static(DEVICE(obj), 
> &bcm2836_enabled_cores_property);
> +        qdev_prop_set_uint32(DEVICE(obj), "enabled-cpus", bc->core_count);
> +    }
>  
>      sysbus_init_child_obj(obj, "control", &s->control, sizeof(s->control),
>                            TYPE_BCM2836_CONTROL);
> @@ -154,12 +161,6 @@ static void bcm2836_realize(DeviceState *dev, Error 
> **errp)
>      }
>  }
>  
> -static Property bcm2836_props[] = {
> -    DEFINE_PROP_UINT32("enabled-cpus", BCM283XState, enabled_cpus,
> -                       BCM283X_NCPUS),
> -    DEFINE_PROP_END_OF_LIST()
> -};
> -
>  static void bcm283x_class_init(ObjectClass *oc, void *data)
>  {
>      DeviceClass *dc = DEVICE_CLASS(oc);
> @@ -179,7 +180,6 @@ static void bcm2836_class_init(ObjectClass *oc, void 
> *data)
>      bc->ctrl_base = 0x40000000;
>      bc->clusterid = 0xf;
>      dc->realize = bcm2836_realize;
> -    device_class_set_props(dc, bcm2836_props);
>  };
>  
>  #ifdef TARGET_AARCH64
> @@ -194,7 +194,6 @@ static void bcm2837_class_init(ObjectClass *oc, void 
> *data)
>      bc->ctrl_base = 0x40000000;
>      bc->clusterid = 0x0;
>      dc->realize = bcm2836_realize;
> -    device_class_set_props(dc, bcm2836_props);
>  };
>  #endif
>  
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]