[PATCH v1 09/12] hw/arm/aspeed_ast10x0_evb: Add AST1060 EVB machine support

Jamin Lin via posted 12 patches 1 week, 1 day ago
Maintainers: "Cédric Le Goater" <clg@kaod.org>, Peter Maydell <peter.maydell@linaro.org>, Steven Lee <steven_lee@aspeedtech.com>, Troy Lee <leetroy@gmail.com>, Jamin Lin <jamin_lin@aspeedtech.com>, Andrew Jeffery <andrew@codeconstruct.com.au>, Joel Stanley <joel@jms.id.au>, Alistair Francis <alistair@alistair23.me>, Kevin Wolf <kwolf@redhat.com>, Hanna Reitz <hreitz@redhat.com>
There is a newer version of this series
[PATCH v1 09/12] hw/arm/aspeed_ast10x0_evb: Add AST1060 EVB machine support
Posted by Jamin Lin via 1 week, 1 day ago
Add a new machine definition ast1060-evb to support the Aspeed AST1060
evaluation board. The new EVB reuses the same MiniBMC framework used by
AST1030, as both SoCs share the same core peripherals and controller
designs.

The AST1060 EVB machine initializes the ast1060-a2 SoC and sets the
FMC and SPI flash models (w25q80bl and w25q02jvm) for simulation.
This enables QEMU to boot and emulate firmware images for AST1060-based
platforms.

Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
---
 hw/arm/aspeed_ast10x0_evb.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/hw/arm/aspeed_ast10x0_evb.c b/hw/arm/aspeed_ast10x0_evb.c
index 7af2a77865..a01385b543 100644
--- a/hw/arm/aspeed_ast10x0_evb.c
+++ b/hw/arm/aspeed_ast10x0_evb.c
@@ -96,12 +96,35 @@ static void aspeed_minibmc_machine_ast1030_evb_class_init(ObjectClass *oc,
     aspeed_machine_class_init_cpus_defaults(mc);
 }
 
+static void aspeed_minibmc_machine_ast1060_evb_class_init(ObjectClass *oc,
+                                                          const void *data)
+{
+    MachineClass *mc = MACHINE_CLASS(oc);
+    AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
+
+    mc->desc = "Aspeed AST1060 PFR (Cortex-M4)";
+    amc->soc_name = "ast1060-a2";
+    amc->hw_strap1 = 0;
+    amc->hw_strap2 = 0;
+    mc->init = aspeed_minibmc_machine_init;
+    amc->fmc_model = "w25q80bl";
+    amc->spi_model = "w25q02jvm";
+    amc->num_cs = 2;
+    amc->macs_mask = 0;
+    aspeed_machine_class_init_cpus_defaults(mc);
+}
+
 static const TypeInfo aspeed_ast10x0_evb_types[] = {
     {
         .name           = MACHINE_TYPE_NAME("ast1030-evb"),
         .parent         = TYPE_ASPEED_MACHINE,
         .class_init     = aspeed_minibmc_machine_ast1030_evb_class_init,
         .interfaces     = arm_machine_interfaces,
+    }, {
+        .name           = MACHINE_TYPE_NAME("ast1060-evb"),
+        .parent         = TYPE_ASPEED_MACHINE,
+        .class_init     = aspeed_minibmc_machine_ast1060_evb_class_init,
+        .interfaces     = arm_machine_interfaces,
     }
 };
 
-- 
2.43.0
Re: [PATCH v1 09/12] hw/arm/aspeed_ast10x0_evb: Add AST1060 EVB machine support
Posted by Cédric Le Goater 2 days, 21 hours ago
On 11/6/25 09:49, Jamin Lin wrote:
> Add a new machine definition ast1060-evb to support the Aspeed AST1060
> evaluation board. The new EVB reuses the same MiniBMC framework used by
> AST1030, as both SoCs share the same core peripherals and controller
> designs.
> 
> The AST1060 EVB machine initializes the ast1060-a2 SoC and sets the
> FMC and SPI flash models (w25q80bl and w25q02jvm) for simulation.
> This enables QEMU to boot and emulate firmware images for AST1060-based
> platforms.
> 
> Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
> ---
>   hw/arm/aspeed_ast10x0_evb.c | 23 +++++++++++++++++++++++
>   1 file changed, 23 insertions(+)
> 
> diff --git a/hw/arm/aspeed_ast10x0_evb.c b/hw/arm/aspeed_ast10x0_evb.c
> index 7af2a77865..a01385b543 100644
> --- a/hw/arm/aspeed_ast10x0_evb.c
> +++ b/hw/arm/aspeed_ast10x0_evb.c
> @@ -96,12 +96,35 @@ static void aspeed_minibmc_machine_ast1030_evb_class_init(ObjectClass *oc,
>       aspeed_machine_class_init_cpus_defaults(mc);
>   }
>   
> +static void aspeed_minibmc_machine_ast1060_evb_class_init(ObjectClass *oc,
> +                                                          const void *data)
> +{
> +    MachineClass *mc = MACHINE_CLASS(oc);
> +    AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
> +
> +    mc->desc = "Aspeed AST1060 PFR (Cortex-M4)";

What does "PFR" mean ?

> +    amc->soc_name = "ast1060-a2";
> +    amc->hw_strap1 = 0;
> +    amc->hw_strap2 = 0;
> +    mc->init = aspeed_minibmc_machine_init;
> +    amc->fmc_model = "w25q80bl";
> +    amc->spi_model = "w25q02jvm";
> +    amc->num_cs = 2;
> +    amc->macs_mask = 0;
> +    aspeed_machine_class_init_cpus_defaults(mc);
> +}
> +
>   static const TypeInfo aspeed_ast10x0_evb_types[] = {
>       {
>           .name           = MACHINE_TYPE_NAME("ast1030-evb"),
>           .parent         = TYPE_ASPEED_MACHINE,
>           .class_init     = aspeed_minibmc_machine_ast1030_evb_class_init,
>           .interfaces     = arm_machine_interfaces,
> +    }, {
> +        .name           = MACHINE_TYPE_NAME("ast1060-evb"),
> +        .parent         = TYPE_ASPEED_MACHINE,
> +        .class_init     = aspeed_minibmc_machine_ast1060_evb_class_init,
> +        .interfaces     = arm_machine_interfaces,
>       }
>   };
>   

Reviewed-by: Cédric Le Goater <clg@redhat.com>

Thanks,

C.



RE: [PATCH v1 09/12] hw/arm/aspeed_ast10x0_evb: Add AST1060 EVB machine support
Posted by Jamin Lin 2 days, 13 hours ago
Hi Cédric,

> Subject: Re: [PATCH v1 09/12] hw/arm/aspeed_ast10x0_evb: Add AST1060 EVB
> machine support
> 
> On 11/6/25 09:49, Jamin Lin wrote:
> > Add a new machine definition ast1060-evb to support the Aspeed AST1060
> > evaluation board. The new EVB reuses the same MiniBMC framework used
> > by AST1030, as both SoCs share the same core peripherals and
> > controller designs.
> >
> > The AST1060 EVB machine initializes the ast1060-a2 SoC and sets the
> > FMC and SPI flash models (w25q80bl and w25q02jvm) for simulation.
> > This enables QEMU to boot and emulate firmware images for
> > AST1060-based platforms.
> >
> > Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
> > ---
> >   hw/arm/aspeed_ast10x0_evb.c | 23 +++++++++++++++++++++++
> >   1 file changed, 23 insertions(+)
> >
> > diff --git a/hw/arm/aspeed_ast10x0_evb.c b/hw/arm/aspeed_ast10x0_evb.c
> > index 7af2a77865..a01385b543 100644
> > --- a/hw/arm/aspeed_ast10x0_evb.c
> > +++ b/hw/arm/aspeed_ast10x0_evb.c
> > @@ -96,12 +96,35 @@ static void
> aspeed_minibmc_machine_ast1030_evb_class_init(ObjectClass *oc,
> >       aspeed_machine_class_init_cpus_defaults(mc);
> >   }
> >
> > +static void aspeed_minibmc_machine_ast1060_evb_class_init(ObjectClass
> *oc,
> > +
> const void
> > +*data) {
> > +    MachineClass *mc = MACHINE_CLASS(oc);
> > +    AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
> > +
> > +    mc->desc = "Aspeed AST1060 PFR (Cortex-M4)";
> 
> What does "PFR" mean ?
> 
Thanks for your review and suggestion.

I will update it to " Platform Root of Trust"
Thanks-Jamin

> > +    amc->soc_name = "ast1060-a2";
> > +    amc->hw_strap1 = 0;
> > +    amc->hw_strap2 = 0;
> > +    mc->init = aspeed_minibmc_machine_init;
> > +    amc->fmc_model = "w25q80bl";
> > +    amc->spi_model = "w25q02jvm";
> > +    amc->num_cs = 2;
> > +    amc->macs_mask = 0;
> > +    aspeed_machine_class_init_cpus_defaults(mc);
> > +}
> > +
> >   static const TypeInfo aspeed_ast10x0_evb_types[] = {
> >       {
> >           .name           = MACHINE_TYPE_NAME("ast1030-evb"),
> >           .parent         = TYPE_ASPEED_MACHINE,
> >           .class_init     =
> aspeed_minibmc_machine_ast1030_evb_class_init,
> >           .interfaces     = arm_machine_interfaces,
> > +    }, {
> > +        .name           = MACHINE_TYPE_NAME("ast1060-evb"),
> > +        .parent         = TYPE_ASPEED_MACHINE,
> > +        .class_init     =
> aspeed_minibmc_machine_ast1060_evb_class_init,
> > +        .interfaces     = arm_machine_interfaces,
> >       }
> >   };
> >
> 
> Reviewed-by: Cédric Le Goater <clg@redhat.com>
> 
> Thanks,
> 
> C.
>