[PATCH v4 17/20] nubus-bridge: make slot_available_mask a qdev property

Mark Cave-Ayland posted 20 patches 4 years, 4 months ago
Maintainers: Laurent Vivier <laurent@vivier.eu>
There is a newer version of this series
[PATCH v4 17/20] nubus-bridge: make slot_available_mask a qdev property
Posted by Mark Cave-Ayland 4 years, 4 months ago
This is to allow Macintosh machines to further specify which slots are available
since the number of addressable slots may not match the number of physical slots
present in the machine.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
---
 hw/nubus/nubus-bridge.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/hw/nubus/nubus-bridge.c b/hw/nubus/nubus-bridge.c
index 1adda7f5a6..2c7c4ee121 100644
--- a/hw/nubus/nubus-bridge.c
+++ b/hw/nubus/nubus-bridge.c
@@ -21,11 +21,18 @@ static void nubus_bridge_init(Object *obj)
     qbus_create_inplace(bus, sizeof(s->bus), TYPE_NUBUS_BUS, DEVICE(s), NULL);
 }
 
+static Property nubus_bridge_properties[] = {
+    DEFINE_PROP_UINT32("slot-available-mask", NubusBridge,
+                       bus.slot_available_mask, 0xffff),
+    DEFINE_PROP_END_OF_LIST()
+};
+
 static void nubus_bridge_class_init(ObjectClass *klass, void *data)
 {
     DeviceClass *dc = DEVICE_CLASS(klass);
 
     dc->fw_name = "nubus";
+    device_class_set_props(dc, nubus_bridge_properties);
 }
 
 static const TypeInfo nubus_bridge_info = {
-- 
2.20.1


Re: [PATCH v4 17/20] nubus-bridge: make slot_available_mask a qdev property
Posted by Laurent Vivier 4 years, 4 months ago
Le 17/09/2021 à 09:50, Mark Cave-Ayland a écrit :
> This is to allow Macintosh machines to further specify which slots are available
> since the number of addressable slots may not match the number of physical slots
> present in the machine.
> 
> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
> ---
>  hw/nubus/nubus-bridge.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/hw/nubus/nubus-bridge.c b/hw/nubus/nubus-bridge.c
> index 1adda7f5a6..2c7c4ee121 100644
> --- a/hw/nubus/nubus-bridge.c
> +++ b/hw/nubus/nubus-bridge.c
> @@ -21,11 +21,18 @@ static void nubus_bridge_init(Object *obj)
>      qbus_create_inplace(bus, sizeof(s->bus), TYPE_NUBUS_BUS, DEVICE(s), NULL);
>  }
>  
> +static Property nubus_bridge_properties[] = {
> +    DEFINE_PROP_UINT32("slot-available-mask", NubusBridge,
> +                       bus.slot_available_mask, 0xffff),

So you can remove the "nubus->slot_available_mask = MAKE_64BIT_MASK(0, 16);" in nubus_init()?

> +    DEFINE_PROP_END_OF_LIST()
> +};
> +
>  static void nubus_bridge_class_init(ObjectClass *klass, void *data)
>  {
>      DeviceClass *dc = DEVICE_CLASS(klass);
>  
>      dc->fw_name = "nubus";
> +    device_class_set_props(dc, nubus_bridge_properties);
>  }
>  
>  static const TypeInfo nubus_bridge_info = {
> 

Reviewed-by: Laurent Vivier <laurent@vivier.eu>

Re: [PATCH v4 17/20] nubus-bridge: make slot_available_mask a qdev property
Posted by Mark Cave-Ayland 4 years, 4 months ago
On 20/09/2021 21:12, Laurent Vivier wrote:
> Le 17/09/2021 à 09:50, Mark Cave-Ayland a écrit :
>> This is to allow Macintosh machines to further specify which slots are available
>> since the number of addressable slots may not match the number of physical slots
>> present in the machine.
>>
>> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
>> ---
>>   hw/nubus/nubus-bridge.c | 7 +++++++
>>   1 file changed, 7 insertions(+)
>>
>> diff --git a/hw/nubus/nubus-bridge.c b/hw/nubus/nubus-bridge.c
>> index 1adda7f5a6..2c7c4ee121 100644
>> --- a/hw/nubus/nubus-bridge.c
>> +++ b/hw/nubus/nubus-bridge.c
>> @@ -21,11 +21,18 @@ static void nubus_bridge_init(Object *obj)
>>       qbus_create_inplace(bus, sizeof(s->bus), TYPE_NUBUS_BUS, DEVICE(s), NULL);
>>   }
>>   
>> +static Property nubus_bridge_properties[] = {
>> +    DEFINE_PROP_UINT32("slot-available-mask", NubusBridge,
>> +                       bus.slot_available_mask, 0xffff),
> 
> So you can remove the "nubus->slot_available_mask = MAKE_64BIT_MASK(0, 16);" in nubus_init()?

Ah yes, I can do that in v5.

>> +    DEFINE_PROP_END_OF_LIST()
>> +};
>> +
>>   static void nubus_bridge_class_init(ObjectClass *klass, void *data)
>>   {
>>       DeviceClass *dc = DEVICE_CLASS(klass);
>>   
>>       dc->fw_name = "nubus";
>> +    device_class_set_props(dc, nubus_bridge_properties);
>>   }
>>   
>>   static const TypeInfo nubus_bridge_info = {
>>
> 
> Reviewed-by: Laurent Vivier <laurent@vivier.eu>


ATB,

Mark.