The AST2500 SoC being very close to the AST2400 SoC, the goal of the changes below is to modify the existing platform palmetto-bmc and the AST2400 SoC to take into account the small differences and avoid code duplication. This is mostly inspired by the realview and the rpi2 platforms.
First patches rework the 'palmetto-bmc' platform and the 'ast2400' SoC models to provide room to other platforms and SoCs which have a common design. The last patches add support for the new AST2500 SoC in the required controller (SDMC and SCU) and define a new platform for an Aspeed evaluation board. In v5, I have included a couple of improvements, suggested by Peter, which let the Memory Controller decide if the setting of RAM size is correct. The value is propagated to the controller through a property. Thanks, C. Changes in v5 are : - fixed AspeedSoCClass definition which was using a DeviceState. This was coring on 32bit systems !! - sdmc improvements Changes in v4 are : - used -M to detect file renames - fixed trailing comma in enums - fixed brackets around macro parameters - use '-1' for board ID to define device-tree-only board. Changes in v3 are : - ast2400.c file rename - added a AspeedSocClass for each supported SoC - the silicon-rev and the cpu model are now constants at the SoC level - more precise definition of the hardware strapping register Changes in v2 are : - palmetto_bmc.c file rename - SCU macros to define the hardware strapping register Cédric Le Goater (14): ast2400: rename the Aspeed SoC files to aspeed_soc ast2400: replace ast2400 with aspeed_soc aspeed-soc: provide a framework to add new SoCs palmetto-bmc: rename the Aspeed board file to aspeed.c palmetto-bmc: replace palmetto_bmc with aspeed palmetto-bmc: add board specific configuration hw/misc: use macros to define hw-strap1 register on the AST2400 Aspeed SoC aspeed: add a ast2500 SoC and support to the SCU and SDMC controllers arm: add support for an ast2500 evaluation board palmetto-bmc: remove extra no_sdcard assignement aspeed: calculate the RAM size bits at realize time aspeed: use error_report instead of LOG_GUEST_ERROR aspeed: add a ram_size property to the memory controller aspeed: allocate RAM after the memory controller has checked the size hw/arm/Makefile.objs | 2 +- hw/arm/aspeed.c | 197 +++++++++++++++++++++++++++++++++++++ hw/arm/{ast2400.c => aspeed_soc.c} | 131 ++++++++++++++---------- hw/arm/palmetto-bmc.c | 102 ------------------- hw/misc/aspeed_scu.c | 45 ++++++++- hw/misc/aspeed_sdmc.c | 45 ++++++--- include/hw/arm/aspeed_soc.h | 59 +++++++++++ include/hw/arm/ast2400.h | 44 --------- include/hw/misc/aspeed_scu.h | 193 ++++++++++++++++++++++++++++++++++++ include/hw/misc/aspeed_sdmc.h | 2 + 10 files changed, 605 insertions(+), 215 deletions(-) create mode 100644 hw/arm/aspeed.c rename hw/arm/{ast2400.c => aspeed_soc.c} (59%) delete mode 100644 hw/arm/palmetto-bmc.c create mode 100644 include/hw/arm/aspeed_soc.h delete mode 100644 include/hw/arm/ast2400.h -- 2.7.4