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