[PATCH v3 04/28] hw/arm/aspeed: Rename IRQ table and machine name for AST2700 A0

Jamin Lin via posted 28 patches 12 months ago
There is a newer version of this series
[PATCH v3 04/28] hw/arm/aspeed: Rename IRQ table and machine name for AST2700 A0
Posted by Jamin Lin via 12 months ago
Currently, AST2700 SoC only supports A0. To support AST2700 A1, rename its IRQ
table and machine name.

Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
---
 hw/arm/aspeed.c         | 8 ++++----
 hw/arm/aspeed_ast27x0.c | 8 ++++----
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c
index d9418e2b9f..6ddfdbdeba 100644
--- a/hw/arm/aspeed.c
+++ b/hw/arm/aspeed.c
@@ -1654,12 +1654,12 @@ static void ast2700_evb_i2c_init(AspeedMachineState *bmc)
                             TYPE_TMP105, 0x4d);
 }
 
-static void aspeed_machine_ast2700_evb_class_init(ObjectClass *oc, void *data)
+static void aspeed_machine_ast2700a0_evb_class_init(ObjectClass *oc, void *data)
 {
     MachineClass *mc = MACHINE_CLASS(oc);
     AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
 
-    mc->desc = "Aspeed AST2700 EVB (Cortex-A35)";
+    mc->desc = "Aspeed AST2700 A0 EVB (Cortex-A35)";
     amc->soc_name  = "ast2700-a0";
     amc->hw_strap1 = AST2700_EVB_HW_STRAP1;
     amc->hw_strap2 = AST2700_EVB_HW_STRAP2;
@@ -1795,9 +1795,9 @@ static const TypeInfo aspeed_machine_types[] = {
         .class_init     = aspeed_minibmc_machine_ast1030_evb_class_init,
 #ifdef TARGET_AARCH64
     }, {
-        .name          = MACHINE_TYPE_NAME("ast2700-evb"),
+        .name          = MACHINE_TYPE_NAME("ast2700a0-evb"),
         .parent        = TYPE_ASPEED_MACHINE,
-        .class_init    = aspeed_machine_ast2700_evb_class_init,
+        .class_init    = aspeed_machine_ast2700a0_evb_class_init,
 #endif
     }, {
         .name          = TYPE_ASPEED_MACHINE,
diff --git a/hw/arm/aspeed_ast27x0.c b/hw/arm/aspeed_ast27x0.c
index 2d0c99f159..6e3375f5d3 100644
--- a/hw/arm/aspeed_ast27x0.c
+++ b/hw/arm/aspeed_ast27x0.c
@@ -72,7 +72,7 @@ static const hwaddr aspeed_soc_ast2700_memmap[] = {
 #define AST2700_MAX_IRQ 256
 
 /* Shared Peripheral Interrupt values below are offset by -32 from datasheet */
-static const int aspeed_soc_ast2700_irqmap[] = {
+static const int aspeed_soc_ast2700a0_irqmap[] = {
     [ASPEED_DEV_UART0]     = 132,
     [ASPEED_DEV_UART1]     = 132,
     [ASPEED_DEV_UART2]     = 132,
@@ -740,7 +740,7 @@ static void aspeed_soc_ast2700_realize(DeviceState *dev, Error **errp)
     create_unimplemented_device("ast2700.io", 0x0, 0x4000000);
 }
 
-static void aspeed_soc_ast2700_class_init(ObjectClass *oc, void *data)
+static void aspeed_soc_ast2700a0_class_init(ObjectClass *oc, void *data)
 {
     static const char * const valid_cpu_types[] = {
         ARM_CPU_TYPE_NAME("cortex-a35"),
@@ -763,7 +763,7 @@ static void aspeed_soc_ast2700_class_init(ObjectClass *oc, void *data)
     sc->uarts_num    = 13;
     sc->num_cpus     = 4;
     sc->uarts_base   = ASPEED_DEV_UART0;
-    sc->irqmap       = aspeed_soc_ast2700_irqmap;
+    sc->irqmap       = aspeed_soc_ast2700a0_irqmap;
     sc->memmap       = aspeed_soc_ast2700_memmap;
     sc->get_irq      = aspeed_soc_ast2700_get_irq;
 }
@@ -778,7 +778,7 @@ static const TypeInfo aspeed_soc_ast27x0_types[] = {
         .name           = "ast2700-a0",
         .parent         = TYPE_ASPEED27X0_SOC,
         .instance_init  = aspeed_soc_ast2700_init,
-        .class_init     = aspeed_soc_ast2700_class_init,
+        .class_init     = aspeed_soc_ast2700a0_class_init,
     },
 };
 
-- 
2.34.1
Re: [PATCH v3 04/28] hw/arm/aspeed: Rename IRQ table and machine name for AST2700 A0
Posted by Cédric Le Goater 11 months, 3 weeks ago
On 2/13/25 04:35, Jamin Lin wrote:
> Currently, AST2700 SoC only supports A0. To support AST2700 A1, rename its IRQ
> table and machine name.
> 
> Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
> ---
>   hw/arm/aspeed.c         | 8 ++++----
>   hw/arm/aspeed_ast27x0.c | 8 ++++----
>   2 files changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c
> index d9418e2b9f..6ddfdbdeba 100644
> --- a/hw/arm/aspeed.c
> +++ b/hw/arm/aspeed.c
> @@ -1654,12 +1654,12 @@ static void ast2700_evb_i2c_init(AspeedMachineState *bmc)
>                               TYPE_TMP105, 0x4d);
>   }
>   
> -static void aspeed_machine_ast2700_evb_class_init(ObjectClass *oc, void *data)
> +static void aspeed_machine_ast2700a0_evb_class_init(ObjectClass *oc, void *data)
>   {
>       MachineClass *mc = MACHINE_CLASS(oc);
>       AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
>   
> -    mc->desc = "Aspeed AST2700 EVB (Cortex-A35)";
> +    mc->desc = "Aspeed AST2700 A0 EVB (Cortex-A35)";
>       amc->soc_name  = "ast2700-a0";
>       amc->hw_strap1 = AST2700_EVB_HW_STRAP1;
>       amc->hw_strap2 = AST2700_EVB_HW_STRAP2;
> @@ -1795,9 +1795,9 @@ static const TypeInfo aspeed_machine_types[] = {
>           .class_init     = aspeed_minibmc_machine_ast1030_evb_class_init,
>   #ifdef TARGET_AARCH64
>       }, {
> -        .name          = MACHINE_TYPE_NAME("ast2700-evb"),
> +        .name          = MACHINE_TYPE_NAME("ast2700a0-evb"),

machine "ast2700-evb" has now disappeared from QEMU. You need to add
an alias with "mc->alias" to restore the initial machine name, or
follow the deprecation process :

   https://qemu.readthedocs.io/en/v9.2.0/about/deprecated.html

Thanks,

C.



>           .parent        = TYPE_ASPEED_MACHINE,
> -        .class_init    = aspeed_machine_ast2700_evb_class_init,
> +        .class_init    = aspeed_machine_ast2700a0_evb_class_init,
>   #endif
>       }, {
>           .name          = TYPE_ASPEED_MACHINE,
> diff --git a/hw/arm/aspeed_ast27x0.c b/hw/arm/aspeed_ast27x0.c
> index 2d0c99f159..6e3375f5d3 100644
> --- a/hw/arm/aspeed_ast27x0.c
> +++ b/hw/arm/aspeed_ast27x0.c
> @@ -72,7 +72,7 @@ static const hwaddr aspeed_soc_ast2700_memmap[] = {
>   #define AST2700_MAX_IRQ 256
>   
>   /* Shared Peripheral Interrupt values below are offset by -32 from datasheet */
> -static const int aspeed_soc_ast2700_irqmap[] = {
> +static const int aspeed_soc_ast2700a0_irqmap[] = {
>       [ASPEED_DEV_UART0]     = 132,
>       [ASPEED_DEV_UART1]     = 132,
>       [ASPEED_DEV_UART2]     = 132,
> @@ -740,7 +740,7 @@ static void aspeed_soc_ast2700_realize(DeviceState *dev, Error **errp)
>       create_unimplemented_device("ast2700.io", 0x0, 0x4000000);
>   }
>   
> -static void aspeed_soc_ast2700_class_init(ObjectClass *oc, void *data)
> +static void aspeed_soc_ast2700a0_class_init(ObjectClass *oc, void *data)
>   {
>       static const char * const valid_cpu_types[] = {
>           ARM_CPU_TYPE_NAME("cortex-a35"),
> @@ -763,7 +763,7 @@ static void aspeed_soc_ast2700_class_init(ObjectClass *oc, void *data)
>       sc->uarts_num    = 13;
>       sc->num_cpus     = 4;
>       sc->uarts_base   = ASPEED_DEV_UART0;
> -    sc->irqmap       = aspeed_soc_ast2700_irqmap;
> +    sc->irqmap       = aspeed_soc_ast2700a0_irqmap;
>       sc->memmap       = aspeed_soc_ast2700_memmap;
>       sc->get_irq      = aspeed_soc_ast2700_get_irq;
>   }
> @@ -778,7 +778,7 @@ static const TypeInfo aspeed_soc_ast27x0_types[] = {
>           .name           = "ast2700-a0",
>           .parent         = TYPE_ASPEED27X0_SOC,
>           .instance_init  = aspeed_soc_ast2700_init,
> -        .class_init     = aspeed_soc_ast2700_class_init,
> +        .class_init     = aspeed_soc_ast2700a0_class_init,
>       },
>   };
>
RE: [PATCH v3 04/28] hw/arm/aspeed: Rename IRQ table and machine name for AST2700 A0
Posted by Jamin Lin 11 months, 3 weeks ago
Hi Cedric,

> Cc: Troy Lee <troy_lee@aspeedtech.com>
> Subject: Re: [PATCH v3 04/28] hw/arm/aspeed: Rename IRQ table and machine
> name for AST2700 A0
> 
> On 2/13/25 04:35, Jamin Lin wrote:
> > Currently, AST2700 SoC only supports A0. To support AST2700 A1, rename
> > its IRQ table and machine name.
> >
> > Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
> > ---
> >   hw/arm/aspeed.c         | 8 ++++----
> >   hw/arm/aspeed_ast27x0.c | 8 ++++----
> >   2 files changed, 8 insertions(+), 8 deletions(-)
> >
> > diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c index
> > d9418e2b9f..6ddfdbdeba 100644
> > --- a/hw/arm/aspeed.c
> > +++ b/hw/arm/aspeed.c
> > @@ -1654,12 +1654,12 @@ static void
> ast2700_evb_i2c_init(AspeedMachineState *bmc)
> >                               TYPE_TMP105, 0x4d);
> >   }
> >
> > -static void aspeed_machine_ast2700_evb_class_init(ObjectClass *oc,
> > void *data)
> > +static void aspeed_machine_ast2700a0_evb_class_init(ObjectClass *oc,
> > +void *data)
> >   {
> >       MachineClass *mc = MACHINE_CLASS(oc);
> >       AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
> >
> > -    mc->desc = "Aspeed AST2700 EVB (Cortex-A35)";
> > +    mc->desc = "Aspeed AST2700 A0 EVB (Cortex-A35)";
> >       amc->soc_name  = "ast2700-a0";
> >       amc->hw_strap1 = AST2700_EVB_HW_STRAP1;
> >       amc->hw_strap2 = AST2700_EVB_HW_STRAP2; @@ -1795,9 +1795,9
> @@
> > static const TypeInfo aspeed_machine_types[] = {
> >           .class_init     =
> aspeed_minibmc_machine_ast1030_evb_class_init,
> >   #ifdef TARGET_AARCH64
> >       }, {
> > -        .name          = MACHINE_TYPE_NAME("ast2700-evb"),
> > +        .name          = MACHINE_TYPE_NAME("ast2700a0-evb"),
> 
> machine "ast2700-evb" has now disappeared from QEMU. You need to add an
> alias with "mc->alias" to restore the initial machine name, or follow the


Will add

> deprecation process :
> 
>    https://qemu.readthedocs.io/en/v9.2.0/about/deprecated.html
> 
Thanks for letting me know about the machine deprecation rules.
I understand why you suggest aliasing the initial machine "ast2700-evb" to "ast2700a0-evb."

To follow the machine deprecation rule, the initial machine "ast2700-evb" is aliased to "ast2700a0-evb."
In the future, we will alias "ast2700-evb" to new SoCs, such as "ast2700a1-evb."
Does this progress meet your expectations?

Thanks-Jamin

> Thanks,
> 
> C.
> 
> 
> 
> >           .parent        = TYPE_ASPEED_MACHINE,
> > -        .class_init    = aspeed_machine_ast2700_evb_class_init,
> > +        .class_init    = aspeed_machine_ast2700a0_evb_class_init,
> >   #endif
> >       }, {
> >           .name          = TYPE_ASPEED_MACHINE,
> > diff --git a/hw/arm/aspeed_ast27x0.c b/hw/arm/aspeed_ast27x0.c index
> > 2d0c99f159..6e3375f5d3 100644
> > --- a/hw/arm/aspeed_ast27x0.c
> > +++ b/hw/arm/aspeed_ast27x0.c
> > @@ -72,7 +72,7 @@ static const hwaddr aspeed_soc_ast2700_memmap[] =
> {
> >   #define AST2700_MAX_IRQ 256
> >
> >   /* Shared Peripheral Interrupt values below are offset by -32 from
> > datasheet */ -static const int aspeed_soc_ast2700_irqmap[] = {
> > +static const int aspeed_soc_ast2700a0_irqmap[] = {
> >       [ASPEED_DEV_UART0]     = 132,
> >       [ASPEED_DEV_UART1]     = 132,
> >       [ASPEED_DEV_UART2]     = 132,
> > @@ -740,7 +740,7 @@ static void aspeed_soc_ast2700_realize(DeviceState
> *dev, Error **errp)
> >       create_unimplemented_device("ast2700.io", 0x0, 0x4000000);
> >   }
> >
> > -static void aspeed_soc_ast2700_class_init(ObjectClass *oc, void
> > *data)
> > +static void aspeed_soc_ast2700a0_class_init(ObjectClass *oc, void
> > +*data)
> >   {
> >       static const char * const valid_cpu_types[] = {
> >           ARM_CPU_TYPE_NAME("cortex-a35"), @@ -763,7 +763,7 @@
> static
> > void aspeed_soc_ast2700_class_init(ObjectClass *oc, void *data)
> >       sc->uarts_num    = 13;
> >       sc->num_cpus     = 4;
> >       sc->uarts_base   = ASPEED_DEV_UART0;
> > -    sc->irqmap       = aspeed_soc_ast2700_irqmap;
> > +    sc->irqmap       = aspeed_soc_ast2700a0_irqmap;
> >       sc->memmap       = aspeed_soc_ast2700_memmap;
> >       sc->get_irq      = aspeed_soc_ast2700_get_irq;
> >   }
> > @@ -778,7 +778,7 @@ static const TypeInfo aspeed_soc_ast27x0_types[] = {
> >           .name           = "ast2700-a0",
> >           .parent         = TYPE_ASPEED27X0_SOC,
> >           .instance_init  = aspeed_soc_ast2700_init,
> > -        .class_init     = aspeed_soc_ast2700_class_init,
> > +        .class_init     = aspeed_soc_ast2700a0_class_init,
> >       },
> >   };
> >

Re: [PATCH v3 04/28] hw/arm/aspeed: Rename IRQ table and machine name for AST2700 A0
Posted by Cédric Le Goater 11 months, 3 weeks ago
On 2/21/25 03:23, Jamin Lin wrote:
> Hi Cedric,
> 
>> Cc: Troy Lee <troy_lee@aspeedtech.com>
>> Subject: Re: [PATCH v3 04/28] hw/arm/aspeed: Rename IRQ table and machine
>> name for AST2700 A0
>>
>> On 2/13/25 04:35, Jamin Lin wrote:
>>> Currently, AST2700 SoC only supports A0. To support AST2700 A1, rename
>>> its IRQ table and machine name.
>>>
>>> Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
>>> ---
>>>    hw/arm/aspeed.c         | 8 ++++----
>>>    hw/arm/aspeed_ast27x0.c | 8 ++++----
>>>    2 files changed, 8 insertions(+), 8 deletions(-)
>>>
>>> diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c index
>>> d9418e2b9f..6ddfdbdeba 100644
>>> --- a/hw/arm/aspeed.c
>>> +++ b/hw/arm/aspeed.c
>>> @@ -1654,12 +1654,12 @@ static void
>> ast2700_evb_i2c_init(AspeedMachineState *bmc)
>>>                                TYPE_TMP105, 0x4d);
>>>    }
>>>
>>> -static void aspeed_machine_ast2700_evb_class_init(ObjectClass *oc,
>>> void *data)
>>> +static void aspeed_machine_ast2700a0_evb_class_init(ObjectClass *oc,
>>> +void *data)
>>>    {
>>>        MachineClass *mc = MACHINE_CLASS(oc);
>>>        AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
>>>
>>> -    mc->desc = "Aspeed AST2700 EVB (Cortex-A35)";
>>> +    mc->desc = "Aspeed AST2700 A0 EVB (Cortex-A35)";
>>>        amc->soc_name  = "ast2700-a0";
>>>        amc->hw_strap1 = AST2700_EVB_HW_STRAP1;
>>>        amc->hw_strap2 = AST2700_EVB_HW_STRAP2; @@ -1795,9 +1795,9
>> @@
>>> static const TypeInfo aspeed_machine_types[] = {
>>>            .class_init     =
>> aspeed_minibmc_machine_ast1030_evb_class_init,
>>>    #ifdef TARGET_AARCH64
>>>        }, {
>>> -        .name          = MACHINE_TYPE_NAME("ast2700-evb"),
>>> +        .name          = MACHINE_TYPE_NAME("ast2700a0-evb"),
>>
>> machine "ast2700-evb" has now disappeared from QEMU. You need to add an
>> alias with "mc->alias" to restore the initial machine name, or follow the
> 
> 
> Will add
> 
>> deprecation process :
>>
>>     https://qemu.readthedocs.io/en/v9.2.0/about/deprecated.html
>>
> Thanks for letting me know about the machine deprecation rules.
> I understand why you suggest aliasing the initial machine "ast2700-evb" to "ast2700a0-evb."

yes. This to maintain compatibility for the user.

Also, this change is breaking the tests. Please run 'make check'
  
> To follow the machine deprecation rule, the initial machine "ast2700-evb" is aliased to "ast2700a0-evb."

You don't need the alias to deprecate a machine. You need the alias
to maintain compatibility when renaming a machine.

To deprecate, you should update docs/about/deprecated.rst.

> In the future, we will alias "ast2700-evb" to new SoCs, such as "ast2700a1-evb."

Yes we could do that.

Or we could keep the ast2700a0-evb and ast2700a1-evb machines,
change the alias to point to ast2700a1-evb first and later on
deprecate ast2700a0-evb.


Thanks,

C.



> Does this progress meet your expectations?
> 
> Thanks-Jamin
> 
>> Thanks,
>>
>> C.
>>
>>
>>
>>>            .parent        = TYPE_ASPEED_MACHINE,
>>> -        .class_init    = aspeed_machine_ast2700_evb_class_init,
>>> +        .class_init    = aspeed_machine_ast2700a0_evb_class_init,
>>>    #endif
>>>        }, {
>>>            .name          = TYPE_ASPEED_MACHINE,
>>> diff --git a/hw/arm/aspeed_ast27x0.c b/hw/arm/aspeed_ast27x0.c index
>>> 2d0c99f159..6e3375f5d3 100644
>>> --- a/hw/arm/aspeed_ast27x0.c
>>> +++ b/hw/arm/aspeed_ast27x0.c
>>> @@ -72,7 +72,7 @@ static const hwaddr aspeed_soc_ast2700_memmap[] =
>> {
>>>    #define AST2700_MAX_IRQ 256
>>>
>>>    /* Shared Peripheral Interrupt values below are offset by -32 from
>>> datasheet */ -static const int aspeed_soc_ast2700_irqmap[] = {
>>> +static const int aspeed_soc_ast2700a0_irqmap[] = {
>>>        [ASPEED_DEV_UART0]     = 132,
>>>        [ASPEED_DEV_UART1]     = 132,
>>>        [ASPEED_DEV_UART2]     = 132,
>>> @@ -740,7 +740,7 @@ static void aspeed_soc_ast2700_realize(DeviceState
>> *dev, Error **errp)
>>>        create_unimplemented_device("ast2700.io", 0x0, 0x4000000);
>>>    }
>>>
>>> -static void aspeed_soc_ast2700_class_init(ObjectClass *oc, void
>>> *data)
>>> +static void aspeed_soc_ast2700a0_class_init(ObjectClass *oc, void
>>> +*data)
>>>    {
>>>        static const char * const valid_cpu_types[] = {
>>>            ARM_CPU_TYPE_NAME("cortex-a35"), @@ -763,7 +763,7 @@
>> static
>>> void aspeed_soc_ast2700_class_init(ObjectClass *oc, void *data)
>>>        sc->uarts_num    = 13;
>>>        sc->num_cpus     = 4;
>>>        sc->uarts_base   = ASPEED_DEV_UART0;
>>> -    sc->irqmap       = aspeed_soc_ast2700_irqmap;
>>> +    sc->irqmap       = aspeed_soc_ast2700a0_irqmap;
>>>        sc->memmap       = aspeed_soc_ast2700_memmap;
>>>        sc->get_irq      = aspeed_soc_ast2700_get_irq;
>>>    }
>>> @@ -778,7 +778,7 @@ static const TypeInfo aspeed_soc_ast27x0_types[] = {
>>>            .name           = "ast2700-a0",
>>>            .parent         = TYPE_ASPEED27X0_SOC,
>>>            .instance_init  = aspeed_soc_ast2700_init,
>>> -        .class_init     = aspeed_soc_ast2700_class_init,
>>> +        .class_init     = aspeed_soc_ast2700a0_class_init,
>>>        },
>>>    };
>>>
>