mbox series

[00/21] aspeed: Extend ast2600 I2C model with new mode

Message ID 20220606150732.2282041-1-clg@kaod.org (mailing list archive)
Headers show
Series aspeed: Extend ast2600 I2C model with new mode | expand

Message

Cédric Le Goater June 6, 2022, 3:07 p.m. UTC
Hello,

Here is a series aggregating recent changes proposed on the Aspeed
ast2600 I2C controller model. 

First comes a large set of changes converting the model to use the
registerfield interface and adding the I2C new register mode
(Joe). Since this is complex to review, extra tests are added to the
acceptance test suite to check that I2C devices are still functional
in the ast2600-evb machine. These tests use small buildroot images
available on GH. 

The ast1030 and ast2600 SoC share the same I2C logic. This series adds
I2C support to the ast1030 now that new register mode is supported.
There was a previous proposal from Troy doing the same but Joe's
patchset covers the same need (and converts the model to registerfield)

Follows a proposal from Klaus adding support for multi master in the
I2C core and the Aspeed I2C model, for the old register mode only. The
new register mode still needs to be addressed but this shouldn't take
too long once old register mode is merged.

Last, I have added the I2C echo device and test provided by Klaus. I
think it would be interesting to keep them for tests. Please, tell me.

Thanks,

C.

Cédric Le Goater (7):
  test/avocado/machine_aspeed.py: Move OpenBMC tests
  test/avocado/machine_aspeed.py: Add tests using buildroot images
  test/avocado/machine_aspeed.py: Add I2C tests to ast2600-evb
  test/avocado/machine_aspeed.py: Add an I2C RTC test
  aspeed/i2c: Add ast1030 controller models
  aspeed/i2c: Enable SLAVE_ADDR_RX_MATCH always
  test/avocado/machine_aspeed.py: Add I2C slave tests

Joe Komlodi (7):
  hw/registerfields: Add shared fields macros
  aspeed: i2c: Add ctrl_global_rsvd property
  aspeed: i2c: Migrate to registerfields API
  aspeed: i2c: Use reg array instead of individual vars
  aspeed: i2c: Add new mode support
  aspeed: i2c: Add PKT_DONE IRQ to trace
  aspeed: i2c: Move regs and helpers to header file

Klaus Jensen (6):
  hw/i2c/aspeed: rework raise interrupt trace event
  hw/i2c/aspeed: add DEV_ADDR in old register mode
  hw/i2c: support multiple masters
  hw/i2c: add asynchronous send
  hw/i2c/aspeed: add slave device in old register mode
  hw/misc: add a toy i2c echo device [DO NOT PULL]

Troy Lee (1):
  aspeed: Add I2C buses to AST1030 model

 include/hw/i2c/aspeed_i2c.h         | 299 ++++++++-
 include/hw/i2c/i2c.h                |  30 +
 include/hw/registerfields.h         |  70 +++
 hw/arm/aspeed.c                     |  13 +
 hw/arm/aspeed_ast10x0.c             |  18 +
 hw/arm/aspeed_ast2600.c             |   2 +
 hw/arm/pxa2xx.c                     |   2 +
 hw/display/sii9022.c                |   2 +
 hw/display/ssd0303.c                |   2 +
 hw/i2c/aspeed_i2c.c                 | 901 ++++++++++++++++++----------
 hw/i2c/core.c                       |  70 ++-
 hw/i2c/smbus_slave.c                |   4 +
 hw/misc/i2c-echo.c                  | 162 +++++
 hw/nvram/eeprom_at24c.c             |   2 +
 hw/sensor/lsm303dlhc_mag.c          |   2 +
 hw/i2c/trace-events                 |   4 +-
 hw/misc/meson.build                 |   2 +
 tests/avocado/boot_linux_console.py |  43 --
 tests/avocado/machine_aspeed.py     | 128 ++++
 19 files changed, 1393 insertions(+), 363 deletions(-)
 create mode 100644 hw/misc/i2c-echo.c

Comments

Cédric Le Goater June 19, 2022, 2:50 p.m. UTC | #1
Hello Corey,

On 6/6/22 17:07, Cédric Le Goater wrote:
> Hello,
> 
> Here is a series aggregating recent changes proposed on the Aspeed
> ast2600 I2C controller model.
> 
> First comes a large set of changes converting the model to use the
> registerfield interface and adding the I2C new register mode
> (Joe). Since this is complex to review, extra tests are added to the
> acceptance test suite to check that I2C devices are still functional
> in the ast2600-evb machine. These tests use small buildroot images
> available on GH.
> 
> The ast1030 and ast2600 SoC share the same I2C logic. This series adds
> I2C support to the ast1030 now that new register mode is supported.
> There was a previous proposal from Troy doing the same but Joe's
> patchset covers the same need (and converts the model to registerfield)
> 
> Follows a proposal from Klaus adding support for multi master in the
> I2C core and the Aspeed I2C model, for the old register mode only. The
> new register mode still needs to be addressed but this shouldn't take
> too long once old register mode is merged.
> 
> Last, I have added the I2C echo device and test provided by Klaus. I
> think it would be interesting to keep them for tests. Please, tell me.
> 
> Thanks,
> 
> C.
> 
> Cédric Le Goater (7):
>    test/avocado/machine_aspeed.py: Move OpenBMC tests
>    test/avocado/machine_aspeed.py: Add tests using buildroot images
>    test/avocado/machine_aspeed.py: Add I2C tests to ast2600-evb
>    test/avocado/machine_aspeed.py: Add an I2C RTC test
>    aspeed/i2c: Add ast1030 controller models
>    aspeed/i2c: Enable SLAVE_ADDR_RX_MATCH always
>    test/avocado/machine_aspeed.py: Add I2C slave tests
> 
> Joe Komlodi (7):
>    hw/registerfields: Add shared fields macros
>    aspeed: i2c: Add ctrl_global_rsvd property
>    aspeed: i2c: Migrate to registerfields API
>    aspeed: i2c: Use reg array instead of individual vars
>    aspeed: i2c: Add new mode support
>    aspeed: i2c: Add PKT_DONE IRQ to trace
>    aspeed: i2c: Move regs and helpers to header file
> 
> Klaus Jensen (6):
>    hw/i2c/aspeed: rework raise interrupt trace event
>    hw/i2c/aspeed: add DEV_ADDR in old register mode


>    hw/i2c: support multiple masters
>    hw/i2c: add asynchronous send
>    hw/i2c/aspeed: add slave device in old register mode


Do you think we can move forward with the above 3 patches and include
them in an Aspeed PR ? I didn't see any objection.

Thanks,

C.



>    hw/misc: add a toy i2c echo device [DO NOT PULL]
> 
> Troy Lee (1):
>    aspeed: Add I2C buses to AST1030 model
> 
>   include/hw/i2c/aspeed_i2c.h         | 299 ++++++++-
>   include/hw/i2c/i2c.h                |  30 +
>   include/hw/registerfields.h         |  70 +++
>   hw/arm/aspeed.c                     |  13 +
>   hw/arm/aspeed_ast10x0.c             |  18 +
>   hw/arm/aspeed_ast2600.c             |   2 +
>   hw/arm/pxa2xx.c                     |   2 +
>   hw/display/sii9022.c                |   2 +
>   hw/display/ssd0303.c                |   2 +
>   hw/i2c/aspeed_i2c.c                 | 901 ++++++++++++++++++----------
>   hw/i2c/core.c                       |  70 ++-
>   hw/i2c/smbus_slave.c                |   4 +
>   hw/misc/i2c-echo.c                  | 162 +++++
>   hw/nvram/eeprom_at24c.c             |   2 +
>   hw/sensor/lsm303dlhc_mag.c          |   2 +
>   hw/i2c/trace-events                 |   4 +-
>   hw/misc/meson.build                 |   2 +
>   tests/avocado/boot_linux_console.py |  43 --
>   tests/avocado/machine_aspeed.py     | 128 ++++
>   19 files changed, 1393 insertions(+), 363 deletions(-)
>   create mode 100644 hw/misc/i2c-echo.c
>