mirror of https://github.com/xemu-project/xemu.git
aspeed: Add an AST2600 eval board
Signed-off-by: Cédric Le Goater <clg@kaod.org> Reviewed-by: Joel Stanley <joel@jms.id.au> Message-id: 20191023130455.1347-3-clg@kaod.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
7811ce8185
commit
ccc2c41890
|
@ -88,6 +88,10 @@ struct AspeedBoardState {
|
||||||
/* Witherspoon hardware value: 0xF10AD216 (but use romulus definition) */
|
/* Witherspoon hardware value: 0xF10AD216 (but use romulus definition) */
|
||||||
#define WITHERSPOON_BMC_HW_STRAP1 ROMULUS_BMC_HW_STRAP1
|
#define WITHERSPOON_BMC_HW_STRAP1 ROMULUS_BMC_HW_STRAP1
|
||||||
|
|
||||||
|
/* AST2600 evb hardware value */
|
||||||
|
#define AST2600_EVB_HW_STRAP1 0x000000C0
|
||||||
|
#define AST2600_EVB_HW_STRAP2 0x00000003
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The max ram region is for firmwares that scan the address space
|
* The max ram region is for firmwares that scan the address space
|
||||||
* with load/store to guess how much RAM the SoC has.
|
* with load/store to guess how much RAM the SoC has.
|
||||||
|
@ -187,6 +191,8 @@ static void aspeed_board_init(MachineState *machine,
|
||||||
&error_abort);
|
&error_abort);
|
||||||
object_property_set_int(OBJECT(&bmc->soc), cfg->hw_strap1, "hw-strap1",
|
object_property_set_int(OBJECT(&bmc->soc), cfg->hw_strap1, "hw-strap1",
|
||||||
&error_abort);
|
&error_abort);
|
||||||
|
object_property_set_int(OBJECT(&bmc->soc), cfg->hw_strap2, "hw-strap2",
|
||||||
|
&error_abort);
|
||||||
object_property_set_int(OBJECT(&bmc->soc), cfg->num_cs, "num-cs",
|
object_property_set_int(OBJECT(&bmc->soc), cfg->num_cs, "num-cs",
|
||||||
&error_abort);
|
&error_abort);
|
||||||
object_property_set_int(OBJECT(&bmc->soc), machine->smp.cpus, "num-cpus",
|
object_property_set_int(OBJECT(&bmc->soc), machine->smp.cpus, "num-cpus",
|
||||||
|
@ -308,6 +314,12 @@ static void ast2500_evb_i2c_init(AspeedBoardState *bmc)
|
||||||
i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 11), "ds1338", 0x32);
|
i2c_create_slave(aspeed_i2c_get_bus(DEVICE(&soc->i2c), 11), "ds1338", 0x32);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void ast2600_evb_i2c_init(AspeedBoardState *bmc)
|
||||||
|
{
|
||||||
|
/* Start with some devices on our I2C busses */
|
||||||
|
ast2500_evb_i2c_init(bmc);
|
||||||
|
}
|
||||||
|
|
||||||
static void romulus_bmc_i2c_init(AspeedBoardState *bmc)
|
static void romulus_bmc_i2c_init(AspeedBoardState *bmc)
|
||||||
{
|
{
|
||||||
AspeedSoCState *soc = &bmc->soc;
|
AspeedSoCState *soc = &bmc->soc;
|
||||||
|
@ -455,6 +467,17 @@ static const AspeedBoardConfig aspeed_boards[] = {
|
||||||
.num_cs = 2,
|
.num_cs = 2,
|
||||||
.i2c_init = witherspoon_bmc_i2c_init,
|
.i2c_init = witherspoon_bmc_i2c_init,
|
||||||
.ram = 512 * MiB,
|
.ram = 512 * MiB,
|
||||||
|
}, {
|
||||||
|
.name = MACHINE_TYPE_NAME("ast2600-evb"),
|
||||||
|
.desc = "Aspeed AST2600 EVB (Cortex A7)",
|
||||||
|
.soc_name = "ast2600-a0",
|
||||||
|
.hw_strap1 = AST2600_EVB_HW_STRAP1,
|
||||||
|
.hw_strap2 = AST2600_EVB_HW_STRAP2,
|
||||||
|
.fmc_model = "w25q512jv",
|
||||||
|
.spi_model = "mx66u51235f",
|
||||||
|
.num_cs = 1,
|
||||||
|
.i2c_init = ast2600_evb_i2c_init,
|
||||||
|
.ram = 1 * GiB,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@ typedef struct AspeedBoardConfig {
|
||||||
const char *desc;
|
const char *desc;
|
||||||
const char *soc_name;
|
const char *soc_name;
|
||||||
uint32_t hw_strap1;
|
uint32_t hw_strap1;
|
||||||
|
uint32_t hw_strap2;
|
||||||
const char *fmc_model;
|
const char *fmc_model;
|
||||||
const char *spi_model;
|
const char *spi_model;
|
||||||
uint32_t num_cs;
|
uint32_t num_cs;
|
||||||
|
|
Loading…
Reference in New Issue