[PATCH v5 0/5] hw/nvram/eeprom_at24c: Cleanup + FRUID EEPROM init example

Peter Delevoryas posted 5 patches 1 year, 2 months ago
hw/arm/aspeed.c                 | 109 ++++++++++++++------------------
hw/arm/aspeed_eeprom.c          |  82 ++++++++++++++++++++++++
hw/arm/aspeed_eeprom.h          |  19 ++++++
hw/arm/meson.build              |   1 +
hw/arm/npcm7xx_boards.c         |  20 ++----
hw/nvram/eeprom_at24c.c         |  58 +++++++++++++----
include/hw/nvram/eeprom_at24c.h |  39 ++++++++++++
7 files changed, 241 insertions(+), 87 deletions(-)
create mode 100644 hw/arm/aspeed_eeprom.c
create mode 100644 hw/arm/aspeed_eeprom.h
create mode 100644 include/hw/nvram/eeprom_at24c.h
[PATCH v5 0/5] hw/nvram/eeprom_at24c: Cleanup + FRUID EEPROM init example
Posted by Peter Delevoryas 1 year, 2 months ago
v1: https://lore.kernel.org/qemu-devel/20230114170151.87833-1-peter@pjd.dev/
v2:
    - Squashed 3 commits from original series into extract helper commit
    - Dropped last 2 commits from original series
    - Changed at24c_eeprom_init to return the I2CSlave object
    - Added commit to introduce at24c-eeprom "init_rom" attribute
    - Added aspeed_eeprom.c and fby35-bmc BMC FRUID EEPROM initialization
    - Added commit to change reset behavior for at24c-eeprom (optional)
v3:
    - Added doc comments to function headers
	- Added fby35 NIC and baseboard EEPROM's (to illustrate 2+ EEPROM's)
    - Replaced "extern uint32 fby35_bmc_fruid_size" by adding explicit array
      sizes, e.g. "extern uint8_t fby35_bmc_fruid[200]".
    - Fixed Meta Platforms licenses by adding SPDX-License-Identifier for GPL2.
    - Moved ee->init_rom initialization code before ee->blk, so that -drive
      property overrides init_rom initialization. This gives more flexibility
      (people can override contents of an AT24C EEPROM using a file for
      debugging/prototyping) while still allowing the init_rom data to be
      specified for a board for default behavior.
v4:
	- Moved at24c_eeprom_init_rom doc comment to the patch introducing the
      function (moved from patch 4/5 to patch 3/5).
	- Added review tags from Joel
v5:
    - Added review tags from Corey
    - Added tested-by tag from Ninad
    - Switched back to i2c_slave_new in eeprom_at24c.c
    - Switched back to "extern const size_t fby35_*_len" in aspeed_eeprom.h

NOTE: I rebased on the latest master and tlb exec segfaults in "Starting
kernel" for fby35-bmc: I'll make a bug report separately. I've kept the base on
7c9236d6d61f because of this.

Thanks,
Peter

Peter Delevoryas (5):
  hw/arm: Extract at24c_eeprom_init helper from Aspeed and Nuvoton
    boards
  hw/arm/aspeed: Replace aspeed_eeprom_init with at24c_eeprom_init
  hw/nvram/eeprom_at24c: Add init_rom field and at24c_eeprom_init_rom
    helper
  hw/arm/aspeed: Add aspeed_eeprom.c
  hw/nvram/eeprom_at24c: Make reset behavior more like hardware

 hw/arm/aspeed.c                 | 109 ++++++++++++++------------------
 hw/arm/aspeed_eeprom.c          |  82 ++++++++++++++++++++++++
 hw/arm/aspeed_eeprom.h          |  19 ++++++
 hw/arm/meson.build              |   1 +
 hw/arm/npcm7xx_boards.c         |  20 ++----
 hw/nvram/eeprom_at24c.c         |  58 +++++++++++++----
 include/hw/nvram/eeprom_at24c.h |  39 ++++++++++++
 7 files changed, 241 insertions(+), 87 deletions(-)
 create mode 100644 hw/arm/aspeed_eeprom.c
 create mode 100644 hw/arm/aspeed_eeprom.h
 create mode 100644 include/hw/nvram/eeprom_at24c.h

-- 
2.39.0