[PATCH qemu 05/38] aspeed: add support for the romulus-bmc board
Andrew Jeffery
andrew at aj.id.au
Mon Nov 21 23:18:45 AEDT 2016
On Fri, 2016-11-18 at 15:21 +0100, Cédric Le Goater wrote:
> The Romulus machine is an OpenPOWER system with an AST2500 SoC for
> the BMC and a POWER9 chip for the host. It does not make much
> difference for qemu a part from the fact that the FMC controller has
> two SPI flash module slaves.
>
> > Signed-off-by: Cédric Le Goater <clg at kaod.org>
> ---
> hw/arm/aspeed.c | 45 +++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 45 insertions(+)
>
> diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c
> index 159d562e8912..aea73f79d92c 100644
> --- a/hw/arm/aspeed.c
> +++ b/hw/arm/aspeed.c
> @@ -41,8 +41,10 @@ typedef struct AspeedBoardConfig {
> enum {
> PALMETTO_BMC,
> AST2500_EVB,
> + ROMULUS_BMC,
> };
>
> +/* 0x120CE416 */
> #define PALMETTO_BMC_HW_STRAP1 ( \
> SCU_AST2400_HW_STRAP_DRAM_SIZE(DRAM_SIZE_256MB) | \
> SCU_AST2400_HW_STRAP_DRAM_CONFIG(2 /* DDR3 with CL=6, CWL=5 */) | \
> @@ -56,6 +58,7 @@ enum {
> SCU_HW_STRAP_VGA_SIZE_SET(VGA_16M_DRAM) | \
> SCU_AST2400_HW_STRAP_BOOT_MODE(AST2400_SPI_BOOT))
>
> +/* 0xF100C2E6 */
> #define AST2500_EVB_HW_STRAP1 (( \
> AST2500_HW_STRAP1_DEFAULTS | \
> SCU_AST2500_HW_STRAP_SPI_AUTOFETCH_ENABLE | \
> @@ -66,6 +69,17 @@ enum {
> SCU_HW_STRAP_MAC0_RGMII) & \
> ~SCU_HW_STRAP_2ND_BOOT_WDT)
>
> +/* 0xF10AE216 */
> +#define ROMULUS_BMC_HW_STRAP1 ( \
> + AST2500_HW_STRAP1_DEFAULTS | \
In the defaults it says we define 16MB VGA memory, but how do we strap
for that? It doesn't look like you can set bit 2 from the strapping
table, and if we're setting bit 3 as 0 then we're getting either 8 or
32MB of memory. Is there a typo in the datasheet?
> + SCU_AST2500_HW_STRAP_SPI_AUTOFETCH_ENABLE | \
> + SCU_AST2500_HW_STRAP_GPIO_STRAP_ENABLE | \
> + SCU_AST2500_HW_STRAP_UART_DEBUG | \
> + SCU_AST2500_HW_STRAP_DDR4_ENABLE | \
> + SCU_AST2500_HW_STRAP_ACPI_ENABLE | \
Hello? Is that you Jon??
Does anyone know why we're enabling ACPI on Romulus?
> + SCU_HW_STRAP_SPI_WIDTH | \
> + SCU_HW_STRAP_SPI_MODE(SCU_HW_STRAP_SPI_M_S_EN))
According to the schematic I have we're setting bit 27 (Fast reset mode
for ARM ICE debugger). But apparently that's not what's been read off
some existing Romulus?
> +
> static const AspeedBoardConfig aspeed_boards[] = {
> [PALMETTO_BMC] = {
> .soc_name = "ast2400-a0",
> @@ -79,6 +93,12 @@ static const AspeedBoardConfig aspeed_boards[] = {
> .fmc_model = "n25q256a",
> .spi_model = "mx25l25635e",
> },
> + [ROMULUS_BMC] = {
> + .soc_name = "ast2500-a1",
> + .hw_strap1 = ROMULUS_BMC_HW_STRAP1,
> + .fmc_model = "n25q256a",
> + .spi_model = "mx66l1g45g",
> + },
> };
>
> static void aspeed_board_init_flashes(AspeedSMCState *s, const char *flashtype,
> @@ -200,10 +220,35 @@ static const TypeInfo ast2500_evb_type = {
> .class_init = ast2500_evb_class_init,
> };
>
> +static void romulus_bmc_init(MachineState *machine)
> +{
> + aspeed_board_init(machine, &aspeed_boards[ROMULUS_BMC]);
> +}
> +
> +static void romulus_bmc_class_init(ObjectClass *oc, void *data)
> +{
> + MachineClass *mc = MACHINE_CLASS(oc);
> +
> + mc->desc = "OpenPOWER Romulus BMC (ARM1176)";
> + mc->init = romulus_bmc_init;
> + mc->max_cpus = 1;
> + mc->no_sdcard = 1;
> + mc->no_floppy = 1;
> + mc->no_cdrom = 1;
> + mc->no_parallel = 1;
> +}
> +
> +static const TypeInfo romulus_bmc_type = {
> + .name = MACHINE_TYPE_NAME("romulus-bmc"),
> + .parent = TYPE_MACHINE,
> + .class_init = romulus_bmc_class_init,
> +};
> +
> static void aspeed_machine_init(void)
> {
> type_register_static(&palmetto_bmc_type);
> type_register_static(&ast2500_evb_type);
> + type_register_static(&romulus_bmc_type);
> }
>
> type_init(aspeed_machine_init)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: This is a digitally signed message part
URL: <http://lists.ozlabs.org/pipermail/openbmc/attachments/20161121/a77c8b99/attachment.sig>
More information about the openbmc
mailing list