Re: [PATCH v2 3/4] hw/arm/aspeed_ast2600: Wire up the ACRY model

Cédric Le Goater <[email protected]>
Newsgroups org.nongnu.qemu-arm,org.nongnu.qemu-devel
Message-ID <[email protected]>
On 8/20/26 10:12, Jamin Lin wrote:
> Introduce the ASPEED_DEV_ACRY enum slot and add the ACRY model state
> to AspeedSoCState.
> 
> Instantiate the new ACRY model on the AST2600 SoC using its
> real-silicon register address and IRQ:
> 
> - ACRY register region 0x1e6fa000-0x1e6fafff
> - IRQ 160
> 
> Signed-off-by: Jamin Lin <[email protected]>
> ---
>   include/hw/arm/aspeed_soc.h |  3 +++
>   hw/arm/aspeed_ast2600.c     | 17 +++++++++++++++++
>   2 files changed, 20 insertions(+)
> 
> diff --git a/include/hw/arm/aspeed_soc.h b/include/hw/arm/aspeed_soc.h
> index 46e7854727..8d80f16705 100644
> --- a/include/hw/arm/aspeed_soc.h
> +++ b/include/hw/arm/aspeed_soc.h
> @@ -25,6 +25,7 @@
>   #include "hw/i2c/aspeed_i2c.h"
>   #include "hw/i3c/aspeed_i3c.h"
>   #include "hw/ssi/aspeed_smc.h"
> +#include "hw/misc/aspeed_acry.h"
>   #include "hw/misc/aspeed_hace.h"
>   #include "hw/misc/aspeed_sbc.h"
>   #include "hw/misc/aspeed_sli.h"
> @@ -82,6 +83,7 @@ struct AspeedSoCState {
>       AspeedSCUState scu;
>       AspeedSCUState scuio;
>       AspeedHACEState hace;
> +    AspeedACRYState acry;
>       AspeedXDMAState xdma;
>       AspeedADCState adc;
>       AspeedSMCState fmc;
> @@ -271,6 +273,7 @@ enum {
>       ASPEED_DEV_EMMC,
>       ASPEED_DEV_KCS,
>       ASPEED_DEV_HACE,
> +    ASPEED_DEV_ACRY,
>       ASPEED_DEV_DPMCU,
>       ASPEED_DEV_DP,
>       ASPEED_DEV_I3C,
> diff --git a/hw/arm/aspeed_ast2600.c b/hw/arm/aspeed_ast2600.c
> index f23a51c8a4..f7c7ec7fb1 100644
> --- a/hw/arm/aspeed_ast2600.c
> +++ b/hw/arm/aspeed_ast2600.c
> @@ -52,6 +52,7 @@ static const hwaddr aspeed_soc_ast2600_memmap[] = {
>       [ASPEED_DEV_DP]        = 0x1E6EB000,
>       [ASPEED_DEV_PCIE_PHY1] = 0x1E6ED200,
>       [ASPEED_DEV_SBC]       = 0x1E6F2000,
> +    [ASPEED_DEV_ACRY]      = 0x1E6FA000,
>       [ASPEED_DEV_EMMC_BC]   = 0x1E6f5000,
>       [ASPEED_DEV_VIDEO]     = 0x1E700000,
>       [ASPEED_DEV_SDHCI]     = 0x1E740000,
> @@ -144,6 +145,7 @@ static const int aspeed_soc_ast2600_irqmap[] = {
>       [ASPEED_DEV_FSI1]      = 100,
>       [ASPEED_DEV_FSI2]      = 101,
>       [ASPEED_DEV_I3C]       = 102,   /* 102 -> 107 */
> +    [ASPEED_DEV_ACRY]      = 160,
>   };
>   
>   static qemu_irq aspeed_soc_ast2600_get_irq(AspeedSoCState *s, int dev)
> @@ -269,6 +271,8 @@ static void aspeed_soc_ast2600_init(Object *obj)
>       snprintf(typename, sizeof(typename), "aspeed.hace-%s", socname);
>       object_initialize_child(obj, "hace", &s->hace, typename);
>   
> +    object_initialize_child(obj, "acry", &s->acry, TYPE_ASPEED_ACRY);
> +
>       object_initialize_child(obj, "i3c", &s->i3c, TYPE_ASPEED_I3C);
>   
>       object_initialize_child(obj, "sbc", &s->sbc, TYPE_ASPEED_AST2600_SBC);
> @@ -726,6 +730,19 @@ static void aspeed_soc_ast2600_realize(DeviceState *dev, Error **errp)
>       sysbus_connect_irq(SYS_BUS_DEVICE(&s->hace), 0,
>                          aspeed_soc_ast2600_get_irq(s, ASPEED_DEV_HACE));
>   
> +    /* ACRY */
> +    object_property_set_link(OBJECT(&s->acry), "dram", OBJECT(s->dram_mr),
> +                             &error_abort);
> +    object_property_set_link(OBJECT(&s->acry), "sram", OBJECT(&s->sram[1]),
> +                             &error_abort);
> +    if (!sysbus_realize(SYS_BUS_DEVICE(&s->acry), errp)) {
> +        return;
> +    }
> +    aspeed_mmio_map(s->memory, SYS_BUS_DEVICE(&s->acry), 0,
> +                    sc->memmap[ASPEED_DEV_ACRY]);
> +    sysbus_connect_irq(SYS_BUS_DEVICE(&s->acry), 0,
> +                       aspeed_soc_ast2600_get_irq(s, ASPEED_DEV_ACRY));
> +
>       /* I3C */
>       if (!sysbus_realize(SYS_BUS_DEVICE(&s->i3c), errp)) {
>           return;

Reviewed-by: Cédric Le Goater <[email protected]>

Thanks,

C.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.