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. Notes : On the AST2500, I am still having a little issue under uboot which sets the vbar doing : mcr p15, 0, r0, c12, c0, 0 /* Set VBAR */ and this is trapped as an undefined instruction by qemu. Looking at hw/arm/helper.c, the VBAR register seems to be defined only for feature ARM_FEATURE_V7 (v7_cp_reginfo). The AST2500 SoC uses a arm1176 which defines ARM_FEATURE_EL3 which gives us a VBAR_EL3. According to th specs, the arm1176jzf-s has a Vector Base Address Register. So am I missing something in the board definition or is uboot being too optimistic on the cpu features ? This is confusing for me, some direction would be welcomed :) A part from that, the SoC behaves fine. Thanks, 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 (10): 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 controllers arm: add support for an ast2500 evaluation board palmetto-bmc: remove extra no_sdcard assignement hw/arm/Makefile.objs | 2 +- hw/arm/aspeed.c | 187 ++++++++++++++++++++++++++++++++ hw/arm/aspeed_soc.c | 251 +++++++++++++++++++++++++++++++++++++++++++ hw/arm/ast2400.c | 229 --------------------------------------- hw/arm/palmetto-bmc.c | 102 ------------------ hw/misc/aspeed_scu.c | 45 +++++++- hw/misc/aspeed_sdmc.c | 1 + include/hw/arm/aspeed_soc.h | 59 ++++++++++ include/hw/arm/ast2400.h | 44 -------- include/hw/misc/aspeed_scu.h | 193 +++++++++++++++++++++++++++++++++ 10 files changed, 736 insertions(+), 377 deletions(-) create mode 100644 hw/arm/aspeed.c create mode 100644 hw/arm/aspeed_soc.c delete mode 100644 hw/arm/ast2400.c 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