Hello, The following adds support for the AST2400 SMC controllers. The device model does not implement all the HW features, linear addressing mode is underway, but it should be complete enough for the OpenBMC distro.
Flash images can be grabbed here for testing : https://openpower.xyz/job/openbmc-build/distro=ubuntu,target=palmetto/lastSuccessfulBuild/artifact/images/palmetto/flash-palmetto https://openpower.xyz/job/openpower-op-build/distro=ubuntu,target=palmetto/lastSuccessfulBuild/artifact/images/palmetto.pnor Based on commit dc154b1db4b9. Changes Since v4: - included "ssi: change ssi_slave_init to be a realize op" which is a prereq - included more fixes from Paolo on m25p80 - fixed qtest command line and Makefile Changes Since v3: - fixed sabrelite_init() to use drive_get_next() - fixed typos - fixed multiple error handling when setting properties - fixed error logging - added extra register definitions - constantified a couple of routine arguments - sorted out what was need for migration - reworked the structures handling the IOs on the flash modules - moved mapping in SOC initialization Changes Since v2: - switched to a realize ops - moved the initialization of the flash modules under the palmetto platform - changed mkstemp() path prefix Changes Since v1: - included Paolo's fix adding a "drive" property to the flash device model - fixed drive definition in the test command line Thanks, C. Cédric Le Goater (5): ssi: change ssi_slave_init to be a realize ops ast2400: add SMC controllers (FMC and SPI) ast2400: add SPI flash slaves ast2400: create SPI flash slaves tests: add a m25p80 test Paolo Bonzini (4): m25p80: do not put iovec on the stack m25p80: avoid out of bounds accesses m25p80: change cur_addr to 32 bit integer m25p80: qdev-ify drive property hw/arm/ast2400.c | 39 ++- hw/arm/palmetto-bmc.c | 31 +++ hw/arm/sabrelite.c | 18 +- hw/arm/spitz.c | 12 +- hw/arm/tosa.c | 5 +- hw/arm/xilinx_zynq.c | 8 +- hw/arm/xlnx-ep108.c | 9 +- hw/arm/z2.c | 6 +- hw/block/m25p80.c | 76 +++--- hw/display/ads7846.c | 5 +- hw/display/ssd0323.c | 5 +- hw/microblaze/petalogix_ml605_mmu.c | 9 +- hw/misc/max111x.c | 12 +- hw/sd/ssi-sd.c | 9 +- hw/ssi/Makefile.objs | 1 + hw/ssi/aspeed_smc.c | 470 ++++++++++++++++++++++++++++++++++++ hw/ssi/ssi.c | 6 +- include/hw/arm/ast2400.h | 3 + include/hw/ssi/aspeed_smc.h | 100 ++++++++ include/hw/ssi/ssi.h | 2 +- tests/Makefile.include | 2 + tests/m25p80-test.c | 242 +++++++++++++++++++ 22 files changed, 985 insertions(+), 85 deletions(-) create mode 100644 hw/ssi/aspeed_smc.c create mode 100644 include/hw/ssi/aspeed_smc.h create mode 100644 tests/m25p80-test.c -- 2.1.4