@@ -1429,6 +1429,42 @@ static void aspeed_minibmc_machine_ast1030_evb_class_init(ObjectClass *oc,
amc->macs_mask = 0;
}
+static void oby35_cl_i2c_init(AspeedMachineState *bmc)
+{
+ AspeedSoCState *soc = &bmc->soc;
+ I2CBus *i2c[14];
+ I2CBus *ssd[8];
+ int i;
+
+ for (i = 0; i < 14; i++) {
+ i2c[i] = aspeed_i2c_get_bus(&soc->i2c, i);
+ }
+ get_pca9548_channels(i2c[1], 0x71, ssd);
+
+ i2c_slave_create_simple(i2c[0], "fby35-cpld", 0x21);
+ i2c_slave_create_simple(i2c[1], "tmp105", 0x48);
+ i2c_slave_create_simple(i2c[1], "tmp105", 0x49);
+ i2c_slave_create_simple(i2c[1], "tmp105", 0x4a);
+ i2c_slave_create_simple(i2c[1], "adm1272", 0x40);
+ i2c_slave_create_simple(i2c[1], "tmp421", 0x4c);
+ i2c_slave_create_simple(i2c[4], "isl69259", 0x76);
+ i2c_slave_create_simple(i2c[4], "isl69259", 0x62);
+ i2c_slave_create_simple(i2c[4], "isl69259", 0x60);
+
+ for (int i = 0; i < 8; i++) {
+ i2c_slave_create_simple(ssd[i], "tmp105", 0x6a);
+ }
+}
+
+static void aspeed_machine_oby35_cl_class_init(ObjectClass *oc, void *data)
+{
+ MachineClass *mc = MACHINE_CLASS(oc);
+ AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc);
+
+ mc->desc = "Meta Platforms fby35 CraterLake BIC (Cortex-M4)";
+ amc->i2c_init = oby35_cl_i2c_init;
+}
+
static const TypeInfo aspeed_machine_types[] = {
{
.name = MACHINE_TYPE_NAME("palmetto-bmc"),
@@ -1494,6 +1530,10 @@ static const TypeInfo aspeed_machine_types[] = {
.name = MACHINE_TYPE_NAME("ast1030-evb"),
.parent = TYPE_ASPEED_MACHINE,
.class_init = aspeed_minibmc_machine_ast1030_evb_class_init,
+ }, {
+ .name = MACHINE_TYPE_NAME("oby35-cl"),
+ .parent = MACHINE_TYPE_NAME("ast1030-evb"),
+ .class_init = aspeed_machine_oby35_cl_class_init,
}, {
.name = TYPE_ASPEED_MACHINE,
.parent = TYPE_MACHINE,
Signed-off-by: Peter Delevoryas <pdel@fb.com> --- hw/arm/aspeed.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+)