Browse Source
This commit moves the Romulus BMC machine implementation out of aspeed.c into a new standalone file aspeed_ast2500_romulus.c. The refactor continues the modularization of Aspeed platform definitions, separating each board into its own C source file to improve maintainability, readability, and reduce code clutter in aspeed.c. Key updates include: - Moved ROMULUS_BMC_HW_STRAP1 definition to the new file. - Moved romulus_bmc_i2c_init() and related I²C device setup. - Moved aspeed_machine_romulus_class_init() and type registration to aspeed_ast2500_romulus.c. - Added the new file to the build system (meson.build). - Removed all Romulus-specific code from aspeed.c. No functional changes. Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Link: https://lore.kernel.org/qemu-devel/20251104031325.146374-12-jamin_lin@aspeedtech.com Signed-off-by: Cédric Le Goater <clg@redhat.com>pull/307/head
committed by
Cédric Le Goater
3 changed files with 63 additions and 43 deletions
@ -0,0 +1,62 @@ |
|||
/*
|
|||
* OpenPOWER Romulus |
|||
* |
|||
* Copyright 2016 IBM Corp. |
|||
* |
|||
* SPDX-License-Identifier: GPL-2.0-or-later |
|||
*/ |
|||
|
|||
#include "qemu/osdep.h" |
|||
#include "qapi/error.h" |
|||
#include "hw/arm/machines-qom.h" |
|||
#include "hw/arm/aspeed.h" |
|||
#include "hw/arm/aspeed_soc.h" |
|||
|
|||
/* Romulus hardware value: 0xF10AD206 */ |
|||
#define ROMULUS_BMC_HW_STRAP1 ( \ |
|||
AST2500_HW_STRAP1_DEFAULTS | \ |
|||
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 | \ |
|||
SCU_HW_STRAP_SPI_MODE(SCU_HW_STRAP_SPI_MASTER)) |
|||
|
|||
static void romulus_bmc_i2c_init(AspeedMachineState *bmc) |
|||
{ |
|||
AspeedSoCState *soc = bmc->soc; |
|||
|
|||
/*
|
|||
* The romulus board expects Epson RX8900 I2C RTC but a ds1338 is |
|||
* good enough |
|||
*/ |
|||
i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 11), "ds1338", 0x32); |
|||
} |
|||
|
|||
static void aspeed_machine_romulus_class_init(ObjectClass *oc, |
|||
const void *data) |
|||
{ |
|||
MachineClass *mc = MACHINE_CLASS(oc); |
|||
AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc); |
|||
|
|||
mc->desc = "OpenPOWER Romulus BMC (ARM1176)"; |
|||
amc->soc_name = "ast2500-a1"; |
|||
amc->hw_strap1 = ROMULUS_BMC_HW_STRAP1; |
|||
amc->fmc_model = "n25q256a"; |
|||
amc->spi_model = "mx66l1g45g"; |
|||
amc->num_cs = 2; |
|||
amc->i2c_init = romulus_bmc_i2c_init; |
|||
mc->default_ram_size = 512 * MiB; |
|||
aspeed_machine_class_init_cpus_defaults(mc); |
|||
}; |
|||
|
|||
static const TypeInfo aspeed_ast2500_romulus_types[] = { |
|||
{ |
|||
.name = MACHINE_TYPE_NAME("romulus-bmc"), |
|||
.parent = TYPE_ASPEED_MACHINE, |
|||
.class_init = aspeed_machine_romulus_class_init, |
|||
.interfaces = arm_machine_interfaces, |
|||
} |
|||
}; |
|||
|
|||
DEFINE_TYPES(aspeed_ast2500_romulus_types) |
|||
Loading…
Reference in new issue