hw/arm/aspeed.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+)
This patch support Yosemitev2 in QEMU environment.
Signed-off-by: Karthikeyan Pasupathi <pkarthikeyan1509@gmail.com>
---
hw/arm/aspeed.c | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c
index 27dda58338..74dc07190d 100644
--- a/hw/arm/aspeed.c
+++ b/hw/arm/aspeed.c
@@ -536,6 +536,14 @@ static void create_pca9552(AspeedSoCState *soc, int bus_id, int addr)
TYPE_PCA9552, addr);
}
+static void fb_bmc_i2c_init(AspeedMachineState *bmc)
+{
+ AspeedSoCState *soc = &bmc->soc;
+
+ /* The FB board AST2500 compatible with ds1338 */
+ i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 11), "ds1338", 0x32);
+}
+
static void sonorapass_bmc_i2c_init(AspeedMachineState *bmc)
{
AspeedSoCState *soc = &bmc->soc;
@@ -1191,6 +1199,24 @@ static void aspeed_machine_romulus_class_init(ObjectClass *oc, void *data)
aspeed_soc_num_cpus(amc->soc_name);
};
+static void aspeed_machine_fbyv2_class_init(ObjectClass *oc, void *data)
+{
+ MachineClass *mc = MACHINE_CLASS(oc);
+ AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
+
+ mc->desc = "Facebook YosemiteV2 BMC (ARM1176)";
+ amc->soc_name = "ast2500-a1";
+ amc->hw_strap1 = AST2500_EVB_HW_STRAP1;
+ amc->hw_strap2 = 0;
+ amc->fmc_model = "n25q256a";
+ amc->spi_model = "mx25l25635e";
+ amc->num_cs = 2;
+ amc->i2c_init = fb_bmc_i2c_init;
+ mc->default_ram_size = 512 * MiB;
+ mc->default_cpus = mc->min_cpus = mc->max_cpus =
+ aspeed_soc_num_cpus(amc->soc_name);
+};
+
static void aspeed_machine_sonorapass_class_init(ObjectClass *oc, void *data)
{
MachineClass *mc = MACHINE_CLASS(oc);
@@ -1554,6 +1580,10 @@ static const TypeInfo aspeed_machine_types[] = {
.name = MACHINE_TYPE_NAME("sonorapass-bmc"),
.parent = TYPE_ASPEED_MACHINE,
.class_init = aspeed_machine_sonorapass_class_init,
+ }, {
+ .name = MACHINE_TYPE_NAME("fbyv2-bmc"),
+ .parent = TYPE_ASPEED_MACHINE,
+ .class_init = aspeed_machine_fbyv2_class_init,
}, {
.name = MACHINE_TYPE_NAME("witherspoon-bmc"),
.parent = TYPE_ASPEED_MACHINE,
--
2.25.1
Hello,
On 2/10/23 13:50, Karthikeyan Pasupathi wrote:
> This patch support Yosemitev2 in QEMU environment.
It looks OK apart from the naming. Could we call it "yosemite2-bmc" instead ?
Thanks,
C.
> Signed-off-by: Karthikeyan Pasupathi <pkarthikeyan1509@gmail.com>
> ---
> hw/arm/aspeed.c | 30 ++++++++++++++++++++++++++++++
> 1 file changed, 30 insertions(+)
>
> diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c
> index 27dda58338..74dc07190d 100644
> --- a/hw/arm/aspeed.c
> +++ b/hw/arm/aspeed.c
> @@ -536,6 +536,14 @@ static void create_pca9552(AspeedSoCState *soc, int bus_id, int addr)
> TYPE_PCA9552, addr);
> }
>
> +static void fb_bmc_i2c_init(AspeedMachineState *bmc)
The same routine name is proposed in the tiogapass patch :
https://lore.kernel.org/qemu-devel/20230210122641.837614-1-pkarthikeyan1509@gmail.com/
Do you have plans to populate the I2C buses differently ?
> +{
> + AspeedSoCState *soc = &bmc->soc;
> +
> + /* The FB board AST2500 compatible with ds1338 */
> + i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 11), "ds1338", 0x32);
> +}
> +
> static void sonorapass_bmc_i2c_init(AspeedMachineState *bmc)
> {
> AspeedSoCState *soc = &bmc->soc;
> @@ -1191,6 +1199,24 @@ static void aspeed_machine_romulus_class_init(ObjectClass *oc, void *data)
> aspeed_soc_num_cpus(amc->soc_name);
> };
>
> +static void aspeed_machine_fbyv2_class_init(ObjectClass *oc, void *data)
> +{
> + MachineClass *mc = MACHINE_CLASS(oc);
> + AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
> +
> + mc->desc = "Facebook YosemiteV2 BMC (ARM1176)";
> + amc->soc_name = "ast2500-a1";
> + amc->hw_strap1 = AST2500_EVB_HW_STRAP1;
> + amc->hw_strap2 = 0;
> + amc->fmc_model = "n25q256a";
> + amc->spi_model = "mx25l25635e";
same as tiogapass ?
> + amc->num_cs = 2;
> + amc->i2c_init = fb_bmc_i2c_init;
> + mc->default_ram_size = 512 * MiB;
The RAM size is the only difference with the tiogapass and one could use the
-m machine option instead.
Thanks,
C.
> + mc->default_cpus = mc->min_cpus = mc->max_cpus =
> + aspeed_soc_num_cpus(amc->soc_name);
> +};
> +
> static void aspeed_machine_sonorapass_class_init(ObjectClass *oc, void *data)
> {
> MachineClass *mc = MACHINE_CLASS(oc);
> @@ -1554,6 +1580,10 @@ static const TypeInfo aspeed_machine_types[] = {
> .name = MACHINE_TYPE_NAME("sonorapass-bmc"),
> .parent = TYPE_ASPEED_MACHINE,
> .class_init = aspeed_machine_sonorapass_class_init,
> + }, {
> + .name = MACHINE_TYPE_NAME("fbyv2-bmc"),
> + .parent = TYPE_ASPEED_MACHINE,
> + .class_init = aspeed_machine_fbyv2_class_init,
> }, {
> .name = MACHINE_TYPE_NAME("witherspoon-bmc"),
> .parent = TYPE_ASPEED_MACHINE,
© 2016 - 2026 Red Hat, Inc.