@@ -37,12 +37,15 @@ typedef struct AspeedBoardConfig {
} AspeedBoardConfig;
enum {
- PALMETTO_BMC
+ PALMETTO_BMC,
+ AST2500_EVB
};
static const AspeedBoardConfig aspeed_boards[] = {
[PALMETTO_BMC] = { AST2400_HW_STRAP1, AST2400_A0_SILICON_REV,
AST2400_SDRAM_BASE },
+ [AST2500_EVB] = { AST2500_HW_STRAP1, AST2500_A1_SILICON_REV,
+ AST2500_SDRAM_BASE },
};
static void aspeed_init_flashes(AspeedSMCState *s, const char *flashtype,
@@ -130,9 +133,35 @@ static const TypeInfo palmetto_bmc_type = {
.class_init = palmetto_bmc_class_init,
};
+static void ast2500_evb_init(MachineState *machine)
+{
+ machine->cpu_model = "arm1176";
+ aspeed_init(machine, &aspeed_boards[AST2500_EVB]);
+}
+
+static void ast2500_evb_class_init(ObjectClass *oc, void *data)
+{
+ MachineClass *mc = MACHINE_CLASS(oc);
+
+ mc->desc = "Aspeed AST2500 EVB (ARM1176)";
+ mc->init = ast2500_evb_init;
+ mc->max_cpus = 1;
+ mc->no_sdcard = 1;
+ mc->no_floppy = 1;
+ mc->no_cdrom = 1;
+ mc->no_parallel = 1;
+}
+
+static const TypeInfo ast2500_evb_type = {
+ .name = MACHINE_TYPE_NAME("ast2500-evb"),
+ .parent = TYPE_MACHINE,
+ .class_init = ast2500_evb_class_init,
+};
+
static void aspeed_machine_init(void)
{
type_register_static(&palmetto_bmc_type);
+ type_register_static(&ast2500_evb_type);
}
type_init(aspeed_machine_init)
@@ -41,4 +41,9 @@ typedef struct AST2400State {
#define AST2400_SDRAM_BASE 0x40000000
+/*
+ * for Aspeed AST2500 SOC and higher
+ */
+#define AST2500_SDRAM_BASE 0x80000000
+
#endif /* AST2400_H */
Signed-off-by: Cédric Le Goater <clg@kaod.org> --- Changes since v1: - changed AST2500_EDK to AST2500_EVB - fixed white space issues - added AST2500_HW_STRAP1 hw/arm/aspeed.c | 31 ++++++++++++++++++++++++++++++- include/hw/arm/ast2400.h | 5 +++++ 2 files changed, 35 insertions(+), 1 deletion(-)