Hey everyone,
I'm sending a big patch series for this, but only the last commit is really
intended to be accepted right now. I'm just including the rest of them
because it depends on them for testing.
Klaus's changes include the multi-master stuff in hw/i2c/core.c, and the old
register mode slave mode support.
My series of patches includes a bunch of changes to eliminate most (if not
all) of the I2C errors reported by the fb OpenBIC firmware for fby35
CraterLake Bridge Interconnect (BIC) (shortname: oby35-cl) upon startup.
In particular, I needed to add the IC_DEVICE_ID to the isl voltage regulator
implementation, which required a fix to the pmbus implementation when
switching pages. We weren't resetting the buffer state when switching
pages there.
I also added a placeholder implementation of the PECI controller, that does
almost nothing, but doesn't produce errors.
I added the fby35-cpld, which oby35-cl queries using master-mode TX and RX
commands.
And finally, I added an "intel-me" device (Intel Management Engine) that
attempts to respond to the first IPMB message sent by the BIC. I used this
to test the final patch, which I actually want to merge, the I2C new
register DMA slave mode support.
All the patches except the last one can be ignored for now if you want,
again, I just included them for testing purposes.
The final patch is pretty rough, but I wanted to start the review instead of
waiting too long. I expect the interrupt handling part will be
the main blocker.
Thanks,
Peter
Klaus Jensen (3):
hw/i2c: support multiple masters
hw/i2c: add asynchronous send
hw/i2c/aspeed: add slave device in old register mode
Peter Delevoryas (11):
aspeed: i2c: Fix DMA len write-enable bit handling
aspeed: i2c: Fix R_I2CD_FUN_CTRL reference
aspeed: i2c: Fix MASTER_EN missing error message
aspeed: Add PECI controller
hw/misc: Add fby35-cpld
pmbus: Reset out buf after switching pages
pmbus: Add read-only IC_DEVICE_ID support
aspeed: Add oby35-cl machine
hw/misc: Add intel-me
aspeed: Add intel-me on i2c6 instead of BMC
aspeed: Add I2C new register DMA slave mode support
hw/arm/aspeed.c | 42 ++++++
hw/arm/aspeed_ast10x0.c | 11 ++
hw/arm/pxa2xx.c | 2 +
hw/display/sii9022.c | 2 +
hw/display/ssd0303.c | 2 +
hw/i2c/aspeed_i2c.c | 234 +++++++++++++++++++++++++++----
hw/i2c/core.c | 70 ++++++++-
hw/i2c/pmbus_device.c | 6 +
hw/i2c/smbus_slave.c | 4 +
hw/i2c/trace-events | 2 +
hw/misc/aspeed_peci.c | 225 +++++++++++++++++++++++++++++
hw/misc/fby35_cpld.c | 137 ++++++++++++++++++
hw/misc/intel_me.c | 176 +++++++++++++++++++++++
hw/misc/meson.build | 5 +-
hw/nvram/eeprom_at24c.c | 2 +
hw/sensor/isl_pmbus_vr.c | 30 ++++
hw/sensor/lsm303dlhc_mag.c | 2 +
include/hw/arm/aspeed_soc.h | 3 +
include/hw/i2c/aspeed_i2c.h | 11 ++
include/hw/i2c/i2c.h | 30 ++++
include/hw/i2c/pmbus_device.h | 1 +
include/hw/misc/aspeed_peci.h | 34 +++++
include/hw/sensor/isl_pmbus_vr.h | 1 +
23 files changed, 1002 insertions(+), 30 deletions(-)
create mode 100644 hw/misc/aspeed_peci.c
create mode 100644 hw/misc/fby35_cpld.c
create mode 100644 hw/misc/intel_me.c
create mode 100644 include/hw/misc/aspeed_peci.h