Hi Cédric

> Subject: Re: [PATCH v3 17/18] hw/arm/aspeed: Attach SGPIOM device to
> AST1700 model
> 
> On 12/8/25 19:21, Nabih Estefan wrote:
> > On Sun, Dec 7, 2025 at 11:48 PM Kane Chen via <[email protected]>
> wrote:
> >>
> >> From: Kane-Chen-AS <[email protected]>
> >>
> >> Connect the SGPIOM device to AST1700 model.
> >>
> >> Signed-off-by: Kane-Chen-AS <[email protected]>
> >> ---
> >>   include/hw/arm/aspeed_ast1700.h |  3 +++
> >>   hw/arm/aspeed_ast1700.c         | 20 ++++++++++++++++++++
> >>   2 files changed, 23 insertions(+)
> >>
> >> diff --git a/include/hw/arm/aspeed_ast1700.h
> >> b/include/hw/arm/aspeed_ast1700.h index 7292719dc2..490f2a3b05
> 100644
> >> --- a/include/hw/arm/aspeed_ast1700.h
> >> +++ b/include/hw/arm/aspeed_ast1700.h
> >> @@ -12,6 +12,7 @@
> >>   #include "hw/misc/aspeed_scu.h"
> >>   #include "hw/adc/aspeed_adc.h"
> >>   #include "hw/gpio/aspeed_gpio.h"
> >> +#include "hw/gpio/aspeed_sgpio.h"
> >
> > As far as I can tell this depends on Yubin Zou's SGPIO series (link below)?
> > Does that mean the series looks good? Can you reply to the series
> > itself if it is?
> >
> >
> > https://lore.kernel.org//qemu-devel/20251106-aspeed-sgpio-v1-0-b026093
> > [email protected]
> 
> 
> Nabih, Kane, Jamin,
> 
> Could you please help review Yubin's series ?
> 

Cédric, Nabih

Sorry, I’m currently stuck with AST2700 A2 SDK development.
I’ve asked Kane to help test the Yubin's SGPIO model.
Once I have time, I will try to test Joe’s I3C model.

Jamin

> Thanks,
> 
> C.
> 
> 
> >>   #include "hw/i2c/aspeed_i2c.h"
> >>   #include "hw/misc/aspeed_ltpi.h"
> >>   #include "hw/misc/aspeed_pwm.h"
> >> @@ -19,6 +20,7 @@
> >>   #include "hw/watchdog/wdt_aspeed.h"
> >>   #include "hw/char/serial-mm.h"
> >>
> >> +#define AST1700_SGPIO_NUM            2
> >>   #define AST1700_WDT_NUM              9
> >>
> >>   #define TYPE_ASPEED_AST1700 "aspeed.ast1700"
> >> @@ -39,6 +41,7 @@ struct AspeedAST1700SoCState {
> >>       AspeedADCState adc;
> >>       AspeedSCUState scu;
> >>       AspeedGPIOState gpio;
> >> +    AspeedSGPIOState sgpiom[AST1700_SGPIO_NUM];
> >>       AspeedI2CState i2c;
> >>       AspeedPWMState pwm;
> >>       AspeedWDTState wdt[AST1700_WDT_NUM]; diff --git
> >> a/hw/arm/aspeed_ast1700.c b/hw/arm/aspeed_ast1700.c index
> >> c9d7a97a80..e027ae02ad 100644
> >> --- a/hw/arm/aspeed_ast1700.c
> >> +++ b/hw/arm/aspeed_ast1700.c
> >> @@ -23,6 +23,8 @@ enum {
> >>       ASPEED_AST1700_DEV_ADC,
> >>       ASPEED_AST1700_DEV_SCU,
> >>       ASPEED_AST1700_DEV_GPIO,
> >> +    ASPEED_AST1700_DEV_SGPIOM0,
> >> +    ASPEED_AST1700_DEV_SGPIOM1,
> >>       ASPEED_AST1700_DEV_I2C,
> >>       ASPEED_AST1700_DEV_UART12,
> >>       ASPEED_AST1700_DEV_LTPI_CTRL,
> >> @@ -37,6 +39,8 @@ static const hwaddr aspeed_ast1700_io_memmap[] =
> {
> >>       [ASPEED_AST1700_DEV_ADC]       =  0x00C00000,
> >>       [ASPEED_AST1700_DEV_SCU]       =  0x00C02000,
> >>       [ASPEED_AST1700_DEV_GPIO]      =  0x00C0B000,
> >> +    [ASPEED_AST1700_DEV_SGPIOM0]   =  0x00C0C000,
> >> +    [ASPEED_AST1700_DEV_SGPIOM1]   =  0x00C0D000,
> >>       [ASPEED_AST1700_DEV_I2C]       =  0x00C0F000,
> >>       [ASPEED_AST1700_DEV_UART12]    =  0x00C33B00,
> >>       [ASPEED_AST1700_DEV_LTPI_CTRL] =  0x00C34000, @@ -142,6
> +146,16
> >> @@ static void aspeed_ast1700_realize(DeviceState *dev, Error **errp)
> >>
> aspeed_ast1700_io_memmap[ASPEED_AST1700_DEV_LTPI_CTRL],
> >>
> >> sysbus_mmio_get_region(SYS_BUS_DEVICE(&s->ltpi), 0));
> >>
> >> +    /* SGPIOM */
> >> +    for (int i = 0; i < AST1700_SGPIO_NUM; i++) {
> >> +        if (!sysbus_realize(SYS_BUS_DEVICE(&s->sgpiom[i]), errp)) {
> >> +            return;
> >> +        }
> >> +        memory_region_add_subregion(&s->iomem,
> >> +
> aspeed_ast1700_io_memmap[ASPEED_AST1700_DEV_SGPIOM0 + i],
> >> +
> sysbus_mmio_get_region(SYS_BUS_DEVICE(&s->sgpiom[i]), 0));
> >> +    }
> >> +
> >>       /* WDT */
> >>       for (int i = 0; i < AST1700_WDT_NUM; i++) {
> >>           AspeedWDTClass *awc =
> ASPEED_WDT_GET_CLASS(&s->wdt[i]); @@
> >> -194,6 +208,12 @@ static void aspeed_ast1700_instance_init(Object *obj)
> >>       object_initialize_child(obj, "ltpi-ctrl",
> >>                               &s->ltpi, TYPE_ASPEED_LTPI);
> >>
> >> +    /* SGPIOM */
> >> +    for (int i = 0; i < AST1700_SGPIO_NUM; i++) {
> >> +        object_initialize_child(obj, "ioexp-sgpiom[*]", &s->sgpiom[i],
> >> +                                "aspeed.sgpio-ast2700");
> >> +    }
> >> +
> >>       /* WDT */
> >>       for (int i = 0; i < AST1700_WDT_NUM; i++) {
> >>           object_initialize_child(obj, "ioexp-wdt[*]",
> >> --
> >> 2.43.0
> >>
> >>

Reply via email to