Hi Cedric,

> Subject: Re: [PATCH v1 03/15] hw/i2c/aspeed: support to set the different
> memory size
>
> On 7/18/24 11:42, Jamin Lin wrote:
> > Hi Cedric,
> >
> >> Subject: Re: [PATCH v1 03/15] hw/i2c/aspeed: support to set the
> >> different memory size
> >>
> >> On 7/18/24 08:49, Jamin Lin wrote:
> >>> According to the datasheet of ASPEED SOCs, an I2C controller owns
> >>> 8KB of register space for AST2700, owns 4KB of register space for
> >>> AST2600,
> >>> AST2500 and AST2400, and owns 64KB of register space for AST1030.
> >>>
> >>> It set the memory region size 4KB by default and it does not
> >>> compatible register space for AST2700.
> >>>
> >>> Introduce a new class attribute to set the I2C controller memory
> >>> size for different ASPEED SOCs.
> >>>
> >>> Signed-off-by: Jamin Lin <jamin_...@aspeedtech.com>
> >>> ---
> >>>    hw/i2c/aspeed_i2c.c         | 6 +++++-
> >>>    include/hw/i2c/aspeed_i2c.h | 2 +-
> >>>    2 files changed, 6 insertions(+), 2 deletions(-)
> >>>
> >>> diff --git a/hw/i2c/aspeed_i2c.c b/hw/i2c/aspeed_i2c.c index
> >>> b43afd250d..7d5a53c4c0 100644
> >>> --- a/hw/i2c/aspeed_i2c.c
> >>> +++ b/hw/i2c/aspeed_i2c.c
> >>> @@ -1014,7 +1014,7 @@ static void aspeed_i2c_realize(DeviceState
> >>> *dev, Error **errp)
> >>>
> >>>        sysbus_init_irq(sbd, &s->irq);
> >>>        memory_region_init_io(&s->iomem, OBJECT(s),
> >> &aspeed_i2c_ctrl_ops, s,
> >>> -                          "aspeed.i2c", 0x1000);
> >>> +                          "aspeed.i2c", aic->mem_size);
> >>>        sysbus_init_mmio(sbd, &s->iomem);
> >>>
> >>>        for (i = 0; i < aic->num_busses; i++) { @@ -1286,6 +1286,7 @@
> >>> static void aspeed_2400_i2c_class_init(ObjectClass *klass, void *data)
> >>>        aic->pool_size = 0x800;
> >>>        aic->pool_base = 0x800;
> >>>        aic->bus_pool_base = aspeed_2400_i2c_bus_pool_base;
> >>> +    aic->mem_size = 0x1000;
> >>>    }
> >>>
> >>>    static const TypeInfo aspeed_2400_i2c_info = { @@ -1320,6 +1321,7
> >>> @@ static void aspeed_2500_i2c_class_init(ObjectClass *klass, void
> *data)
> >>>        aic->bus_pool_base = aspeed_2500_i2c_bus_pool_base;
> >>>        aic->check_sram = true;
> >>>        aic->has_dma = true;
> >>> +    aic->mem_size = 0x1000;
> >>>    }
> >>>
> >>>    static const TypeInfo aspeed_2500_i2c_info = { @@ -1353,6 +1355,7
> >>> @@ static void aspeed_2600_i2c_class_init(ObjectClass *klass, void
> *data)
> >>>        aic->pool_base = 0xC00;
> >>>        aic->bus_pool_base = aspeed_2600_i2c_bus_pool_base;
> >>>        aic->has_dma = true;
> >>> +    aic->mem_size = 0x1000;
> >>>    }
> >>>
> >>>    static const TypeInfo aspeed_2600_i2c_info = { @@ -1376,6 +1379,7
> >>> @@ static void aspeed_1030_i2c_class_init(ObjectClass *klass, void
> *data)
> >>>        aic->pool_base = 0xC00;
> >>>        aic->bus_pool_base = aspeed_2600_i2c_bus_pool_base;
> >>>        aic->has_dma = true;
> >>> +    aic->mem_size = 0x10000;
> >>
> > Thanks for review.
> >
> > According to the datasheet of AST1030 in chapter 7 (Memory Space
> > Allocation Table) , the register address space of I2C Controller range
> > is start from 7E7B0000 to 7E7BFFFF and its register address space is
> 64KB(0x10000).
>
> OK.
>
> > The firmware only use 4KB address space. We can change mem_size either
> 4KB or 64KB.
> > Could you tell me which size you prefer?
>
> I would keep the larger value for the model and let FW decide to resize or 
> not.
>
Thanks for suggestion.
Got it.

> Thanks,
>
> C.
>
>
>
>
>

************* Email Confidentiality Notice ********************
免責聲明:
本信件(或其附件)可能包含機密資訊,並受法律保護。如 台端非指定之收件者,請以電子郵件通知本電子郵件之發送者, 
並請立即刪除本電子郵件及其附件和銷毀所有複印件。謝謝您的合作!

DISCLAIMER:
This message (and any attachments) may contain legally privileged and/or other 
confidential information. If you have received it in error, please notify the 
sender by reply e-mail and immediately delete the e-mail and any attachments 
without copying or disclosing the contents. Thank you.

Reply via email to