qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH qemu 1/2] hw/at24c : modify at24c to support 1 byte address mode
  2023-02-14  9:54 [PATCH qemu 0/2] hw/at24c support eeprom size less than equal 256 byte ~ssinprem
@ 2023-02-10  6:20 ` ~ssinprem
  2023-02-14 14:29   ` Cédric Le Goater
  2023-02-16  8:25   ` Philippe Mathieu-Daudé
  2023-02-14  9:06 ` [PATCH qemu 2/2] aspeed/fuji : correct the eeprom size ~ssinprem
  1 sibling, 2 replies; 13+ messages in thread
From: ~ssinprem @ 2023-02-10  6:20 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-stable, srikanth, kgengan

From: Sittisak Sinprem <ssinprem@celestca.com>

---
 hw/nvram/eeprom_at24c.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/hw/nvram/eeprom_at24c.c b/hw/nvram/eeprom_at24c.c
index 2d4d8b952f..693212b661 100644
--- a/hw/nvram/eeprom_at24c.c
+++ b/hw/nvram/eeprom_at24c.c
@@ -87,7 +87,7 @@ uint8_t at24c_eeprom_recv(I2CSlave *s)
     EEPROMState *ee = AT24C_EE(s);
     uint8_t ret;
 
-    if (ee->haveaddr == 1) {
+    if (ee->rsize > 256 && ee->haveaddr == 1) {
         return 0xff;
     }
 
@@ -104,11 +104,13 @@ int at24c_eeprom_send(I2CSlave *s, uint8_t data)
 {
     EEPROMState *ee = AT24C_EE(s);
 
-    if (ee->haveaddr < 2) {
+    if ((ee->rsize > 256 && ee->haveaddr < 2) ||
+        (ee->rsize <= 256 && ee->haveaddr < 1)) {
         ee->cur <<= 8;
         ee->cur |= data;
         ee->haveaddr++;
-        if (ee->haveaddr == 2) {
+        if ((ee->rsize > 256 && ee->haveaddr == 2) ||
+            (ee->rsize <= 256 && ee->haveaddr == 1)) {
             ee->cur %= ee->rsize;
             DPRINTK("Set pointer %04x\n", ee->cur);
         }
-- 
2.34.6



^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH qemu 2/2] aspeed/fuji : correct the eeprom size
  2023-02-14  9:54 [PATCH qemu 0/2] hw/at24c support eeprom size less than equal 256 byte ~ssinprem
  2023-02-10  6:20 ` [PATCH qemu 1/2] hw/at24c : modify at24c to support 1 byte address mode ~ssinprem
@ 2023-02-14  9:06 ` ~ssinprem
  2023-02-14 14:28   ` Cédric Le Goater
  1 sibling, 1 reply; 13+ messages in thread
From: ~ssinprem @ 2023-02-14  9:06 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-stable, srikanth, kgengan

From: Sittisak Sinprem <ssinprem@celestca.com>

Device 24C64 the size is 64 kilobits
Device 24C02 the size is 2 kilobits
---
 hw/arm/aspeed.c | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c
index 55f114ef72..8e6a1579e4 100644
--- a/hw/arm/aspeed.c
+++ b/hw/arm/aspeed.c
@@ -846,42 +846,42 @@ static void fuji_bmc_i2c_init(AspeedMachineState *bmc)
     i2c_slave_create_simple(i2c[17], TYPE_LM75, 0x4c);
     i2c_slave_create_simple(i2c[17], TYPE_LM75, 0x4d);
 
-    aspeed_eeprom_init(i2c[19], 0x52, 64 * KiB);
-    aspeed_eeprom_init(i2c[20], 0x50, 2 * KiB);
-    aspeed_eeprom_init(i2c[22], 0x52, 2 * KiB);
+    aspeed_eeprom_init(i2c[19], 0x52, 64 * KiB / 8);
+    aspeed_eeprom_init(i2c[20], 0x50, 2 * KiB / 8);
+    aspeed_eeprom_init(i2c[22], 0x52, 2 * KiB / 8);
 
     i2c_slave_create_simple(i2c[3], TYPE_LM75, 0x48);
     i2c_slave_create_simple(i2c[3], TYPE_LM75, 0x49);
     i2c_slave_create_simple(i2c[3], TYPE_LM75, 0x4a);
     i2c_slave_create_simple(i2c[3], TYPE_TMP422, 0x4c);
 
-    aspeed_eeprom_init(i2c[8], 0x51, 64 * KiB);
+    aspeed_eeprom_init(i2c[8], 0x51, 64 * KiB / 8);
     i2c_slave_create_simple(i2c[8], TYPE_LM75, 0x4a);
 
     i2c_slave_create_simple(i2c[50], TYPE_LM75, 0x4c);
-    aspeed_eeprom_init(i2c[50], 0x52, 64 * KiB);
+    aspeed_eeprom_init(i2c[50], 0x52, 64 * KiB / 8);
     i2c_slave_create_simple(i2c[51], TYPE_TMP75, 0x48);
     i2c_slave_create_simple(i2c[52], TYPE_TMP75, 0x49);
 
     i2c_slave_create_simple(i2c[59], TYPE_TMP75, 0x48);
     i2c_slave_create_simple(i2c[60], TYPE_TMP75, 0x49);
 
-    aspeed_eeprom_init(i2c[65], 0x53, 64 * KiB);
+    aspeed_eeprom_init(i2c[65], 0x53, 64 * KiB / 8);
     i2c_slave_create_simple(i2c[66], TYPE_TMP75, 0x49);
     i2c_slave_create_simple(i2c[66], TYPE_TMP75, 0x48);
-    aspeed_eeprom_init(i2c[68], 0x52, 64 * KiB);
-    aspeed_eeprom_init(i2c[69], 0x52, 64 * KiB);
-    aspeed_eeprom_init(i2c[70], 0x52, 64 * KiB);
-    aspeed_eeprom_init(i2c[71], 0x52, 64 * KiB);
+    aspeed_eeprom_init(i2c[68], 0x52, 64 * KiB / 8);
+    aspeed_eeprom_init(i2c[69], 0x52, 64 * KiB / 8);
+    aspeed_eeprom_init(i2c[70], 0x52, 64 * KiB / 8);
+    aspeed_eeprom_init(i2c[71], 0x52, 64 * KiB / 8);
 
-    aspeed_eeprom_init(i2c[73], 0x53, 64 * KiB);
+    aspeed_eeprom_init(i2c[73], 0x53, 64 * KiB / 8);
     i2c_slave_create_simple(i2c[74], TYPE_TMP75, 0x49);
     i2c_slave_create_simple(i2c[74], TYPE_TMP75, 0x48);
-    aspeed_eeprom_init(i2c[76], 0x52, 64 * KiB);
-    aspeed_eeprom_init(i2c[77], 0x52, 64 * KiB);
-    aspeed_eeprom_init(i2c[78], 0x52, 64 * KiB);
-    aspeed_eeprom_init(i2c[79], 0x52, 64 * KiB);
-    aspeed_eeprom_init(i2c[28], 0x50, 2 * KiB);
+    aspeed_eeprom_init(i2c[76], 0x52, 64 * KiB / 8);
+    aspeed_eeprom_init(i2c[77], 0x52, 64 * KiB / 8);
+    aspeed_eeprom_init(i2c[78], 0x52, 64 * KiB / 8);
+    aspeed_eeprom_init(i2c[79], 0x52, 64 * KiB / 8);
+    aspeed_eeprom_init(i2c[28], 0x50, 2 * KiB / 8);
 
     for (int i = 0; i < 8; i++) {
         aspeed_eeprom_init(i2c[81 + i * 8], 0x56, 64 * KiB);
-- 
2.34.6


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH qemu 0/2] hw/at24c support eeprom size less than equal 256 byte
@ 2023-02-14  9:54 ~ssinprem
  2023-02-10  6:20 ` [PATCH qemu 1/2] hw/at24c : modify at24c to support 1 byte address mode ~ssinprem
  2023-02-14  9:06 ` [PATCH qemu 2/2] aspeed/fuji : correct the eeprom size ~ssinprem
  0 siblings, 2 replies; 13+ messages in thread
From: ~ssinprem @ 2023-02-14  9:54 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-stable, srikanth, kgengan

This series includes 2 patches
1. Improve at24c to support 1-byte address EEPROM such as 24c01 and
24c02.
2. correct the EEPROM size for aspeed/fuji platform.
ref: https://gitlab.com/qemu-project/qemu/-/issues/1485

Sittisak Sinprem (2):
  hw/at24c : modify at24c to support 1 byte address mode
  aspeed/fuji : correct the eeprom size

 hw/arm/aspeed.c         | 32 ++++++++++++++++----------------
 hw/nvram/eeprom_at24c.c |  8 +++++---
 2 files changed, 21 insertions(+), 19 deletions(-)

-- 
2.34.6


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH qemu 2/2] aspeed/fuji : correct the eeprom size
  2023-02-14  9:06 ` [PATCH qemu 2/2] aspeed/fuji : correct the eeprom size ~ssinprem
@ 2023-02-14 14:28   ` Cédric Le Goater
  2023-02-15  3:17     ` Sittisak Sinprem
  2023-02-15 20:34     ` Peter Delevoryas
  0 siblings, 2 replies; 13+ messages in thread
From: Cédric Le Goater @ 2023-02-14 14:28 UTC (permalink / raw)
  To: ~ssinprem, qemu-devel; +Cc: qemu-stable, srikanth, kgengan, Peter Delevoryas

Hello,

Adding Peter since he contributed the fuji machine,

On 2/14/23 10:06, ~ssinprem wrote:
> From: Sittisak Sinprem <ssinprem@celestca.com>
> 
> Device 24C64 the size is 64 kilobits
> Device 24C02 the size is 2 kilobits

Could you please specify the size in bytes ?

You will need to add a Signed-off-by tag.

Thanks,

C.

> ---
>   hw/arm/aspeed.c | 32 ++++++++++++++++----------------
>   1 file changed, 16 insertions(+), 16 deletions(-)
> 
> diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c
> index 55f114ef72..8e6a1579e4 100644
> --- a/hw/arm/aspeed.c
> +++ b/hw/arm/aspeed.c
> @@ -846,42 +846,42 @@ static void fuji_bmc_i2c_init(AspeedMachineState *bmc)
>       i2c_slave_create_simple(i2c[17], TYPE_LM75, 0x4c);
>       i2c_slave_create_simple(i2c[17], TYPE_LM75, 0x4d);
>   
> -    aspeed_eeprom_init(i2c[19], 0x52, 64 * KiB);
> -    aspeed_eeprom_init(i2c[20], 0x50, 2 * KiB);
> -    aspeed_eeprom_init(i2c[22], 0x52, 2 * KiB);
> +    aspeed_eeprom_init(i2c[19], 0x52, 64 * KiB / 8);
> +    aspeed_eeprom_init(i2c[20], 0x50, 2 * KiB / 8);
> +    aspeed_eeprom_init(i2c[22], 0x52, 2 * KiB / 8);
>   
>       i2c_slave_create_simple(i2c[3], TYPE_LM75, 0x48);
>       i2c_slave_create_simple(i2c[3], TYPE_LM75, 0x49);
>       i2c_slave_create_simple(i2c[3], TYPE_LM75, 0x4a);
>       i2c_slave_create_simple(i2c[3], TYPE_TMP422, 0x4c);
>   
> -    aspeed_eeprom_init(i2c[8], 0x51, 64 * KiB);
> +    aspeed_eeprom_init(i2c[8], 0x51, 64 * KiB / 8);
>       i2c_slave_create_simple(i2c[8], TYPE_LM75, 0x4a);
>   
>       i2c_slave_create_simple(i2c[50], TYPE_LM75, 0x4c);
> -    aspeed_eeprom_init(i2c[50], 0x52, 64 * KiB);
> +    aspeed_eeprom_init(i2c[50], 0x52, 64 * KiB / 8);
>       i2c_slave_create_simple(i2c[51], TYPE_TMP75, 0x48);
>       i2c_slave_create_simple(i2c[52], TYPE_TMP75, 0x49);
>   
>       i2c_slave_create_simple(i2c[59], TYPE_TMP75, 0x48);
>       i2c_slave_create_simple(i2c[60], TYPE_TMP75, 0x49);
>   
> -    aspeed_eeprom_init(i2c[65], 0x53, 64 * KiB);
> +    aspeed_eeprom_init(i2c[65], 0x53, 64 * KiB / 8);
>       i2c_slave_create_simple(i2c[66], TYPE_TMP75, 0x49);
>       i2c_slave_create_simple(i2c[66], TYPE_TMP75, 0x48);
> -    aspeed_eeprom_init(i2c[68], 0x52, 64 * KiB);
> -    aspeed_eeprom_init(i2c[69], 0x52, 64 * KiB);
> -    aspeed_eeprom_init(i2c[70], 0x52, 64 * KiB);
> -    aspeed_eeprom_init(i2c[71], 0x52, 64 * KiB);
> +    aspeed_eeprom_init(i2c[68], 0x52, 64 * KiB / 8);
> +    aspeed_eeprom_init(i2c[69], 0x52, 64 * KiB / 8);
> +    aspeed_eeprom_init(i2c[70], 0x52, 64 * KiB / 8);
> +    aspeed_eeprom_init(i2c[71], 0x52, 64 * KiB / 8);
>   
> -    aspeed_eeprom_init(i2c[73], 0x53, 64 * KiB);
> +    aspeed_eeprom_init(i2c[73], 0x53, 64 * KiB / 8);
>       i2c_slave_create_simple(i2c[74], TYPE_TMP75, 0x49);
>       i2c_slave_create_simple(i2c[74], TYPE_TMP75, 0x48);
> -    aspeed_eeprom_init(i2c[76], 0x52, 64 * KiB);
> -    aspeed_eeprom_init(i2c[77], 0x52, 64 * KiB);
> -    aspeed_eeprom_init(i2c[78], 0x52, 64 * KiB);
> -    aspeed_eeprom_init(i2c[79], 0x52, 64 * KiB);
> -    aspeed_eeprom_init(i2c[28], 0x50, 2 * KiB);
> +    aspeed_eeprom_init(i2c[76], 0x52, 64 * KiB / 8);
> +    aspeed_eeprom_init(i2c[77], 0x52, 64 * KiB / 8);
> +    aspeed_eeprom_init(i2c[78], 0x52, 64 * KiB / 8);
> +    aspeed_eeprom_init(i2c[79], 0x52, 64 * KiB / 8);
> +    aspeed_eeprom_init(i2c[28], 0x50, 2 * KiB / 8);
>   
>       for (int i = 0; i < 8; i++) {
>           aspeed_eeprom_init(i2c[81 + i * 8], 0x56, 64 * KiB);



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH qemu 1/2] hw/at24c : modify at24c to support 1 byte address mode
  2023-02-10  6:20 ` [PATCH qemu 1/2] hw/at24c : modify at24c to support 1 byte address mode ~ssinprem
@ 2023-02-14 14:29   ` Cédric Le Goater
  2023-02-15 20:39     ` Peter Delevoryas
  2023-02-16  8:25   ` Philippe Mathieu-Daudé
  1 sibling, 1 reply; 13+ messages in thread
From: Cédric Le Goater @ 2023-02-14 14:29 UTC (permalink / raw)
  To: ~ssinprem, qemu-devel; +Cc: qemu-stable, srikanth, kgengan, Peter Delevoryas

On 2/10/23 07:20, ~ssinprem wrote:
> From: Sittisak Sinprem <ssinprem@celestca.com>



You will need to add a Signed-off-by tag

Thanks,

C.

> ---
>   hw/nvram/eeprom_at24c.c | 8 +++++---
>   1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/hw/nvram/eeprom_at24c.c b/hw/nvram/eeprom_at24c.c
> index 2d4d8b952f..693212b661 100644
> --- a/hw/nvram/eeprom_at24c.c
> +++ b/hw/nvram/eeprom_at24c.c
> @@ -87,7 +87,7 @@ uint8_t at24c_eeprom_recv(I2CSlave *s)
>       EEPROMState *ee = AT24C_EE(s);
>       uint8_t ret;
>   
> -    if (ee->haveaddr == 1) {
> +    if (ee->rsize > 256 && ee->haveaddr == 1) {
>           return 0xff;
>       }
>   
> @@ -104,11 +104,13 @@ int at24c_eeprom_send(I2CSlave *s, uint8_t data)
>   {
>       EEPROMState *ee = AT24C_EE(s);
>   
> -    if (ee->haveaddr < 2) {
> +    if ((ee->rsize > 256 && ee->haveaddr < 2) ||
> +        (ee->rsize <= 256 && ee->haveaddr < 1)) {
>           ee->cur <<= 8;
>           ee->cur |= data;
>           ee->haveaddr++;
> -        if (ee->haveaddr == 2) {
> +        if ((ee->rsize > 256 && ee->haveaddr == 2) ||
> +            (ee->rsize <= 256 && ee->haveaddr == 1)) {
>               ee->cur %= ee->rsize;
>               DPRINTK("Set pointer %04x\n", ee->cur);
>           }



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH qemu 2/2] aspeed/fuji : correct the eeprom size
  2023-02-14 14:28   ` Cédric Le Goater
@ 2023-02-15  3:17     ` Sittisak Sinprem
  2023-02-15 20:34     ` Peter Delevoryas
  1 sibling, 0 replies; 13+ messages in thread
From: Sittisak Sinprem @ 2023-02-15  3:17 UTC (permalink / raw)
  To: Cédric Le Goater
  Cc: qemu-devel, qemu-stable, srikanth, kgengan, Peter Delevoryas

[-- Attachment #1: Type: text/plain, Size: 4128 bytes --]

Hi,

Follow the question " Could you please specify the size in bytes ? "

Yes, In the source code we need to set the size value as byte.

I add "divide by 8" to convert it to bytes unit.
24c64  size is  64kbit  = 64k / 8  bytes

-    aspeed_eeprom_init(i2c[65], 0x53, 64 * KiB);
+    aspeed_eeprom_init(i2c[65], 0x53, 64 * KiB / 8);

On Tue, Feb 14, 2023 at 9:29 PM Cédric Le Goater <clg@kaod.org> wrote:

> Hello,
>
> Adding Peter since he contributed the fuji machine,
>
> On 2/14/23 10:06, ~ssinprem wrote:
> > From: Sittisak Sinprem <ssinprem@celestca.com>
> >
> > Device 24C64 the size is 64 kilobits
> > Device 24C02 the size is 2 kilobits
>
> Could you please specify the size in bytes ?
>
> You will need to add a Signed-off-by tag.
>
> Thanks,
>
> C.
>
> > ---
> >   hw/arm/aspeed.c | 32 ++++++++++++++++----------------
> >   1 file changed, 16 insertions(+), 16 deletions(-)
> >
> > diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c
> > index 55f114ef72..8e6a1579e4 100644
> > --- a/hw/arm/aspeed.c
> > +++ b/hw/arm/aspeed.c
> > @@ -846,42 +846,42 @@ static void fuji_bmc_i2c_init(AspeedMachineState
> *bmc)
> >       i2c_slave_create_simple(i2c[17], TYPE_LM75, 0x4c);
> >       i2c_slave_create_simple(i2c[17], TYPE_LM75, 0x4d);
> >
> > -    aspeed_eeprom_init(i2c[19], 0x52, 64 * KiB);
> > -    aspeed_eeprom_init(i2c[20], 0x50, 2 * KiB);
> > -    aspeed_eeprom_init(i2c[22], 0x52, 2 * KiB);
> > +    aspeed_eeprom_init(i2c[19], 0x52, 64 * KiB / 8);
> > +    aspeed_eeprom_init(i2c[20], 0x50, 2 * KiB / 8);
> > +    aspeed_eeprom_init(i2c[22], 0x52, 2 * KiB / 8);
> >
> >       i2c_slave_create_simple(i2c[3], TYPE_LM75, 0x48);
> >       i2c_slave_create_simple(i2c[3], TYPE_LM75, 0x49);
> >       i2c_slave_create_simple(i2c[3], TYPE_LM75, 0x4a);
> >       i2c_slave_create_simple(i2c[3], TYPE_TMP422, 0x4c);
> >
> > -    aspeed_eeprom_init(i2c[8], 0x51, 64 * KiB);
> > +    aspeed_eeprom_init(i2c[8], 0x51, 64 * KiB / 8);
> >       i2c_slave_create_simple(i2c[8], TYPE_LM75, 0x4a);
> >
> >       i2c_slave_create_simple(i2c[50], TYPE_LM75, 0x4c);
> > -    aspeed_eeprom_init(i2c[50], 0x52, 64 * KiB);
> > +    aspeed_eeprom_init(i2c[50], 0x52, 64 * KiB / 8);
> >       i2c_slave_create_simple(i2c[51], TYPE_TMP75, 0x48);
> >       i2c_slave_create_simple(i2c[52], TYPE_TMP75, 0x49);
> >
> >       i2c_slave_create_simple(i2c[59], TYPE_TMP75, 0x48);
> >       i2c_slave_create_simple(i2c[60], TYPE_TMP75, 0x49);
> >
> > -    aspeed_eeprom_init(i2c[65], 0x53, 64 * KiB);
> > +    aspeed_eeprom_init(i2c[65], 0x53, 64 * KiB / 8);
> >       i2c_slave_create_simple(i2c[66], TYPE_TMP75, 0x49);
> >       i2c_slave_create_simple(i2c[66], TYPE_TMP75, 0x48);
> > -    aspeed_eeprom_init(i2c[68], 0x52, 64 * KiB);
> > -    aspeed_eeprom_init(i2c[69], 0x52, 64 * KiB);
> > -    aspeed_eeprom_init(i2c[70], 0x52, 64 * KiB);
> > -    aspeed_eeprom_init(i2c[71], 0x52, 64 * KiB);
> > +    aspeed_eeprom_init(i2c[68], 0x52, 64 * KiB / 8);
> > +    aspeed_eeprom_init(i2c[69], 0x52, 64 * KiB / 8);
> > +    aspeed_eeprom_init(i2c[70], 0x52, 64 * KiB / 8);
> > +    aspeed_eeprom_init(i2c[71], 0x52, 64 * KiB / 8);
> >
> > -    aspeed_eeprom_init(i2c[73], 0x53, 64 * KiB);
> > +    aspeed_eeprom_init(i2c[73], 0x53, 64 * KiB / 8);
> >       i2c_slave_create_simple(i2c[74], TYPE_TMP75, 0x49);
> >       i2c_slave_create_simple(i2c[74], TYPE_TMP75, 0x48);
> > -    aspeed_eeprom_init(i2c[76], 0x52, 64 * KiB);
> > -    aspeed_eeprom_init(i2c[77], 0x52, 64 * KiB);
> > -    aspeed_eeprom_init(i2c[78], 0x52, 64 * KiB);
> > -    aspeed_eeprom_init(i2c[79], 0x52, 64 * KiB);
> > -    aspeed_eeprom_init(i2c[28], 0x50, 2 * KiB);
> > +    aspeed_eeprom_init(i2c[76], 0x52, 64 * KiB / 8);
> > +    aspeed_eeprom_init(i2c[77], 0x52, 64 * KiB / 8);
> > +    aspeed_eeprom_init(i2c[78], 0x52, 64 * KiB / 8);
> > +    aspeed_eeprom_init(i2c[79], 0x52, 64 * KiB / 8);
> > +    aspeed_eeprom_init(i2c[28], 0x50, 2 * KiB / 8);
> >
> >       for (int i = 0; i < 8; i++) {
> >           aspeed_eeprom_init(i2c[81 + i * 8], 0x56, 64 * KiB);
>
>

[-- Attachment #2: Type: text/html, Size: 5504 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH qemu 2/2] aspeed/fuji : correct the eeprom size
  2023-02-14 14:28   ` Cédric Le Goater
  2023-02-15  3:17     ` Sittisak Sinprem
@ 2023-02-15 20:34     ` Peter Delevoryas
  2023-02-16 14:23       ` Sittisak Sinprem
  1 sibling, 1 reply; 13+ messages in thread
From: Peter Delevoryas @ 2023-02-15 20:34 UTC (permalink / raw)
  To: Cédric Le Goater
  Cc: ~ssinprem, qemu-devel, qemu-stable, srikanth, kgengan

On Tue, Feb 14, 2023 at 03:28:58PM +0100, Cédric Le Goater wrote:
> Hello,
> 
> Adding Peter since he contributed the fuji machine,
> 
> On 2/14/23 10:06, ~ssinprem wrote:
> > From: Sittisak Sinprem <ssinprem@celestca.com>
> > 
> > Device 24C64 the size is 64 kilobits
> > Device 24C02 the size is 2 kilobits
> 
> Could you please specify the size in bytes ?
> 
> You will need to add a Signed-off-by tag.
> 
> Thanks,
> 
> C.

Thanks Cedric,

Sittisak, thanks for this fix, I didn't realize the size was in bits (oops lol,
I'm pretty new to embedded systems)

I agree with Cedric though, instead of adding "/ 8", could we just replace 64 *
KiB / 8 with 8 * KiB, and 2 * KiB / 8 with 256?

- Peter

Reviewed-by: Peter Delevoryas <peter@pjd.dev>

> 
> > ---
> >   hw/arm/aspeed.c | 32 ++++++++++++++++----------------
> >   1 file changed, 16 insertions(+), 16 deletions(-)
> > 
> > diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c
> > index 55f114ef72..8e6a1579e4 100644
> > --- a/hw/arm/aspeed.c
> > +++ b/hw/arm/aspeed.c
> > @@ -846,42 +846,42 @@ static void fuji_bmc_i2c_init(AspeedMachineState *bmc)
> >       i2c_slave_create_simple(i2c[17], TYPE_LM75, 0x4c);
> >       i2c_slave_create_simple(i2c[17], TYPE_LM75, 0x4d);
> > -    aspeed_eeprom_init(i2c[19], 0x52, 64 * KiB);
> > -    aspeed_eeprom_init(i2c[20], 0x50, 2 * KiB);
> > -    aspeed_eeprom_init(i2c[22], 0x52, 2 * KiB);
> > +    aspeed_eeprom_init(i2c[19], 0x52, 64 * KiB / 8);
> > +    aspeed_eeprom_init(i2c[20], 0x50, 2 * KiB / 8);
> > +    aspeed_eeprom_init(i2c[22], 0x52, 2 * KiB / 8);
> >       i2c_slave_create_simple(i2c[3], TYPE_LM75, 0x48);
> >       i2c_slave_create_simple(i2c[3], TYPE_LM75, 0x49);
> >       i2c_slave_create_simple(i2c[3], TYPE_LM75, 0x4a);
> >       i2c_slave_create_simple(i2c[3], TYPE_TMP422, 0x4c);
> > -    aspeed_eeprom_init(i2c[8], 0x51, 64 * KiB);
> > +    aspeed_eeprom_init(i2c[8], 0x51, 64 * KiB / 8);
> >       i2c_slave_create_simple(i2c[8], TYPE_LM75, 0x4a);
> >       i2c_slave_create_simple(i2c[50], TYPE_LM75, 0x4c);
> > -    aspeed_eeprom_init(i2c[50], 0x52, 64 * KiB);
> > +    aspeed_eeprom_init(i2c[50], 0x52, 64 * KiB / 8);
> >       i2c_slave_create_simple(i2c[51], TYPE_TMP75, 0x48);
> >       i2c_slave_create_simple(i2c[52], TYPE_TMP75, 0x49);
> >       i2c_slave_create_simple(i2c[59], TYPE_TMP75, 0x48);
> >       i2c_slave_create_simple(i2c[60], TYPE_TMP75, 0x49);
> > -    aspeed_eeprom_init(i2c[65], 0x53, 64 * KiB);
> > +    aspeed_eeprom_init(i2c[65], 0x53, 64 * KiB / 8);
> >       i2c_slave_create_simple(i2c[66], TYPE_TMP75, 0x49);
> >       i2c_slave_create_simple(i2c[66], TYPE_TMP75, 0x48);
> > -    aspeed_eeprom_init(i2c[68], 0x52, 64 * KiB);
> > -    aspeed_eeprom_init(i2c[69], 0x52, 64 * KiB);
> > -    aspeed_eeprom_init(i2c[70], 0x52, 64 * KiB);
> > -    aspeed_eeprom_init(i2c[71], 0x52, 64 * KiB);
> > +    aspeed_eeprom_init(i2c[68], 0x52, 64 * KiB / 8);
> > +    aspeed_eeprom_init(i2c[69], 0x52, 64 * KiB / 8);
> > +    aspeed_eeprom_init(i2c[70], 0x52, 64 * KiB / 8);
> > +    aspeed_eeprom_init(i2c[71], 0x52, 64 * KiB / 8);
> > -    aspeed_eeprom_init(i2c[73], 0x53, 64 * KiB);
> > +    aspeed_eeprom_init(i2c[73], 0x53, 64 * KiB / 8);
> >       i2c_slave_create_simple(i2c[74], TYPE_TMP75, 0x49);
> >       i2c_slave_create_simple(i2c[74], TYPE_TMP75, 0x48);
> > -    aspeed_eeprom_init(i2c[76], 0x52, 64 * KiB);
> > -    aspeed_eeprom_init(i2c[77], 0x52, 64 * KiB);
> > -    aspeed_eeprom_init(i2c[78], 0x52, 64 * KiB);
> > -    aspeed_eeprom_init(i2c[79], 0x52, 64 * KiB);
> > -    aspeed_eeprom_init(i2c[28], 0x50, 2 * KiB);
> > +    aspeed_eeprom_init(i2c[76], 0x52, 64 * KiB / 8);
> > +    aspeed_eeprom_init(i2c[77], 0x52, 64 * KiB / 8);
> > +    aspeed_eeprom_init(i2c[78], 0x52, 64 * KiB / 8);
> > +    aspeed_eeprom_init(i2c[79], 0x52, 64 * KiB / 8);
> > +    aspeed_eeprom_init(i2c[28], 0x50, 2 * KiB / 8);
> >       for (int i = 0; i < 8; i++) {
> >           aspeed_eeprom_init(i2c[81 + i * 8], 0x56, 64 * KiB);
> 


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH qemu 1/2] hw/at24c : modify at24c to support 1 byte address mode
  2023-02-14 14:29   ` Cédric Le Goater
@ 2023-02-15 20:39     ` Peter Delevoryas
  0 siblings, 0 replies; 13+ messages in thread
From: Peter Delevoryas @ 2023-02-15 20:39 UTC (permalink / raw)
  To: Cédric Le Goater
  Cc: ~ssinprem, qemu-devel, qemu-stable, srikanth, kgengan

On Tue, Feb 14, 2023 at 03:29:33PM +0100, Cédric Le Goater wrote:
> On 2/10/23 07:20, ~ssinprem wrote:
> > From: Sittisak Sinprem <ssinprem@celestca.com>
> 
> 
> 
> You will need to add a Signed-off-by tag
> 
> Thanks,
> 
> C.

Oh, yeah this is a pretty good change: I mean, at first I had no idea what's
going on here, so it would be nice if we could leave a comment or refactor it
to be simpler.

Maybe instead of if-statements for > 256 or <= 256, we could do an address size
attribute and compute the 256 bound from the address size.

Anyways, this is a really small change to fix behavior, we can do a refactoring
like that later (If Cedric is ok with it).

Reviewed-by: Peter Delevoryas <peter@pjd.dev>

> 
> > ---
> >   hw/nvram/eeprom_at24c.c | 8 +++++---
> >   1 file changed, 5 insertions(+), 3 deletions(-)
> > 
> > diff --git a/hw/nvram/eeprom_at24c.c b/hw/nvram/eeprom_at24c.c
> > index 2d4d8b952f..693212b661 100644
> > --- a/hw/nvram/eeprom_at24c.c
> > +++ b/hw/nvram/eeprom_at24c.c
> > @@ -87,7 +87,7 @@ uint8_t at24c_eeprom_recv(I2CSlave *s)
> >       EEPROMState *ee = AT24C_EE(s);
> >       uint8_t ret;
> > -    if (ee->haveaddr == 1) {
> > +    if (ee->rsize > 256 && ee->haveaddr == 1) {
> >           return 0xff;
> >       }
> > @@ -104,11 +104,13 @@ int at24c_eeprom_send(I2CSlave *s, uint8_t data)
> >   {
> >       EEPROMState *ee = AT24C_EE(s);
> > -    if (ee->haveaddr < 2) {
> > +    if ((ee->rsize > 256 && ee->haveaddr < 2) ||
> > +        (ee->rsize <= 256 && ee->haveaddr < 1)) {
> >           ee->cur <<= 8;
> >           ee->cur |= data;
> >           ee->haveaddr++;
> > -        if (ee->haveaddr == 2) {
> > +        if ((ee->rsize > 256 && ee->haveaddr == 2) ||
> > +            (ee->rsize <= 256 && ee->haveaddr == 1)) {
> >               ee->cur %= ee->rsize;
> >               DPRINTK("Set pointer %04x\n", ee->cur);
> >           }
> 


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH qemu 1/2] hw/at24c : modify at24c to support 1 byte address mode
  2023-02-10  6:20 ` [PATCH qemu 1/2] hw/at24c : modify at24c to support 1 byte address mode ~ssinprem
  2023-02-14 14:29   ` Cédric Le Goater
@ 2023-02-16  8:25   ` Philippe Mathieu-Daudé
  2023-02-16  8:47     ` Sittisak Sinprem
  1 sibling, 1 reply; 13+ messages in thread
From: Philippe Mathieu-Daudé @ 2023-02-16  8:25 UTC (permalink / raw)
  To: ~ssinprem, qemu-devel; +Cc: qemu-stable, srikanth, kgengan

On 10/2/23 07:20, ~ssinprem wrote:
> From: Sittisak Sinprem <ssinprem@celestca.com>
> 
> ---
>   hw/nvram/eeprom_at24c.c | 8 +++++---
>   1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/hw/nvram/eeprom_at24c.c b/hw/nvram/eeprom_at24c.c
> index 2d4d8b952f..693212b661 100644
> --- a/hw/nvram/eeprom_at24c.c
> +++ b/hw/nvram/eeprom_at24c.c
> @@ -87,7 +87,7 @@ uint8_t at24c_eeprom_recv(I2CSlave *s)
>       EEPROMState *ee = AT24C_EE(s);
>       uint8_t ret;
>   
> -    if (ee->haveaddr == 1) {
> +    if (ee->rsize > 256 && ee->haveaddr == 1) {
>           return 0xff;
>       }

What represents this '256' magic value? Please add a definition.


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH qemu 1/2] hw/at24c : modify at24c to support 1 byte address mode
  2023-02-16  8:25   ` Philippe Mathieu-Daudé
@ 2023-02-16  8:47     ` Sittisak Sinprem
  2023-02-16 14:27       ` Sittisak Sinprem
  0 siblings, 1 reply; 13+ messages in thread
From: Sittisak Sinprem @ 2023-02-16  8:47 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé; +Cc: qemu-devel, qemu-stable, srikanth, kgengan

[-- Attachment #1: Type: text/plain, Size: 1578 bytes --]

Hi Philippe,

the EEPROM size less than or equal to 256 , such as 24c02
use only 1 byte to mention the memory (0 - 255) (0x00 - 0xff)

 write byte
  [ Start sAddr/W ] -> [ mem Addr ] -> [ mem data ] -> [ Stop ]

 read byte
  [ Start sAddr/W ] -> [ mem Addr ]
    -> [ reStart sAddr/R] -> [ mem data ]-> [ Stop ]

---------------------------------------------------------------
Meanwhile, in EEPROM size more 256 , such as 24c64 has size 8192 bytes
(0x2000)
use 2 bytes for pointing the memory (0x0000 - 0x2000 )

 write byte
  [ Start sAddr/W ] -> [ 1st mem Addr ] -> [ 2nd mem Addr ]
   -> [ Mem Data ] -> [ Stop ]

  read byte
  [ Start sAddr/W ] -> [ 1st mem Addr ] -> [ 2nd mem Addr ]
   -> [ reStart sAddr/R] -> [ mem data ]-> [ Stop ]

On Thu, Feb 16, 2023 at 3:25 PM Philippe Mathieu-Daudé <philmd@linaro.org>
wrote:

> On 10/2/23 07:20, ~ssinprem wrote:
> > From: Sittisak Sinprem <ssinprem@celestca.com>
> >
> > ---
> >   hw/nvram/eeprom_at24c.c | 8 +++++---
> >   1 file changed, 5 insertions(+), 3 deletions(-)
> >
> > diff --git a/hw/nvram/eeprom_at24c.c b/hw/nvram/eeprom_at24c.c
> > index 2d4d8b952f..693212b661 100644
> > --- a/hw/nvram/eeprom_at24c.c
> > +++ b/hw/nvram/eeprom_at24c.c
> > @@ -87,7 +87,7 @@ uint8_t at24c_eeprom_recv(I2CSlave *s)
> >       EEPROMState *ee = AT24C_EE(s);
> >       uint8_t ret;
> >
> > -    if (ee->haveaddr == 1) {
> > +    if (ee->rsize > 256 && ee->haveaddr == 1) {
> >           return 0xff;
> >       }
>
> What represents this '256' magic value? Please add a definition.
>

[-- Attachment #2: Type: text/html, Size: 2327 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH qemu 2/2] aspeed/fuji : correct the eeprom size
  2023-02-15 20:34     ` Peter Delevoryas
@ 2023-02-16 14:23       ` Sittisak Sinprem
  2023-02-16 18:43         ` Cédric Le Goater
  0 siblings, 1 reply; 13+ messages in thread
From: Sittisak Sinprem @ 2023-02-16 14:23 UTC (permalink / raw)
  To: Peter Delevoryas
  Cc: Cédric Le Goater, qemu-devel, qemu-stable, srikanth, kgengan

[-- Attachment #1: Type: text/plain, Size: 3182 bytes --]

From: Sittisak Sinprem <ssinprem@celestca.com>

Device 24C64 the size is 64 kilobits = 8kilobyte
Device 24C02 the size is 2 kilobits = 256byte

Signed-off-by: Sittisak Sinprem <ssinprem@celestca.com>
---
 hw/arm/aspeed.c | 36 ++++++++++++++++++++----------------
 1 file changed, 20 insertions(+), 16 deletions(-)

diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c
index 27dda58338..40f6076b44 100644
--- a/hw/arm/aspeed.c
+++ b/hw/arm/aspeed.c
@@ -840,42 +840,46 @@ static void fuji_bmc_i2c_init(AspeedMachineState *bmc)
     i2c_slave_create_simple(i2c[17], TYPE_LM75, 0x4c);
     i2c_slave_create_simple(i2c[17], TYPE_LM75, 0x4d);

-    at24c_eeprom_init(i2c[19], 0x52, 64 * KiB);
-    at24c_eeprom_init(i2c[20], 0x50, 2 * KiB);
-    at24c_eeprom_init(i2c[22], 0x52, 2 * KiB);
+    /*
+    * EEPROM 24c64 size is 64Kbits or 8 Kbytes
+    *        24c02 size is 2Kbits or 256 bytes
+    */
+    at24c_eeprom_init(i2c[19], 0x52, 8 * KiB);
+    at24c_eeprom_init(i2c[20], 0x50, 256);
+    at24c_eeprom_init(i2c[22], 0x52, 256);

     i2c_slave_create_simple(i2c[3], TYPE_LM75, 0x48);
     i2c_slave_create_simple(i2c[3], TYPE_LM75, 0x49);
     i2c_slave_create_simple(i2c[3], TYPE_LM75, 0x4a);
     i2c_slave_create_simple(i2c[3], TYPE_TMP422, 0x4c);

-    at24c_eeprom_init(i2c[8], 0x51, 64 * KiB);
+    at24c_eeprom_init(i2c[8], 0x51, 8 * KiB);
     i2c_slave_create_simple(i2c[8], TYPE_LM75, 0x4a);

     i2c_slave_create_simple(i2c[50], TYPE_LM75, 0x4c);
-    at24c_eeprom_init(i2c[50], 0x52, 64 * KiB);
+    at24c_eeprom_init(i2c[50], 0x52, 8 * KiB);
     i2c_slave_create_simple(i2c[51], TYPE_TMP75, 0x48);
     i2c_slave_create_simple(i2c[52], TYPE_TMP75, 0x49);

     i2c_slave_create_simple(i2c[59], TYPE_TMP75, 0x48);
     i2c_slave_create_simple(i2c[60], TYPE_TMP75, 0x49);

-    at24c_eeprom_init(i2c[65], 0x53, 64 * KiB);
+    at24c_eeprom_init(i2c[65], 0x53, 8 * KiB);
     i2c_slave_create_simple(i2c[66], TYPE_TMP75, 0x49);
     i2c_slave_create_simple(i2c[66], TYPE_TMP75, 0x48);
-    at24c_eeprom_init(i2c[68], 0x52, 64 * KiB);
-    at24c_eeprom_init(i2c[69], 0x52, 64 * KiB);
-    at24c_eeprom_init(i2c[70], 0x52, 64 * KiB);
-    at24c_eeprom_init(i2c[71], 0x52, 64 * KiB);
+    at24c_eeprom_init(i2c[68], 0x52, 8 * KiB);
+    at24c_eeprom_init(i2c[69], 0x52, 8 * KiB);
+    at24c_eeprom_init(i2c[70], 0x52, 8 * KiB);
+    at24c_eeprom_init(i2c[71], 0x52, 8 * KiB);

-    at24c_eeprom_init(i2c[73], 0x53, 64 * KiB);
+    at24c_eeprom_init(i2c[73], 0x53, 8 * KiB);
     i2c_slave_create_simple(i2c[74], TYPE_TMP75, 0x49);
     i2c_slave_create_simple(i2c[74], TYPE_TMP75, 0x48);
-    at24c_eeprom_init(i2c[76], 0x52, 64 * KiB);
-    at24c_eeprom_init(i2c[77], 0x52, 64 * KiB);
-    at24c_eeprom_init(i2c[78], 0x52, 64 * KiB);
-    at24c_eeprom_init(i2c[79], 0x52, 64 * KiB);
-    at24c_eeprom_init(i2c[28], 0x50, 2 * KiB);
+    at24c_eeprom_init(i2c[76], 0x52, 8 * KiB);
+    at24c_eeprom_init(i2c[77], 0x52, 8 * KiB);
+    at24c_eeprom_init(i2c[78], 0x52, 8 * KiB);
+    at24c_eeprom_init(i2c[79], 0x52, 8 * KiB);
+    at24c_eeprom_init(i2c[28], 0x50, 256);

     for (int i = 0; i < 8; i++) {
         at24c_eeprom_init(i2c[81 + i * 8], 0x56, 64 * KiB);
-- 
2.34.6

[-- Attachment #2: Type: text/html, Size: 4041 bytes --]

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH qemu 1/2] hw/at24c : modify at24c to support 1 byte address mode
  2023-02-16  8:47     ` Sittisak Sinprem
@ 2023-02-16 14:27       ` Sittisak Sinprem
  0 siblings, 0 replies; 13+ messages in thread
From: Sittisak Sinprem @ 2023-02-16 14:27 UTC (permalink / raw)
  To: qemu-devel; +Cc: Philippe Mathieu-Daudé, qemu-stable, srikanth, kgengan

[-- Attachment #1: Type: text/plain, Size: 2617 bytes --]

From: Sittisak Sinprem <ssinprem@celestca.com>

Signed-off-by: Sittisak Sinprem <ssinprem@celestca.com>
---
 hw/nvram/eeprom_at24c.c | 46 +++++++++++++++++++++++++++++------------
 1 file changed, 33 insertions(+), 13 deletions(-)

diff --git a/hw/nvram/eeprom_at24c.c b/hw/nvram/eeprom_at24c.c
index 3328c32814..0cb650d635 100644
--- a/hw/nvram/eeprom_at24c.c
+++ b/hw/nvram/eeprom_at24c.c
@@ -41,6 +41,12 @@ struct EEPROMState {
     uint16_t cur;
     /* total size in bytes */
     uint32_t rsize;
+    /* address byte number
+     *  for  24c01, 24c02 size <= 256 byte, use only 1 byte
+     *  otherwise size > 256, use 2 byte
+     */
+    uint8_t asize;
+
     bool writable;
     /* cells changed since last START? */
     bool changed;
@@ -91,7 +97,7 @@ uint8_t at24c_eeprom_recv(I2CSlave *s)
     EEPROMState *ee = AT24C_EE(s);
     uint8_t ret;

-    if (ee->haveaddr == 1) {
+    if (ee->haveaddr > 0 && ee->haveaddr < ee->asize) {
         return 0xff;
     }

@@ -108,11 +114,11 @@ int at24c_eeprom_send(I2CSlave *s, uint8_t data)
 {
     EEPROMState *ee = AT24C_EE(s);

-    if (ee->haveaddr < 2) {
+    if (ee->haveaddr < ee->asize) {
         ee->cur <<= 8;
         ee->cur |= data;
         ee->haveaddr++;
-        if (ee->haveaddr == 2) {
+        if (ee->haveaddr == ee->asize) {
             ee->cur %= ee->rsize;
             DPRINTK("Set pointer %04x\n", ee->cur);
         }
@@ -184,6 +190,29 @@ static void at24c_eeprom_realize(DeviceState *dev,
Error **errp)
     }

     ee->mem = g_malloc0(ee->rsize);
+
+    /*
+     * If address size didn't define with property set
+     *  setting it from Rom size
+     */
+    if (ee->asize == 0) {
+        if (ee->rsize <= 256) {
+            ee->asize = 1;
+        } else {
+            ee->asize = 2;
+        }
+    }
+}
+
+static
+void at24c_eeprom_reset(DeviceState *state)
+{
+    EEPROMState *ee = AT24C_EE(state);
+
+    ee->changed = false;
+    ee->cur = 0;
+    ee->haveaddr = 0;
+
     memset(ee->mem, 0, ee->rsize);

     if (ee->init_rom) {
@@ -201,18 +230,9 @@ static void at24c_eeprom_realize(DeviceState *dev,
Error **errp)
     }
 }

-static
-void at24c_eeprom_reset(DeviceState *state)
-{
-    EEPROMState *ee = AT24C_EE(state);
-
-    ee->changed = false;
-    ee->cur = 0;
-    ee->haveaddr = 0;
-}
-
 static Property at24c_eeprom_props[] = {
     DEFINE_PROP_UINT32("rom-size", EEPROMState, rsize, 0),
+    DEFINE_PROP_UINT8("address-size", EEPROMState, asize, 0),
     DEFINE_PROP_BOOL("writable", EEPROMState, writable, true),
     DEFINE_PROP_DRIVE("drive", EEPROMState, blk),
     DEFINE_PROP_END_OF_LIST()
-- 
2.34.6

[-- Attachment #2: Type: text/html, Size: 3886 bytes --]

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH qemu 2/2] aspeed/fuji : correct the eeprom size
  2023-02-16 14:23       ` Sittisak Sinprem
@ 2023-02-16 18:43         ` Cédric Le Goater
  0 siblings, 0 replies; 13+ messages in thread
From: Cédric Le Goater @ 2023-02-16 18:43 UTC (permalink / raw)
  To: Sittisak Sinprem, Peter Delevoryas
  Cc: qemu-devel, qemu-stable, srikanth, kgengan

Hello Sittisak,

On 2/16/23 15:23, Sittisak Sinprem wrote:
> From: Sittisak Sinprem <ssinprem@celestca.com <mailto:ssinprem@celestca.com>>
> 
> Device 24C64 the size is 64 kilobits = 8kilobyte
> Device 24C02 the size is 2 kilobits = 256byte
> 
> Signed-off-by: Sittisak Sinprem <ssinprem@celestca.com <mailto:ssinprem@celestca.com>>

Could you please address the comments on patch 1 also and resend both
patches as a v2 ?

You can use ./scripts/get_maintainer.pl to get the list of persons to send to,
which should be :

  git send-email --to qemu-arm@nongnu.org --to qemu-devel@nongnu.org \
     --cc "Joel Stanley <joel@jms.id.au>" \
     --cc "Andrew Jeffery <andrew@aj.id.au>" \
     --cc "Peter Maydell <peter.maydell@linaro.org>" \
     --cc "Cédric Le Goater <clg@kaod.org>" \
     ./v2-000*patches

Thanks,

C.


> ---
>   hw/arm/aspeed.c | 36 ++++++++++++++++++++----------------
>   1 file changed, 20 insertions(+), 16 deletions(-)
> 
> diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c
> index 27dda58338..40f6076b44 100644
> --- a/hw/arm/aspeed.c
> +++ b/hw/arm/aspeed.c
> @@ -840,42 +840,46 @@ static void fuji_bmc_i2c_init(AspeedMachineState *bmc)
>       i2c_slave_create_simple(i2c[17], TYPE_LM75, 0x4c);
>       i2c_slave_create_simple(i2c[17], TYPE_LM75, 0x4d);
> 
> -    at24c_eeprom_init(i2c[19], 0x52, 64 * KiB);
> -    at24c_eeprom_init(i2c[20], 0x50, 2 * KiB);
> -    at24c_eeprom_init(i2c[22], 0x52, 2 * KiB);
> +    /*
> +    * EEPROM 24c64 size is 64Kbits or 8 Kbytes
> +    *        24c02 size is 2Kbits or 256 bytes
> +    */
> +    at24c_eeprom_init(i2c[19], 0x52, 8 * KiB);
> +    at24c_eeprom_init(i2c[20], 0x50, 256);
> +    at24c_eeprom_init(i2c[22], 0x52, 256);
> 
>       i2c_slave_create_simple(i2c[3], TYPE_LM75, 0x48);
>       i2c_slave_create_simple(i2c[3], TYPE_LM75, 0x49);
>       i2c_slave_create_simple(i2c[3], TYPE_LM75, 0x4a);
>       i2c_slave_create_simple(i2c[3], TYPE_TMP422, 0x4c);
> 
> -    at24c_eeprom_init(i2c[8], 0x51, 64 * KiB);
> +    at24c_eeprom_init(i2c[8], 0x51, 8 * KiB);
>       i2c_slave_create_simple(i2c[8], TYPE_LM75, 0x4a);
> 
>       i2c_slave_create_simple(i2c[50], TYPE_LM75, 0x4c);
> -    at24c_eeprom_init(i2c[50], 0x52, 64 * KiB);
> +    at24c_eeprom_init(i2c[50], 0x52, 8 * KiB);
>       i2c_slave_create_simple(i2c[51], TYPE_TMP75, 0x48);
>       i2c_slave_create_simple(i2c[52], TYPE_TMP75, 0x49);
> 
>       i2c_slave_create_simple(i2c[59], TYPE_TMP75, 0x48);
>       i2c_slave_create_simple(i2c[60], TYPE_TMP75, 0x49);
> 
> -    at24c_eeprom_init(i2c[65], 0x53, 64 * KiB);
> +    at24c_eeprom_init(i2c[65], 0x53, 8 * KiB);
>       i2c_slave_create_simple(i2c[66], TYPE_TMP75, 0x49);
>       i2c_slave_create_simple(i2c[66], TYPE_TMP75, 0x48);
> -    at24c_eeprom_init(i2c[68], 0x52, 64 * KiB);
> -    at24c_eeprom_init(i2c[69], 0x52, 64 * KiB);
> -    at24c_eeprom_init(i2c[70], 0x52, 64 * KiB);
> -    at24c_eeprom_init(i2c[71], 0x52, 64 * KiB);
> +    at24c_eeprom_init(i2c[68], 0x52, 8 * KiB);
> +    at24c_eeprom_init(i2c[69], 0x52, 8 * KiB);
> +    at24c_eeprom_init(i2c[70], 0x52, 8 * KiB);
> +    at24c_eeprom_init(i2c[71], 0x52, 8 * KiB);
> 
> -    at24c_eeprom_init(i2c[73], 0x53, 64 * KiB);
> +    at24c_eeprom_init(i2c[73], 0x53, 8 * KiB);
>       i2c_slave_create_simple(i2c[74], TYPE_TMP75, 0x49);
>       i2c_slave_create_simple(i2c[74], TYPE_TMP75, 0x48);
> -    at24c_eeprom_init(i2c[76], 0x52, 64 * KiB);
> -    at24c_eeprom_init(i2c[77], 0x52, 64 * KiB);
> -    at24c_eeprom_init(i2c[78], 0x52, 64 * KiB);
> -    at24c_eeprom_init(i2c[79], 0x52, 64 * KiB);
> -    at24c_eeprom_init(i2c[28], 0x50, 2 * KiB);
> +    at24c_eeprom_init(i2c[76], 0x52, 8 * KiB);
> +    at24c_eeprom_init(i2c[77], 0x52, 8 * KiB);
> +    at24c_eeprom_init(i2c[78], 0x52, 8 * KiB);
> +    at24c_eeprom_init(i2c[79], 0x52, 8 * KiB);
> +    at24c_eeprom_init(i2c[28], 0x50, 256);
> 
>       for (int i = 0; i < 8; i++) {
>           at24c_eeprom_init(i2c[81 + i * 8], 0x56, 64 * KiB);
> -- 
> 2.34.6
> 



^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2023-02-16 18:43 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-02-14  9:54 [PATCH qemu 0/2] hw/at24c support eeprom size less than equal 256 byte ~ssinprem
2023-02-10  6:20 ` [PATCH qemu 1/2] hw/at24c : modify at24c to support 1 byte address mode ~ssinprem
2023-02-14 14:29   ` Cédric Le Goater
2023-02-15 20:39     ` Peter Delevoryas
2023-02-16  8:25   ` Philippe Mathieu-Daudé
2023-02-16  8:47     ` Sittisak Sinprem
2023-02-16 14:27       ` Sittisak Sinprem
2023-02-14  9:06 ` [PATCH qemu 2/2] aspeed/fuji : correct the eeprom size ~ssinprem
2023-02-14 14:28   ` Cédric Le Goater
2023-02-15  3:17     ` Sittisak Sinprem
2023-02-15 20:34     ` Peter Delevoryas
2023-02-16 14:23       ` Sittisak Sinprem
2023-02-16 18:43         ` Cédric Le Goater

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).