* [PATCH qemu v5] aspeed add montblanc bmc reference from fuji @ 2023-07-04 11:06 ~ssinprem 2023-07-04 11:19 ` Cédric Le Goater 2023-07-04 20:18 ` Michael Tokarev 0 siblings, 2 replies; 8+ messages in thread From: ~ssinprem @ 2023-07-04 11:06 UTC (permalink / raw) To: qemu-devel, qemu-arm, clg, peter.maydell Cc: ssinprem, clg, peter.maydell, andrew, joel, qemu-stable, srikanth, ssumet, thangavelu.v, kgengan, anandaramanv From: Sittisak Sinprem <ssinprem@celestica.com> - I2C list follow I2C Tree v1.6 20230320 - fru eeprom data use FB FRU format version 4 Signed-off-by: Sittisak Sinprem <ssinprem@celestica.com> --- docs/system/arm/aspeed.rst | 1 + hw/arm/aspeed.c | 65 ++++++++++++++++++++++++++++++++++++++ hw/arm/aspeed_eeprom.c | 50 +++++++++++++++++++++++++++++ hw/arm/aspeed_eeprom.h | 7 ++++ 4 files changed, 123 insertions(+) diff --git a/docs/system/arm/aspeed.rst b/docs/system/arm/aspeed.rst index 80538422a1..5e0824f48b 100644 --- a/docs/system/arm/aspeed.rst +++ b/docs/system/arm/aspeed.rst @@ -33,6 +33,7 @@ AST2600 SoC based machines : - ``tacoma-bmc`` OpenPOWER Witherspoon POWER9 AST2600 BMC - ``rainier-bmc`` IBM Rainier POWER10 BMC - ``fuji-bmc`` Facebook Fuji BMC +- ``montblanc-bmc`` Facebook Montblanc BMC - ``bletchley-bmc`` Facebook Bletchley BMC - ``fby35-bmc`` Facebook fby35 BMC - ``qcom-dc-scm-v1-bmc`` Qualcomm DC-SCM V1 BMC diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c index 9fca644d92..bbb7a3392c 100644 --- a/hw/arm/aspeed.c +++ b/hw/arm/aspeed.c @@ -189,6 +189,10 @@ struct AspeedMachineState { #define FUJI_BMC_HW_STRAP1 0x00000000 #define FUJI_BMC_HW_STRAP2 0x00000000 +/* Montblanc hardware value */ +#define MONTBLANC_BMC_HW_STRAP1 0x00000000 +#define MONTBLANC_BMC_HW_STRAP2 0x00000000 + /* Bletchley hardware value */ /* TODO: Leave same as EVB for now. */ #define BLETCHLEY_BMC_HW_STRAP1 AST2600_EVB_HW_STRAP1 @@ -925,6 +929,41 @@ static void fuji_bmc_i2c_init(AspeedMachineState *bmc) } } +static void montblanc_bmc_i2c_init(AspeedMachineState *bmc) +{ + AspeedSoCState *soc = &bmc->soc; + I2CBus *i2c[16] = {}; + + for (int i = 0; i < 16; i++) { + i2c[i] = aspeed_i2c_get_bus(&soc->i2c, i); + } + + /* Ref from Minipack3_I2C_Tree_V1.6 20230320 */ + at24c_eeprom_init_rom(i2c[3], 0x56, 8192, montblanc_scm_fruid, + montblanc_scm_fruid_len); + at24c_eeprom_init_rom(i2c[6], 0x53, 8192, montblanc_fcm_fruid, + montblanc_fcm_fruid_len); + + /* CPLD and FPGA */ + at24c_eeprom_init(i2c[1], 0x35, 256); /* SCM CPLD */ + at24c_eeprom_init(i2c[5], 0x35, 256); /* COMe CPLD TODO: need to update */ + at24c_eeprom_init(i2c[12], 0x60, 256); /* MCB PWR CPLD */ + at24c_eeprom_init(i2c[13], 0x35, 256); /* IOB FPGA */ + + /* on BMC board */ + at24c_eeprom_init_rom(i2c[8], 0x51, 8192, montblanc_bmc_fruid, + montblanc_bmc_fruid_len); /* BMC EEPROM */ + i2c_slave_create_simple(i2c[8], TYPE_LM75, 0x48); /* Thermal Sensor */ + + /* COMe Sensor/EEPROM */ + at24c_eeprom_init(i2c[0], 0x56, 16384); /* FRU EEPROM */ + i2c_slave_create_simple(i2c[0], TYPE_LM75, 0x48); /* INLET Sensor */ + i2c_slave_create_simple(i2c[0], TYPE_LM75, 0x4A); /* OUTLET Sensor */ + + /* It expects a pca9555 but a pca9552 is compatible */ + create_pca9552(soc, 4, 0x27); +} + #define TYPE_TMP421 "tmp421" static void bletchley_bmc_i2c_init(AspeedMachineState *bmc) @@ -1452,6 +1491,28 @@ static void aspeed_machine_fuji_class_init(ObjectClass *oc, void *data) aspeed_soc_num_cpus(amc->soc_name); }; +#define MONTBLANC_BMC_RAM_SIZE ASPEED_RAM_SIZE(2 * GiB) + +static void aspeed_machine_montblanc_class_init(ObjectClass *oc, void *data) +{ + MachineClass *mc = MACHINE_CLASS(oc); + AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc); + + mc->desc = "Facebook Montblanc BMC (Cortex-A7)"; + amc->soc_name = "ast2600-a3"; + amc->hw_strap1 = MONTBLANC_BMC_HW_STRAP1; + amc->hw_strap2 = MONTBLANC_BMC_HW_STRAP2; + amc->fmc_model = "mx66l1g45g"; + amc->spi_model = "mx66l1g45g"; + amc->num_cs = 2; + amc->macs_mask = ASPEED_MAC3_ON; + amc->i2c_init = montblanc_bmc_i2c_init; + amc->uart_default = ASPEED_DEV_UART1; + mc->default_ram_size = MONTBLANC_BMC_RAM_SIZE; + mc->default_cpus = mc->min_cpus = mc->max_cpus = + aspeed_soc_num_cpus(amc->soc_name); +}; + #define BLETCHLEY_BMC_RAM_SIZE ASPEED_RAM_SIZE(2 * GiB) static void aspeed_machine_bletchley_class_init(ObjectClass *oc, void *data) @@ -1703,6 +1764,10 @@ static const TypeInfo aspeed_machine_types[] = { .name = MACHINE_TYPE_NAME("fuji-bmc"), .parent = TYPE_ASPEED_MACHINE, .class_init = aspeed_machine_fuji_class_init, + }, { + .name = MACHINE_TYPE_NAME("montblanc-bmc"), + .parent = TYPE_ASPEED_MACHINE, + .class_init = aspeed_machine_montblanc_class_init, }, { .name = MACHINE_TYPE_NAME("bletchley-bmc"), .parent = TYPE_ASPEED_MACHINE, diff --git a/hw/arm/aspeed_eeprom.c b/hw/arm/aspeed_eeprom.c index ace5266cec..8cc73f83dc 100644 --- a/hw/arm/aspeed_eeprom.c +++ b/hw/arm/aspeed_eeprom.c @@ -161,6 +161,53 @@ const uint8_t rainier_bmc_fruid[] = { 0x31, 0x50, 0x46, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, }; +/* Montblanc BMC FRU */ +const uint8_t montblanc_scm_fruid[] = { + 0xfb, 0xfb, 0x04, 0xff, 0x01, 0x0d, 0x4d, 0x49, 0x4e, 0x49, 0x50, 0x41, + 0x43, 0x4b, 0x33, 0x5f, 0x53, 0x43, 0x4d, 0x02, 0x08, 0x32, 0x30, 0x30, + 0x30, 0x32, 0x39, 0x34, 0x35, 0x04, 0x0c, 0x31, 0x33, 0x32, 0x30, 0x30, + 0x30, 0x31, 0x36, 0x34, 0x30, 0x31, 0x20, 0x05, 0x0c, 0x31, 0x33, 0x31, + 0x30, 0x30, 0x30, 0x31, 0x32, 0x37, 0x30, 0x31, 0x20, 0x06, 0x0c, 0x52, + 0x33, 0x32, 0x31, 0x34, 0x47, 0x30, 0x30, 0x30, 0x33, 0x30, 0x31, 0x07, + 0x0d, 0x41, 0x30, 0x33, 0x31, 0x33, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, + 0x58, 0x58, 0x08, 0x01, 0x01, 0x09, 0x01, 0x00, 0x0a, 0x01, 0x00, 0x0b, + 0x0d, 0x4d, 0x32, 0x32, 0x31, 0x33, 0x32, 0x33, 0x31, 0x37, 0x30, 0x30, + 0x30, 0x32, 0x0c, 0x03, 0x43, 0x4c, 0x53, 0x0d, 0x08, 0x32, 0x30, 0x32, + 0x33, 0x30, 0x35, 0x30, 0x31, 0x0e, 0x03, 0x57, 0x55, 0x53, 0x0f, 0x03, + 0x43, 0x54, 0x48, 0x10, 0x06, 0x01, 0x00, 0x00, 0x91, 0xdb, 0xb4, 0x13, + 0x03, 0x53, 0x43, 0x4d, 0xfa, 0x02, 0x02, 0x61, +}; + +const uint8_t montblanc_fcm_fruid[] = { + 0xfb, 0xfb, 0x04, 0xff, 0x01, 0x0d, 0x4d, 0x49, 0x4e, 0x49, 0x50, 0x41, + 0x43, 0x4b, 0x33, 0x5f, 0x46, 0x43, 0x42, 0x02, 0x08, 0x33, 0x30, 0x30, + 0x30, 0x30, 0x31, 0x36, 0x31, 0x04, 0x0c, 0x31, 0x33, 0x32, 0x30, 0x30, + 0x30, 0x31, 0x36, 0x33, 0x30, 0x31, 0x20, 0x05, 0x0c, 0x31, 0x33, 0x31, + 0x30, 0x30, 0x30, 0x31, 0x33, 0x30, 0x30, 0x31, 0x20, 0x06, 0x0c, 0x52, + 0x33, 0x32, 0x31, 0x34, 0x47, 0x30, 0x30, 0x31, 0x32, 0x30, 0x31, 0x07, + 0x0d, 0x41, 0x31, 0x32, 0x31, 0x32, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, + 0x58, 0x58, 0x08, 0x01, 0x01, 0x09, 0x01, 0x00, 0x0a, 0x01, 0x00, 0x0b, + 0x0d, 0x46, 0x35, 0x30, 0x31, 0x33, 0x32, 0x33, 0x31, 0x37, 0x30, 0x30, + 0x30, 0x35, 0x0c, 0x03, 0x43, 0x4c, 0x53, 0x0d, 0x08, 0x32, 0x30, 0x32, + 0x33, 0x30, 0x35, 0x30, 0x31, 0x0e, 0x03, 0x57, 0x55, 0x53, 0x0f, 0x03, + 0x43, 0x54, 0x48, 0x10, 0x06, 0x02, 0x00, 0x00, 0x91, 0xdb, 0xb4, 0x11, + 0x06, 0x03, 0x00, 0x00, 0x91, 0xdb, 0xb4, 0x12, 0x02, 0x8a, 0x00, 0x13, + 0x03, 0x46, 0x43, 0x42, 0xfa, 0x02, 0x50, 0x47, +}; + +const uint8_t montblanc_bmc_fruid[] = { + 0xfb, 0xfb, 0x04, 0xff, 0x01, 0x0d, 0x4d, 0x49, 0x4e, 0x49, 0x50, 0x41, + 0x43, 0x4b, 0x33, 0x5f, 0x42, 0x4d, 0x43, 0x04, 0x0c, 0x31, 0x33, 0x32, + 0x30, 0x30, 0x30, 0x31, 0x33, 0x36, 0x30, 0x31, 0x20, 0x05, 0x0c, 0x31, + 0x33, 0x31, 0x30, 0x30, 0x30, 0x30, 0x38, 0x36, 0x30, 0x35, 0x20, 0x06, + 0x0c, 0x52, 0x33, 0x30, 0x39, 0x37, 0x47, 0x30, 0x30, 0x30, 0x32, 0x30, + 0x37, 0x07, 0x0d, 0x42, 0x30, 0x32, 0x37, 0x34, 0x58, 0x58, 0x58, 0x58, + 0x58, 0x58, 0x58, 0x58, 0x08, 0x01, 0x04, 0x09, 0x01, 0x00, 0x0a, 0x01, + 0x00, 0x0c, 0x03, 0x43, 0x4c, 0x53, 0x0d, 0x08, 0x32, 0x30, 0x32, 0x33, + 0x30, 0x35, 0x30, 0x31, 0x0e, 0x03, 0x57, 0x55, 0x53, 0x0f, 0x03, 0x43, + 0x54, 0x48, 0x13, 0x03, 0x42, 0x4d, 0x43, 0xfa, 0x02, 0xef, 0xba, +}; + const size_t tiogapass_bmc_fruid_len = sizeof(tiogapass_bmc_fruid); const size_t fby35_nic_fruid_len = sizeof(fby35_nic_fruid); const size_t fby35_bb_fruid_len = sizeof(fby35_bb_fruid); @@ -168,3 +215,6 @@ const size_t fby35_bmc_fruid_len = sizeof(fby35_bmc_fruid); const size_t yosemitev2_bmc_fruid_len = sizeof(yosemitev2_bmc_fruid); const size_t rainier_bb_fruid_len = sizeof(rainier_bb_fruid); const size_t rainier_bmc_fruid_len = sizeof(rainier_bmc_fruid); +const size_t montblanc_scm_fruid_len = sizeof(montblanc_scm_fruid); +const size_t montblanc_fcm_fruid_len = sizeof(montblanc_fcm_fruid); +const size_t montblanc_bmc_fruid_len = sizeof(montblanc_bmc_fruid); diff --git a/hw/arm/aspeed_eeprom.h b/hw/arm/aspeed_eeprom.h index bbf9e54365..b8fbdd0734 100644 --- a/hw/arm/aspeed_eeprom.h +++ b/hw/arm/aspeed_eeprom.h @@ -27,4 +27,11 @@ extern const size_t rainier_bb_fruid_len; extern const uint8_t rainier_bmc_fruid[]; extern const size_t rainier_bmc_fruid_len; +extern const uint8_t montblanc_scm_fruid[]; +extern const uint8_t montblanc_fcm_fruid[]; +extern const uint8_t montblanc_bmc_fruid[]; +extern const size_t montblanc_scm_fruid_len; +extern const size_t montblanc_fcm_fruid_len; +extern const size_t montblanc_bmc_fruid_len; + #endif -- 2.38.5 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH qemu v5] aspeed add montblanc bmc reference from fuji 2023-07-04 11:06 [PATCH qemu v5] aspeed add montblanc bmc reference from fuji ~ssinprem @ 2023-07-04 11:19 ` Cédric Le Goater 2023-07-04 13:27 ` Sittisak Sinprem 2023-07-04 20:18 ` Michael Tokarev 1 sibling, 1 reply; 8+ messages in thread From: Cédric Le Goater @ 2023-07-04 11:19 UTC (permalink / raw) To: ~ssinprem, qemu-devel, qemu-arm, peter.maydell Cc: andrew, Joel Stanley, qemu-stable, srikanth, ssumet, thangavelu.v, kgengan, anandaramanv On 7/4/23 13:06, ~ssinprem wrote: > From: Sittisak Sinprem <ssinprem@celestica.com> > > - I2C list follow I2C Tree v1.6 20230320 > - fru eeprom data use FB FRU format version 4 > > Signed-off-by: Sittisak Sinprem <ssinprem@celestica.com> You shoot too fast :) Please add some description for the EEPROM contents. What they enable when the OS/FW boots is good to know for QEMU. Thanks, C. > --- > docs/system/arm/aspeed.rst | 1 + > hw/arm/aspeed.c | 65 ++++++++++++++++++++++++++++++++++++++ > hw/arm/aspeed_eeprom.c | 50 +++++++++++++++++++++++++++++ > hw/arm/aspeed_eeprom.h | 7 ++++ > 4 files changed, 123 insertions(+) > > diff --git a/docs/system/arm/aspeed.rst b/docs/system/arm/aspeed.rst > index 80538422a1..5e0824f48b 100644 > --- a/docs/system/arm/aspeed.rst > +++ b/docs/system/arm/aspeed.rst > @@ -33,6 +33,7 @@ AST2600 SoC based machines : > - ``tacoma-bmc`` OpenPOWER Witherspoon POWER9 AST2600 BMC > - ``rainier-bmc`` IBM Rainier POWER10 BMC > - ``fuji-bmc`` Facebook Fuji BMC > +- ``montblanc-bmc`` Facebook Montblanc BMC > - ``bletchley-bmc`` Facebook Bletchley BMC > - ``fby35-bmc`` Facebook fby35 BMC > - ``qcom-dc-scm-v1-bmc`` Qualcomm DC-SCM V1 BMC > diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c > index 9fca644d92..bbb7a3392c 100644 > --- a/hw/arm/aspeed.c > +++ b/hw/arm/aspeed.c > @@ -189,6 +189,10 @@ struct AspeedMachineState { > #define FUJI_BMC_HW_STRAP1 0x00000000 > #define FUJI_BMC_HW_STRAP2 0x00000000 > > +/* Montblanc hardware value */ > +#define MONTBLANC_BMC_HW_STRAP1 0x00000000 > +#define MONTBLANC_BMC_HW_STRAP2 0x00000000 > + > /* Bletchley hardware value */ > /* TODO: Leave same as EVB for now. */ > #define BLETCHLEY_BMC_HW_STRAP1 AST2600_EVB_HW_STRAP1 > @@ -925,6 +929,41 @@ static void fuji_bmc_i2c_init(AspeedMachineState *bmc) > } > } > > +static void montblanc_bmc_i2c_init(AspeedMachineState *bmc) > +{ > + AspeedSoCState *soc = &bmc->soc; > + I2CBus *i2c[16] = {}; > + > + for (int i = 0; i < 16; i++) { > + i2c[i] = aspeed_i2c_get_bus(&soc->i2c, i); > + } > + > + /* Ref from Minipack3_I2C_Tree_V1.6 20230320 */ > + at24c_eeprom_init_rom(i2c[3], 0x56, 8192, montblanc_scm_fruid, > + montblanc_scm_fruid_len); > + at24c_eeprom_init_rom(i2c[6], 0x53, 8192, montblanc_fcm_fruid, > + montblanc_fcm_fruid_len); > + > + /* CPLD and FPGA */ > + at24c_eeprom_init(i2c[1], 0x35, 256); /* SCM CPLD */ > + at24c_eeprom_init(i2c[5], 0x35, 256); /* COMe CPLD TODO: need to update */ > + at24c_eeprom_init(i2c[12], 0x60, 256); /* MCB PWR CPLD */ > + at24c_eeprom_init(i2c[13], 0x35, 256); /* IOB FPGA */ > + > + /* on BMC board */ > + at24c_eeprom_init_rom(i2c[8], 0x51, 8192, montblanc_bmc_fruid, > + montblanc_bmc_fruid_len); /* BMC EEPROM */ > + i2c_slave_create_simple(i2c[8], TYPE_LM75, 0x48); /* Thermal Sensor */ > + > + /* COMe Sensor/EEPROM */ > + at24c_eeprom_init(i2c[0], 0x56, 16384); /* FRU EEPROM */ > + i2c_slave_create_simple(i2c[0], TYPE_LM75, 0x48); /* INLET Sensor */ > + i2c_slave_create_simple(i2c[0], TYPE_LM75, 0x4A); /* OUTLET Sensor */ > + > + /* It expects a pca9555 but a pca9552 is compatible */ > + create_pca9552(soc, 4, 0x27); > +} > + > #define TYPE_TMP421 "tmp421" > > static void bletchley_bmc_i2c_init(AspeedMachineState *bmc) > @@ -1452,6 +1491,28 @@ static void aspeed_machine_fuji_class_init(ObjectClass *oc, void *data) > aspeed_soc_num_cpus(amc->soc_name); > }; > > +#define MONTBLANC_BMC_RAM_SIZE ASPEED_RAM_SIZE(2 * GiB) > + > +static void aspeed_machine_montblanc_class_init(ObjectClass *oc, void *data) > +{ > + MachineClass *mc = MACHINE_CLASS(oc); > + AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc); > + > + mc->desc = "Facebook Montblanc BMC (Cortex-A7)"; > + amc->soc_name = "ast2600-a3"; > + amc->hw_strap1 = MONTBLANC_BMC_HW_STRAP1; > + amc->hw_strap2 = MONTBLANC_BMC_HW_STRAP2; > + amc->fmc_model = "mx66l1g45g"; > + amc->spi_model = "mx66l1g45g"; > + amc->num_cs = 2; > + amc->macs_mask = ASPEED_MAC3_ON; > + amc->i2c_init = montblanc_bmc_i2c_init; > + amc->uart_default = ASPEED_DEV_UART1; > + mc->default_ram_size = MONTBLANC_BMC_RAM_SIZE; > + mc->default_cpus = mc->min_cpus = mc->max_cpus = > + aspeed_soc_num_cpus(amc->soc_name); > +}; > + > #define BLETCHLEY_BMC_RAM_SIZE ASPEED_RAM_SIZE(2 * GiB) > > static void aspeed_machine_bletchley_class_init(ObjectClass *oc, void *data) > @@ -1703,6 +1764,10 @@ static const TypeInfo aspeed_machine_types[] = { > .name = MACHINE_TYPE_NAME("fuji-bmc"), > .parent = TYPE_ASPEED_MACHINE, > .class_init = aspeed_machine_fuji_class_init, > + }, { > + .name = MACHINE_TYPE_NAME("montblanc-bmc"), > + .parent = TYPE_ASPEED_MACHINE, > + .class_init = aspeed_machine_montblanc_class_init, > }, { > .name = MACHINE_TYPE_NAME("bletchley-bmc"), > .parent = TYPE_ASPEED_MACHINE, > diff --git a/hw/arm/aspeed_eeprom.c b/hw/arm/aspeed_eeprom.c > index ace5266cec..8cc73f83dc 100644 > --- a/hw/arm/aspeed_eeprom.c > +++ b/hw/arm/aspeed_eeprom.c > @@ -161,6 +161,53 @@ const uint8_t rainier_bmc_fruid[] = { > 0x31, 0x50, 0x46, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, > }; > > +/* Montblanc BMC FRU */ > +const uint8_t montblanc_scm_fruid[] = { > + 0xfb, 0xfb, 0x04, 0xff, 0x01, 0x0d, 0x4d, 0x49, 0x4e, 0x49, 0x50, 0x41, > + 0x43, 0x4b, 0x33, 0x5f, 0x53, 0x43, 0x4d, 0x02, 0x08, 0x32, 0x30, 0x30, > + 0x30, 0x32, 0x39, 0x34, 0x35, 0x04, 0x0c, 0x31, 0x33, 0x32, 0x30, 0x30, > + 0x30, 0x31, 0x36, 0x34, 0x30, 0x31, 0x20, 0x05, 0x0c, 0x31, 0x33, 0x31, > + 0x30, 0x30, 0x30, 0x31, 0x32, 0x37, 0x30, 0x31, 0x20, 0x06, 0x0c, 0x52, > + 0x33, 0x32, 0x31, 0x34, 0x47, 0x30, 0x30, 0x30, 0x33, 0x30, 0x31, 0x07, > + 0x0d, 0x41, 0x30, 0x33, 0x31, 0x33, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, > + 0x58, 0x58, 0x08, 0x01, 0x01, 0x09, 0x01, 0x00, 0x0a, 0x01, 0x00, 0x0b, > + 0x0d, 0x4d, 0x32, 0x32, 0x31, 0x33, 0x32, 0x33, 0x31, 0x37, 0x30, 0x30, > + 0x30, 0x32, 0x0c, 0x03, 0x43, 0x4c, 0x53, 0x0d, 0x08, 0x32, 0x30, 0x32, > + 0x33, 0x30, 0x35, 0x30, 0x31, 0x0e, 0x03, 0x57, 0x55, 0x53, 0x0f, 0x03, > + 0x43, 0x54, 0x48, 0x10, 0x06, 0x01, 0x00, 0x00, 0x91, 0xdb, 0xb4, 0x13, > + 0x03, 0x53, 0x43, 0x4d, 0xfa, 0x02, 0x02, 0x61, > +}; > + > +const uint8_t montblanc_fcm_fruid[] = { > + 0xfb, 0xfb, 0x04, 0xff, 0x01, 0x0d, 0x4d, 0x49, 0x4e, 0x49, 0x50, 0x41, > + 0x43, 0x4b, 0x33, 0x5f, 0x46, 0x43, 0x42, 0x02, 0x08, 0x33, 0x30, 0x30, > + 0x30, 0x30, 0x31, 0x36, 0x31, 0x04, 0x0c, 0x31, 0x33, 0x32, 0x30, 0x30, > + 0x30, 0x31, 0x36, 0x33, 0x30, 0x31, 0x20, 0x05, 0x0c, 0x31, 0x33, 0x31, > + 0x30, 0x30, 0x30, 0x31, 0x33, 0x30, 0x30, 0x31, 0x20, 0x06, 0x0c, 0x52, > + 0x33, 0x32, 0x31, 0x34, 0x47, 0x30, 0x30, 0x31, 0x32, 0x30, 0x31, 0x07, > + 0x0d, 0x41, 0x31, 0x32, 0x31, 0x32, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, > + 0x58, 0x58, 0x08, 0x01, 0x01, 0x09, 0x01, 0x00, 0x0a, 0x01, 0x00, 0x0b, > + 0x0d, 0x46, 0x35, 0x30, 0x31, 0x33, 0x32, 0x33, 0x31, 0x37, 0x30, 0x30, > + 0x30, 0x35, 0x0c, 0x03, 0x43, 0x4c, 0x53, 0x0d, 0x08, 0x32, 0x30, 0x32, > + 0x33, 0x30, 0x35, 0x30, 0x31, 0x0e, 0x03, 0x57, 0x55, 0x53, 0x0f, 0x03, > + 0x43, 0x54, 0x48, 0x10, 0x06, 0x02, 0x00, 0x00, 0x91, 0xdb, 0xb4, 0x11, > + 0x06, 0x03, 0x00, 0x00, 0x91, 0xdb, 0xb4, 0x12, 0x02, 0x8a, 0x00, 0x13, > + 0x03, 0x46, 0x43, 0x42, 0xfa, 0x02, 0x50, 0x47, > +}; > + > +const uint8_t montblanc_bmc_fruid[] = { > + 0xfb, 0xfb, 0x04, 0xff, 0x01, 0x0d, 0x4d, 0x49, 0x4e, 0x49, 0x50, 0x41, > + 0x43, 0x4b, 0x33, 0x5f, 0x42, 0x4d, 0x43, 0x04, 0x0c, 0x31, 0x33, 0x32, > + 0x30, 0x30, 0x30, 0x31, 0x33, 0x36, 0x30, 0x31, 0x20, 0x05, 0x0c, 0x31, > + 0x33, 0x31, 0x30, 0x30, 0x30, 0x30, 0x38, 0x36, 0x30, 0x35, 0x20, 0x06, > + 0x0c, 0x52, 0x33, 0x30, 0x39, 0x37, 0x47, 0x30, 0x30, 0x30, 0x32, 0x30, > + 0x37, 0x07, 0x0d, 0x42, 0x30, 0x32, 0x37, 0x34, 0x58, 0x58, 0x58, 0x58, > + 0x58, 0x58, 0x58, 0x58, 0x08, 0x01, 0x04, 0x09, 0x01, 0x00, 0x0a, 0x01, > + 0x00, 0x0c, 0x03, 0x43, 0x4c, 0x53, 0x0d, 0x08, 0x32, 0x30, 0x32, 0x33, > + 0x30, 0x35, 0x30, 0x31, 0x0e, 0x03, 0x57, 0x55, 0x53, 0x0f, 0x03, 0x43, > + 0x54, 0x48, 0x13, 0x03, 0x42, 0x4d, 0x43, 0xfa, 0x02, 0xef, 0xba, > +}; > + > const size_t tiogapass_bmc_fruid_len = sizeof(tiogapass_bmc_fruid); > const size_t fby35_nic_fruid_len = sizeof(fby35_nic_fruid); > const size_t fby35_bb_fruid_len = sizeof(fby35_bb_fruid); > @@ -168,3 +215,6 @@ const size_t fby35_bmc_fruid_len = sizeof(fby35_bmc_fruid); > const size_t yosemitev2_bmc_fruid_len = sizeof(yosemitev2_bmc_fruid); > const size_t rainier_bb_fruid_len = sizeof(rainier_bb_fruid); > const size_t rainier_bmc_fruid_len = sizeof(rainier_bmc_fruid); > +const size_t montblanc_scm_fruid_len = sizeof(montblanc_scm_fruid); > +const size_t montblanc_fcm_fruid_len = sizeof(montblanc_fcm_fruid); > +const size_t montblanc_bmc_fruid_len = sizeof(montblanc_bmc_fruid); > diff --git a/hw/arm/aspeed_eeprom.h b/hw/arm/aspeed_eeprom.h > index bbf9e54365..b8fbdd0734 100644 > --- a/hw/arm/aspeed_eeprom.h > +++ b/hw/arm/aspeed_eeprom.h > @@ -27,4 +27,11 @@ extern const size_t rainier_bb_fruid_len; > extern const uint8_t rainier_bmc_fruid[]; > extern const size_t rainier_bmc_fruid_len; > > +extern const uint8_t montblanc_scm_fruid[]; > +extern const uint8_t montblanc_fcm_fruid[]; > +extern const uint8_t montblanc_bmc_fruid[]; > +extern const size_t montblanc_scm_fruid_len; > +extern const size_t montblanc_fcm_fruid_len; > +extern const size_t montblanc_bmc_fruid_len; > + > #endif ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH qemu v5] aspeed add montblanc bmc reference from fuji 2023-07-04 11:19 ` Cédric Le Goater @ 2023-07-04 13:27 ` Sittisak Sinprem 2023-07-04 14:07 ` Cédric Le Goater 0 siblings, 1 reply; 8+ messages in thread From: Sittisak Sinprem @ 2023-07-04 13:27 UTC (permalink / raw) To: Bin Huang, Tao Ren, Mike Choi Cc: Cédric Le Goater, qemu-devel, qemu-arm, peter.maydell, andrew, Joel Stanley, qemu-stable, srikanth, ssumet, thangavelu.v, kgengan, anandaramanv [-- Attachment #1: Type: text/plain, Size: 10896 bytes --] Hi Meta Team, the FRU EEPROM content, I think for now detail still be confidential, Please confirm, Can we add the description in Qemu upstream following Cedric's request? On Tue, Jul 4, 2023 at 6:19 PM Cédric Le Goater <clg@kaod.org> wrote: > On 7/4/23 13:06, ~ssinprem wrote: > > From: Sittisak Sinprem <ssinprem@celestica.com> > > > > - I2C list follow I2C Tree v1.6 20230320 > > - fru eeprom data use FB FRU format version 4 > > > > Signed-off-by: Sittisak Sinprem <ssinprem@celestica.com> > > You shoot too fast :) Please add some description for the EEPROM contents. > What they enable when the OS/FW boots is good to know for QEMU. > > Thanks, > > C. > > > > --- > > docs/system/arm/aspeed.rst | 1 + > > hw/arm/aspeed.c | 65 ++++++++++++++++++++++++++++++++++++++ > > hw/arm/aspeed_eeprom.c | 50 +++++++++++++++++++++++++++++ > > hw/arm/aspeed_eeprom.h | 7 ++++ > > 4 files changed, 123 insertions(+) > > > > diff --git a/docs/system/arm/aspeed.rst b/docs/system/arm/aspeed.rst > > index 80538422a1..5e0824f48b 100644 > > --- a/docs/system/arm/aspeed.rst > > +++ b/docs/system/arm/aspeed.rst > > @@ -33,6 +33,7 @@ AST2600 SoC based machines : > > - ``tacoma-bmc`` OpenPOWER Witherspoon POWER9 AST2600 BMC > > - ``rainier-bmc`` IBM Rainier POWER10 BMC > > - ``fuji-bmc`` Facebook Fuji BMC > > +- ``montblanc-bmc`` Facebook Montblanc BMC > > - ``bletchley-bmc`` Facebook Bletchley BMC > > - ``fby35-bmc`` Facebook fby35 BMC > > - ``qcom-dc-scm-v1-bmc`` Qualcomm DC-SCM V1 BMC > > diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c > > index 9fca644d92..bbb7a3392c 100644 > > --- a/hw/arm/aspeed.c > > +++ b/hw/arm/aspeed.c > > @@ -189,6 +189,10 @@ struct AspeedMachineState { > > #define FUJI_BMC_HW_STRAP1 0x00000000 > > #define FUJI_BMC_HW_STRAP2 0x00000000 > > > > +/* Montblanc hardware value */ > > +#define MONTBLANC_BMC_HW_STRAP1 0x00000000 > > +#define MONTBLANC_BMC_HW_STRAP2 0x00000000 > > + > > /* Bletchley hardware value */ > > /* TODO: Leave same as EVB for now. */ > > #define BLETCHLEY_BMC_HW_STRAP1 AST2600_EVB_HW_STRAP1 > > @@ -925,6 +929,41 @@ static void fuji_bmc_i2c_init(AspeedMachineState > *bmc) > > } > > } > > > > +static void montblanc_bmc_i2c_init(AspeedMachineState *bmc) > > +{ > > + AspeedSoCState *soc = &bmc->soc; > > + I2CBus *i2c[16] = {}; > > + > > + for (int i = 0; i < 16; i++) { > > + i2c[i] = aspeed_i2c_get_bus(&soc->i2c, i); > > + } > > + > > + /* Ref from Minipack3_I2C_Tree_V1.6 20230320 */ > > + at24c_eeprom_init_rom(i2c[3], 0x56, 8192, montblanc_scm_fruid, > > + montblanc_scm_fruid_len); > > + at24c_eeprom_init_rom(i2c[6], 0x53, 8192, montblanc_fcm_fruid, > > + montblanc_fcm_fruid_len); > > + > > + /* CPLD and FPGA */ > > + at24c_eeprom_init(i2c[1], 0x35, 256); /* SCM CPLD */ > > + at24c_eeprom_init(i2c[5], 0x35, 256); /* COMe CPLD TODO: need to > update */ > > + at24c_eeprom_init(i2c[12], 0x60, 256); /* MCB PWR CPLD */ > > + at24c_eeprom_init(i2c[13], 0x35, 256); /* IOB FPGA */ > > + > > + /* on BMC board */ > > + at24c_eeprom_init_rom(i2c[8], 0x51, 8192, montblanc_bmc_fruid, > > + montblanc_bmc_fruid_len); /* BMC EEPROM */ > > + i2c_slave_create_simple(i2c[8], TYPE_LM75, 0x48); /* Thermal Sensor > */ > > + > > + /* COMe Sensor/EEPROM */ > > + at24c_eeprom_init(i2c[0], 0x56, 16384); /* FRU EEPROM */ > > + i2c_slave_create_simple(i2c[0], TYPE_LM75, 0x48); /* INLET Sensor */ > > + i2c_slave_create_simple(i2c[0], TYPE_LM75, 0x4A); /* OUTLET Sensor > */ > > + > > + /* It expects a pca9555 but a pca9552 is compatible */ > > + create_pca9552(soc, 4, 0x27); > > +} > > + > > #define TYPE_TMP421 "tmp421" > > > > static void bletchley_bmc_i2c_init(AspeedMachineState *bmc) > > @@ -1452,6 +1491,28 @@ static void > aspeed_machine_fuji_class_init(ObjectClass *oc, void *data) > > aspeed_soc_num_cpus(amc->soc_name); > > }; > > > > +#define MONTBLANC_BMC_RAM_SIZE ASPEED_RAM_SIZE(2 * GiB) > > + > > +static void aspeed_machine_montblanc_class_init(ObjectClass *oc, void > *data) > > +{ > > + MachineClass *mc = MACHINE_CLASS(oc); > > + AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc); > > + > > + mc->desc = "Facebook Montblanc BMC (Cortex-A7)"; > > + amc->soc_name = "ast2600-a3"; > > + amc->hw_strap1 = MONTBLANC_BMC_HW_STRAP1; > > + amc->hw_strap2 = MONTBLANC_BMC_HW_STRAP2; > > + amc->fmc_model = "mx66l1g45g"; > > + amc->spi_model = "mx66l1g45g"; > > + amc->num_cs = 2; > > + amc->macs_mask = ASPEED_MAC3_ON; > > + amc->i2c_init = montblanc_bmc_i2c_init; > > + amc->uart_default = ASPEED_DEV_UART1; > > + mc->default_ram_size = MONTBLANC_BMC_RAM_SIZE; > > + mc->default_cpus = mc->min_cpus = mc->max_cpus = > > + aspeed_soc_num_cpus(amc->soc_name); > > +}; > > + > > #define BLETCHLEY_BMC_RAM_SIZE ASPEED_RAM_SIZE(2 * GiB) > > > > static void aspeed_machine_bletchley_class_init(ObjectClass *oc, void > *data) > > @@ -1703,6 +1764,10 @@ static const TypeInfo aspeed_machine_types[] = { > > .name = MACHINE_TYPE_NAME("fuji-bmc"), > > .parent = TYPE_ASPEED_MACHINE, > > .class_init = aspeed_machine_fuji_class_init, > > + }, { > > + .name = MACHINE_TYPE_NAME("montblanc-bmc"), > > + .parent = TYPE_ASPEED_MACHINE, > > + .class_init = aspeed_machine_montblanc_class_init, > > }, { > > .name = MACHINE_TYPE_NAME("bletchley-bmc"), > > .parent = TYPE_ASPEED_MACHINE, > > diff --git a/hw/arm/aspeed_eeprom.c b/hw/arm/aspeed_eeprom.c > > index ace5266cec..8cc73f83dc 100644 > > --- a/hw/arm/aspeed_eeprom.c > > +++ b/hw/arm/aspeed_eeprom.c > > @@ -161,6 +161,53 @@ const uint8_t rainier_bmc_fruid[] = { > > 0x31, 0x50, 0x46, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, > > }; > > > > +/* Montblanc BMC FRU */ > > +const uint8_t montblanc_scm_fruid[] = { > > + 0xfb, 0xfb, 0x04, 0xff, 0x01, 0x0d, 0x4d, 0x49, 0x4e, 0x49, 0x50, > 0x41, > > + 0x43, 0x4b, 0x33, 0x5f, 0x53, 0x43, 0x4d, 0x02, 0x08, 0x32, 0x30, > 0x30, > > + 0x30, 0x32, 0x39, 0x34, 0x35, 0x04, 0x0c, 0x31, 0x33, 0x32, 0x30, > 0x30, > > + 0x30, 0x31, 0x36, 0x34, 0x30, 0x31, 0x20, 0x05, 0x0c, 0x31, 0x33, > 0x31, > > + 0x30, 0x30, 0x30, 0x31, 0x32, 0x37, 0x30, 0x31, 0x20, 0x06, 0x0c, > 0x52, > > + 0x33, 0x32, 0x31, 0x34, 0x47, 0x30, 0x30, 0x30, 0x33, 0x30, 0x31, > 0x07, > > + 0x0d, 0x41, 0x30, 0x33, 0x31, 0x33, 0x58, 0x58, 0x58, 0x58, 0x58, > 0x58, > > + 0x58, 0x58, 0x08, 0x01, 0x01, 0x09, 0x01, 0x00, 0x0a, 0x01, 0x00, > 0x0b, > > + 0x0d, 0x4d, 0x32, 0x32, 0x31, 0x33, 0x32, 0x33, 0x31, 0x37, 0x30, > 0x30, > > + 0x30, 0x32, 0x0c, 0x03, 0x43, 0x4c, 0x53, 0x0d, 0x08, 0x32, 0x30, > 0x32, > > + 0x33, 0x30, 0x35, 0x30, 0x31, 0x0e, 0x03, 0x57, 0x55, 0x53, 0x0f, > 0x03, > > + 0x43, 0x54, 0x48, 0x10, 0x06, 0x01, 0x00, 0x00, 0x91, 0xdb, 0xb4, > 0x13, > > + 0x03, 0x53, 0x43, 0x4d, 0xfa, 0x02, 0x02, 0x61, > > +}; > > + > > +const uint8_t montblanc_fcm_fruid[] = { > > + 0xfb, 0xfb, 0x04, 0xff, 0x01, 0x0d, 0x4d, 0x49, 0x4e, 0x49, 0x50, > 0x41, > > + 0x43, 0x4b, 0x33, 0x5f, 0x46, 0x43, 0x42, 0x02, 0x08, 0x33, 0x30, > 0x30, > > + 0x30, 0x30, 0x31, 0x36, 0x31, 0x04, 0x0c, 0x31, 0x33, 0x32, 0x30, > 0x30, > > + 0x30, 0x31, 0x36, 0x33, 0x30, 0x31, 0x20, 0x05, 0x0c, 0x31, 0x33, > 0x31, > > + 0x30, 0x30, 0x30, 0x31, 0x33, 0x30, 0x30, 0x31, 0x20, 0x06, 0x0c, > 0x52, > > + 0x33, 0x32, 0x31, 0x34, 0x47, 0x30, 0x30, 0x31, 0x32, 0x30, 0x31, > 0x07, > > + 0x0d, 0x41, 0x31, 0x32, 0x31, 0x32, 0x58, 0x58, 0x58, 0x58, 0x58, > 0x58, > > + 0x58, 0x58, 0x08, 0x01, 0x01, 0x09, 0x01, 0x00, 0x0a, 0x01, 0x00, > 0x0b, > > + 0x0d, 0x46, 0x35, 0x30, 0x31, 0x33, 0x32, 0x33, 0x31, 0x37, 0x30, > 0x30, > > + 0x30, 0x35, 0x0c, 0x03, 0x43, 0x4c, 0x53, 0x0d, 0x08, 0x32, 0x30, > 0x32, > > + 0x33, 0x30, 0x35, 0x30, 0x31, 0x0e, 0x03, 0x57, 0x55, 0x53, 0x0f, > 0x03, > > + 0x43, 0x54, 0x48, 0x10, 0x06, 0x02, 0x00, 0x00, 0x91, 0xdb, 0xb4, > 0x11, > > + 0x06, 0x03, 0x00, 0x00, 0x91, 0xdb, 0xb4, 0x12, 0x02, 0x8a, 0x00, > 0x13, > > + 0x03, 0x46, 0x43, 0x42, 0xfa, 0x02, 0x50, 0x47, > > +}; > > + > > +const uint8_t montblanc_bmc_fruid[] = { > > + 0xfb, 0xfb, 0x04, 0xff, 0x01, 0x0d, 0x4d, 0x49, 0x4e, 0x49, 0x50, > 0x41, > > + 0x43, 0x4b, 0x33, 0x5f, 0x42, 0x4d, 0x43, 0x04, 0x0c, 0x31, 0x33, > 0x32, > > + 0x30, 0x30, 0x30, 0x31, 0x33, 0x36, 0x30, 0x31, 0x20, 0x05, 0x0c, > 0x31, > > + 0x33, 0x31, 0x30, 0x30, 0x30, 0x30, 0x38, 0x36, 0x30, 0x35, 0x20, > 0x06, > > + 0x0c, 0x52, 0x33, 0x30, 0x39, 0x37, 0x47, 0x30, 0x30, 0x30, 0x32, > 0x30, > > + 0x37, 0x07, 0x0d, 0x42, 0x30, 0x32, 0x37, 0x34, 0x58, 0x58, 0x58, > 0x58, > > + 0x58, 0x58, 0x58, 0x58, 0x08, 0x01, 0x04, 0x09, 0x01, 0x00, 0x0a, > 0x01, > > + 0x00, 0x0c, 0x03, 0x43, 0x4c, 0x53, 0x0d, 0x08, 0x32, 0x30, 0x32, > 0x33, > > + 0x30, 0x35, 0x30, 0x31, 0x0e, 0x03, 0x57, 0x55, 0x53, 0x0f, 0x03, > 0x43, > > + 0x54, 0x48, 0x13, 0x03, 0x42, 0x4d, 0x43, 0xfa, 0x02, 0xef, 0xba, > > +}; > > + > > const size_t tiogapass_bmc_fruid_len = sizeof(tiogapass_bmc_fruid); > > const size_t fby35_nic_fruid_len = sizeof(fby35_nic_fruid); > > const size_t fby35_bb_fruid_len = sizeof(fby35_bb_fruid); > > @@ -168,3 +215,6 @@ const size_t fby35_bmc_fruid_len = > sizeof(fby35_bmc_fruid); > > const size_t yosemitev2_bmc_fruid_len = sizeof(yosemitev2_bmc_fruid); > > const size_t rainier_bb_fruid_len = sizeof(rainier_bb_fruid); > > const size_t rainier_bmc_fruid_len = sizeof(rainier_bmc_fruid); > > +const size_t montblanc_scm_fruid_len = sizeof(montblanc_scm_fruid); > > +const size_t montblanc_fcm_fruid_len = sizeof(montblanc_fcm_fruid); > > +const size_t montblanc_bmc_fruid_len = sizeof(montblanc_bmc_fruid); > > diff --git a/hw/arm/aspeed_eeprom.h b/hw/arm/aspeed_eeprom.h > > index bbf9e54365..b8fbdd0734 100644 > > --- a/hw/arm/aspeed_eeprom.h > > +++ b/hw/arm/aspeed_eeprom.h > > @@ -27,4 +27,11 @@ extern const size_t rainier_bb_fruid_len; > > extern const uint8_t rainier_bmc_fruid[]; > > extern const size_t rainier_bmc_fruid_len; > > > > +extern const uint8_t montblanc_scm_fruid[]; > > +extern const uint8_t montblanc_fcm_fruid[]; > > +extern const uint8_t montblanc_bmc_fruid[]; > > +extern const size_t montblanc_scm_fruid_len; > > +extern const size_t montblanc_fcm_fruid_len; > > +extern const size_t montblanc_bmc_fruid_len; > > + > > #endif > > [-- Attachment #2: Type: text/html, Size: 12923 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH qemu v5] aspeed add montblanc bmc reference from fuji 2023-07-04 13:27 ` Sittisak Sinprem @ 2023-07-04 14:07 ` Cédric Le Goater 2023-07-05 17:38 ` Mike Choi 0 siblings, 1 reply; 8+ messages in thread From: Cédric Le Goater @ 2023-07-04 14:07 UTC (permalink / raw) To: Sittisak Sinprem, Bin Huang, Tao Ren, Mike Choi Cc: qemu-devel, qemu-arm, peter.maydell, andrew, Joel Stanley, qemu-stable, srikanth, ssumet, thangavelu.v, kgengan, anandaramanv On 7/4/23 15:27, Sittisak Sinprem wrote: > Hi Meta Team, > > the FRU EEPROM content, I think for now detail still be confidential, > Please confirm, Can we add the description in Qemu upstream following Cedric's request? We don't need all the details, and not the confidential part of course. C. > > On Tue, Jul 4, 2023 at 6:19 PM Cédric Le Goater <clg@kaod.org <mailto:clg@kaod.org>> wrote: > > On 7/4/23 13:06, ~ssinprem wrote: > > From: Sittisak Sinprem <ssinprem@celestica.com <mailto:ssinprem@celestica.com>> > > > > - I2C list follow I2C Tree v1.6 20230320 > > - fru eeprom data use FB FRU format version 4 > > > > Signed-off-by: Sittisak Sinprem <ssinprem@celestica.com <mailto:ssinprem@celestica.com>> > > You shoot too fast :) Please add some description for the EEPROM contents. > What they enable when the OS/FW boots is good to know for QEMU. > > Thanks, > > C. > > > > --- > > docs/system/arm/aspeed.rst | 1 + > > hw/arm/aspeed.c | 65 ++++++++++++++++++++++++++++++++++++++ > > hw/arm/aspeed_eeprom.c | 50 +++++++++++++++++++++++++++++ > > hw/arm/aspeed_eeprom.h | 7 ++++ > > 4 files changed, 123 insertions(+) > > > > diff --git a/docs/system/arm/aspeed.rst b/docs/system/arm/aspeed.rst > > index 80538422a1..5e0824f48b 100644 > > --- a/docs/system/arm/aspeed.rst > > +++ b/docs/system/arm/aspeed.rst > > @@ -33,6 +33,7 @@ AST2600 SoC based machines : > > - ``tacoma-bmc`` OpenPOWER Witherspoon POWER9 AST2600 BMC > > - ``rainier-bmc`` IBM Rainier POWER10 BMC > > - ``fuji-bmc`` Facebook Fuji BMC > > +- ``montblanc-bmc`` Facebook Montblanc BMC > > - ``bletchley-bmc`` Facebook Bletchley BMC > > - ``fby35-bmc`` Facebook fby35 BMC > > - ``qcom-dc-scm-v1-bmc`` Qualcomm DC-SCM V1 BMC > > diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c > > index 9fca644d92..bbb7a3392c 100644 > > --- a/hw/arm/aspeed.c > > +++ b/hw/arm/aspeed.c > > @@ -189,6 +189,10 @@ struct AspeedMachineState { > > #define FUJI_BMC_HW_STRAP1 0x00000000 > > #define FUJI_BMC_HW_STRAP2 0x00000000 > > > > +/* Montblanc hardware value */ > > +#define MONTBLANC_BMC_HW_STRAP1 0x00000000 > > +#define MONTBLANC_BMC_HW_STRAP2 0x00000000 > > + > > /* Bletchley hardware value */ > > /* TODO: Leave same as EVB for now. */ > > #define BLETCHLEY_BMC_HW_STRAP1 AST2600_EVB_HW_STRAP1 > > @@ -925,6 +929,41 @@ static void fuji_bmc_i2c_init(AspeedMachineState *bmc) > > } > > } > > > > +static void montblanc_bmc_i2c_init(AspeedMachineState *bmc) > > +{ > > + AspeedSoCState *soc = &bmc->soc; > > + I2CBus *i2c[16] = {}; > > + > > + for (int i = 0; i < 16; i++) { > > + i2c[i] = aspeed_i2c_get_bus(&soc->i2c, i); > > + } > > + > > + /* Ref from Minipack3_I2C_Tree_V1.6 20230320 */ > > + at24c_eeprom_init_rom(i2c[3], 0x56, 8192, montblanc_scm_fruid, > > + montblanc_scm_fruid_len); > > + at24c_eeprom_init_rom(i2c[6], 0x53, 8192, montblanc_fcm_fruid, > > + montblanc_fcm_fruid_len); > > + > > + /* CPLD and FPGA */ > > + at24c_eeprom_init(i2c[1], 0x35, 256); /* SCM CPLD */ > > + at24c_eeprom_init(i2c[5], 0x35, 256); /* COMe CPLD TODO: need to update */ > > + at24c_eeprom_init(i2c[12], 0x60, 256); /* MCB PWR CPLD */ > > + at24c_eeprom_init(i2c[13], 0x35, 256); /* IOB FPGA */ > > + > > + /* on BMC board */ > > + at24c_eeprom_init_rom(i2c[8], 0x51, 8192, montblanc_bmc_fruid, > > + montblanc_bmc_fruid_len); /* BMC EEPROM */ > > + i2c_slave_create_simple(i2c[8], TYPE_LM75, 0x48); /* Thermal Sensor */ > > + > > + /* COMe Sensor/EEPROM */ > > + at24c_eeprom_init(i2c[0], 0x56, 16384); /* FRU EEPROM */ > > + i2c_slave_create_simple(i2c[0], TYPE_LM75, 0x48); /* INLET Sensor */ > > + i2c_slave_create_simple(i2c[0], TYPE_LM75, 0x4A); /* OUTLET Sensor */ > > + > > + /* It expects a pca9555 but a pca9552 is compatible */ > > + create_pca9552(soc, 4, 0x27); > > +} > > + > > #define TYPE_TMP421 "tmp421" > > > > static void bletchley_bmc_i2c_init(AspeedMachineState *bmc) > > @@ -1452,6 +1491,28 @@ static void aspeed_machine_fuji_class_init(ObjectClass *oc, void *data) > > aspeed_soc_num_cpus(amc->soc_name); > > }; > > > > +#define MONTBLANC_BMC_RAM_SIZE ASPEED_RAM_SIZE(2 * GiB) > > + > > +static void aspeed_machine_montblanc_class_init(ObjectClass *oc, void *data) > > +{ > > + MachineClass *mc = MACHINE_CLASS(oc); > > + AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc); > > + > > + mc->desc = "Facebook Montblanc BMC (Cortex-A7)"; > > + amc->soc_name = "ast2600-a3"; > > + amc->hw_strap1 = MONTBLANC_BMC_HW_STRAP1; > > + amc->hw_strap2 = MONTBLANC_BMC_HW_STRAP2; > > + amc->fmc_model = "mx66l1g45g"; > > + amc->spi_model = "mx66l1g45g"; > > + amc->num_cs = 2; > > + amc->macs_mask = ASPEED_MAC3_ON; > > + amc->i2c_init = montblanc_bmc_i2c_init; > > + amc->uart_default = ASPEED_DEV_UART1; > > + mc->default_ram_size = MONTBLANC_BMC_RAM_SIZE; > > + mc->default_cpus = mc->min_cpus = mc->max_cpus = > > + aspeed_soc_num_cpus(amc->soc_name); > > +}; > > + > > #define BLETCHLEY_BMC_RAM_SIZE ASPEED_RAM_SIZE(2 * GiB) > > > > static void aspeed_machine_bletchley_class_init(ObjectClass *oc, void *data) > > @@ -1703,6 +1764,10 @@ static const TypeInfo aspeed_machine_types[] = { > > .name = MACHINE_TYPE_NAME("fuji-bmc"), > > .parent = TYPE_ASPEED_MACHINE, > > .class_init = aspeed_machine_fuji_class_init, > > + }, { > > + .name = MACHINE_TYPE_NAME("montblanc-bmc"), > > + .parent = TYPE_ASPEED_MACHINE, > > + .class_init = aspeed_machine_montblanc_class_init, > > }, { > > .name = MACHINE_TYPE_NAME("bletchley-bmc"), > > .parent = TYPE_ASPEED_MACHINE, > > diff --git a/hw/arm/aspeed_eeprom.c b/hw/arm/aspeed_eeprom.c > > index ace5266cec..8cc73f83dc 100644 > > --- a/hw/arm/aspeed_eeprom.c > > +++ b/hw/arm/aspeed_eeprom.c > > @@ -161,6 +161,53 @@ const uint8_t rainier_bmc_fruid[] = { > > 0x31, 0x50, 0x46, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, > > }; > > > > +/* Montblanc BMC FRU */ > > +const uint8_t montblanc_scm_fruid[] = { > > + 0xfb, 0xfb, 0x04, 0xff, 0x01, 0x0d, 0x4d, 0x49, 0x4e, 0x49, 0x50, 0x41, > > + 0x43, 0x4b, 0x33, 0x5f, 0x53, 0x43, 0x4d, 0x02, 0x08, 0x32, 0x30, 0x30, > > + 0x30, 0x32, 0x39, 0x34, 0x35, 0x04, 0x0c, 0x31, 0x33, 0x32, 0x30, 0x30, > > + 0x30, 0x31, 0x36, 0x34, 0x30, 0x31, 0x20, 0x05, 0x0c, 0x31, 0x33, 0x31, > > + 0x30, 0x30, 0x30, 0x31, 0x32, 0x37, 0x30, 0x31, 0x20, 0x06, 0x0c, 0x52, > > + 0x33, 0x32, 0x31, 0x34, 0x47, 0x30, 0x30, 0x30, 0x33, 0x30, 0x31, 0x07, > > + 0x0d, 0x41, 0x30, 0x33, 0x31, 0x33, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, > > + 0x58, 0x58, 0x08, 0x01, 0x01, 0x09, 0x01, 0x00, 0x0a, 0x01, 0x00, 0x0b, > > + 0x0d, 0x4d, 0x32, 0x32, 0x31, 0x33, 0x32, 0x33, 0x31, 0x37, 0x30, 0x30, > > + 0x30, 0x32, 0x0c, 0x03, 0x43, 0x4c, 0x53, 0x0d, 0x08, 0x32, 0x30, 0x32, > > + 0x33, 0x30, 0x35, 0x30, 0x31, 0x0e, 0x03, 0x57, 0x55, 0x53, 0x0f, 0x03, > > + 0x43, 0x54, 0x48, 0x10, 0x06, 0x01, 0x00, 0x00, 0x91, 0xdb, 0xb4, 0x13, > > + 0x03, 0x53, 0x43, 0x4d, 0xfa, 0x02, 0x02, 0x61, > > +}; > > + > > +const uint8_t montblanc_fcm_fruid[] = { > > + 0xfb, 0xfb, 0x04, 0xff, 0x01, 0x0d, 0x4d, 0x49, 0x4e, 0x49, 0x50, 0x41, > > + 0x43, 0x4b, 0x33, 0x5f, 0x46, 0x43, 0x42, 0x02, 0x08, 0x33, 0x30, 0x30, > > + 0x30, 0x30, 0x31, 0x36, 0x31, 0x04, 0x0c, 0x31, 0x33, 0x32, 0x30, 0x30, > > + 0x30, 0x31, 0x36, 0x33, 0x30, 0x31, 0x20, 0x05, 0x0c, 0x31, 0x33, 0x31, > > + 0x30, 0x30, 0x30, 0x31, 0x33, 0x30, 0x30, 0x31, 0x20, 0x06, 0x0c, 0x52, > > + 0x33, 0x32, 0x31, 0x34, 0x47, 0x30, 0x30, 0x31, 0x32, 0x30, 0x31, 0x07, > > + 0x0d, 0x41, 0x31, 0x32, 0x31, 0x32, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, > > + 0x58, 0x58, 0x08, 0x01, 0x01, 0x09, 0x01, 0x00, 0x0a, 0x01, 0x00, 0x0b, > > + 0x0d, 0x46, 0x35, 0x30, 0x31, 0x33, 0x32, 0x33, 0x31, 0x37, 0x30, 0x30, > > + 0x30, 0x35, 0x0c, 0x03, 0x43, 0x4c, 0x53, 0x0d, 0x08, 0x32, 0x30, 0x32, > > + 0x33, 0x30, 0x35, 0x30, 0x31, 0x0e, 0x03, 0x57, 0x55, 0x53, 0x0f, 0x03, > > + 0x43, 0x54, 0x48, 0x10, 0x06, 0x02, 0x00, 0x00, 0x91, 0xdb, 0xb4, 0x11, > > + 0x06, 0x03, 0x00, 0x00, 0x91, 0xdb, 0xb4, 0x12, 0x02, 0x8a, 0x00, 0x13, > > + 0x03, 0x46, 0x43, 0x42, 0xfa, 0x02, 0x50, 0x47, > > +}; > > + > > +const uint8_t montblanc_bmc_fruid[] = { > > + 0xfb, 0xfb, 0x04, 0xff, 0x01, 0x0d, 0x4d, 0x49, 0x4e, 0x49, 0x50, 0x41, > > + 0x43, 0x4b, 0x33, 0x5f, 0x42, 0x4d, 0x43, 0x04, 0x0c, 0x31, 0x33, 0x32, > > + 0x30, 0x30, 0x30, 0x31, 0x33, 0x36, 0x30, 0x31, 0x20, 0x05, 0x0c, 0x31, > > + 0x33, 0x31, 0x30, 0x30, 0x30, 0x30, 0x38, 0x36, 0x30, 0x35, 0x20, 0x06, > > + 0x0c, 0x52, 0x33, 0x30, 0x39, 0x37, 0x47, 0x30, 0x30, 0x30, 0x32, 0x30, > > + 0x37, 0x07, 0x0d, 0x42, 0x30, 0x32, 0x37, 0x34, 0x58, 0x58, 0x58, 0x58, > > + 0x58, 0x58, 0x58, 0x58, 0x08, 0x01, 0x04, 0x09, 0x01, 0x00, 0x0a, 0x01, > > + 0x00, 0x0c, 0x03, 0x43, 0x4c, 0x53, 0x0d, 0x08, 0x32, 0x30, 0x32, 0x33, > > + 0x30, 0x35, 0x30, 0x31, 0x0e, 0x03, 0x57, 0x55, 0x53, 0x0f, 0x03, 0x43, > > + 0x54, 0x48, 0x13, 0x03, 0x42, 0x4d, 0x43, 0xfa, 0x02, 0xef, 0xba, > > +}; > > + > > const size_t tiogapass_bmc_fruid_len = sizeof(tiogapass_bmc_fruid); > > const size_t fby35_nic_fruid_len = sizeof(fby35_nic_fruid); > > const size_t fby35_bb_fruid_len = sizeof(fby35_bb_fruid); > > @@ -168,3 +215,6 @@ const size_t fby35_bmc_fruid_len = sizeof(fby35_bmc_fruid); > > const size_t yosemitev2_bmc_fruid_len = sizeof(yosemitev2_bmc_fruid); > > const size_t rainier_bb_fruid_len = sizeof(rainier_bb_fruid); > > const size_t rainier_bmc_fruid_len = sizeof(rainier_bmc_fruid); > > +const size_t montblanc_scm_fruid_len = sizeof(montblanc_scm_fruid); > > +const size_t montblanc_fcm_fruid_len = sizeof(montblanc_fcm_fruid); > > +const size_t montblanc_bmc_fruid_len = sizeof(montblanc_bmc_fruid); > > diff --git a/hw/arm/aspeed_eeprom.h b/hw/arm/aspeed_eeprom.h > > index bbf9e54365..b8fbdd0734 100644 > > --- a/hw/arm/aspeed_eeprom.h > > +++ b/hw/arm/aspeed_eeprom.h > > @@ -27,4 +27,11 @@ extern const size_t rainier_bb_fruid_len; > > extern const uint8_t rainier_bmc_fruid[]; > > extern const size_t rainier_bmc_fruid_len; > > > > +extern const uint8_t montblanc_scm_fruid[]; > > +extern const uint8_t montblanc_fcm_fruid[]; > > +extern const uint8_t montblanc_bmc_fruid[]; > > +extern const size_t montblanc_scm_fruid_len; > > +extern const size_t montblanc_fcm_fruid_len; > > +extern const size_t montblanc_bmc_fruid_len; > > + > > #endif > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH qemu v5] aspeed add montblanc bmc reference from fuji 2023-07-04 14:07 ` Cédric Le Goater @ 2023-07-05 17:38 ` Mike Choi 2023-07-06 3:14 ` Sittisak Sinprem 0 siblings, 1 reply; 8+ messages in thread From: Mike Choi @ 2023-07-05 17:38 UTC (permalink / raw) To: Cédric Le Goater, Sittisak Sinprem, Bin Huang, Tao Ren Cc: qemu-devel@nongnu.org, qemu-arm@nongnu.org, peter.maydell@linaro.org, andrew@aj.id.au, Joel Stanley, qemu-stable@nongnu.org, srikanth@celestica.com, ssumet@celestica.com, thangavelu.v@celestica.com, kgengan@celestica.com, anandaramanv@celestica.com [-- Attachment #1: Type: text/plain, Size: 13390 bytes --] Hi Sittisak, Minipack3 is not open-sourced yet, and we are unlikely to be able to upstream detailed data. 1. What is these FRUID datas for, is it for testing? 2. What other option do we have, since we are not able to upstream FRUID data. (It is still OK to upstream system configuration, but NOT the arrays of _fruid data array) Thanks, Mike From: Cédric Le Goater <clg@kaod.org> Date: Tuesday, July 4, 2023 at 7:07 AM To: Sittisak Sinprem <ssinprem@celestica.com>, Bin Huang <binhuang@meta.com>, Tao Ren <taoren@meta.com>, Mike Choi <mikechoi@meta.com> Cc: qemu-devel@nongnu.org <qemu-devel@nongnu.org>, qemu-arm@nongnu.org <qemu-arm@nongnu.org>, peter.maydell@linaro.org <peter.maydell@linaro.org>, andrew@aj.id.au <andrew@aj.id.au>, Joel Stanley <joel@jms.id.au>, qemu-stable@nongnu.org <qemu-stable@nongnu.org>, srikanth@celestica.com <srikanth@celestica.com>, ssumet@celestica.com <ssumet@celefor stica.com>, thangavelu.v@celestica.com <thangavelu.v@celestica.com>, kgengan@celestica.com <kgengan@celestica.com>, anandaramanv@celestica.com <anandaramanv@celestica.com> Subject: Re: [PATCH qemu v5] aspeed add montblanc bmc reference from fuji !-------------------------------------------------------------------| This Message Is From an External Sender |-------------------------------------------------------------------! On 7/4/23 15:27, Sittisak Sinprem wrote: > Hi Meta Team, > > the FRU EEPROM content, I think for now detail still be confidential, > Please confirm, Can we add the description in Qemu upstream following Cedric's request? We don't need all the details, and not the confidential part of course. C. > > On Tue, Jul 4, 2023 at 6:19 PM Cédric Le Goater <clg@kaod.org <mailto:clg@kaod.org>> wrote: > > On 7/4/23 13:06, ~ssinprem wrote: > > From: Sittisak Sinprem <ssinprem@celestica.com <mailto:ssinprem@celestica.com>> > > > > - I2C list follow I2C Tree v1.6 20230320 > > - fru eeprom data use FB FRU format version 4 > > > > Signed-off-by: Sittisak Sinprem <ssinprem@celestica.com <mailto:ssinprem@celestica.com>> > > You shoot too fast :) Please add some description for the EEPROM contents. > What they enable when the OS/FW boots is good to know for QEMU. > > Thanks, > > C. > > > > --- > > docs/system/arm/aspeed.rst | 1 + > > hw/arm/aspeed.c | 65 ++++++++++++++++++++++++++++++++++++++ > > hw/arm/aspeed_eeprom.c | 50 +++++++++++++++++++++++++++++ > > hw/arm/aspeed_eeprom.h | 7 ++++ > > 4 files changed, 123 insertions(+) > > > > diff --git a/docs/system/arm/aspeed.rst b/docs/system/arm/aspeed.rst > > index 80538422a1..5e0824f48b 100644 > > --- a/docs/system/arm/aspeed.rst > > +++ b/docs/system/arm/aspeed.rst > > @@ -33,6 +33,7 @@ AST2600 SoC based machines : > > - ``tacoma-bmc`` OpenPOWER Witherspoon POWER9 AST2600 BMC > > - ``rainier-bmc`` IBM Rainier POWER10 BMC > > - ``fuji-bmc`` Facebook Fuji BMC > > +- ``montblanc-bmc`` Facebook Montblanc BMC > > - ``bletchley-bmc`` Facebook Bletchley BMC > > - ``fby35-bmc`` Facebook fby35 BMC > > - ``qcom-dc-scm-v1-bmc`` Qualcomm DC-SCM V1 BMC > > diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c > > index 9fca644d92..bbb7a3392c 100644 > > --- a/hw/arm/aspeed.c > > +++ b/hw/arm/aspeed.c > > @@ -189,6 +189,10 @@ struct AspeedMachineState { > > #define FUJI_BMC_HW_STRAP1 0x00000000 > > #define FUJI_BMC_HW_STRAP2 0x00000000 > > > > +/* Montblanc hardware value */ > > +#define MONTBLANC_BMC_HW_STRAP1 0x00000000 > > +#define MONTBLANC_BMC_HW_STRAP2 0x00000000 > > + > > /* Bletchley hardware value */ > > /* TODO: Leave same as EVB for now. */ > > #define BLETCHLEY_BMC_HW_STRAP1 AST2600_EVB_HW_STRAP1 > > @@ -925,6 +929,41 @@ static void fuji_bmc_i2c_init(AspeedMachineState *bmc) > > } > > } > > > > +static void montblanc_bmc_i2c_init(AspeedMachineState *bmc) > > +{ > > + AspeedSoCState *soc = &bmc->soc; > > + I2CBus *i2c[16] = {}; > > + > > + for (int i = 0; i < 16; i++) { > > + i2c[i] = aspeed_i2c_get_bus(&soc->i2c, i); > > + } > > + > > + /* Ref from Minipack3_I2C_Tree_V1.6 20230320 */ > > + at24c_eeprom_init_rom(i2c[3], 0x56, 8192, montblanc_scm_fruid, > > + montblanc_scm_fruid_len); > > + at24c_eeprom_init_rom(i2c[6], 0x53, 8192, montblanc_fcm_fruid, > > + montblanc_fcm_fruid_len); > > + > > + /* CPLD and FPGA */ > > + at24c_eeprom_init(i2c[1], 0x35, 256); /* SCM CPLD */ > > + at24c_eeprom_init(i2c[5], 0x35, 256); /* COMe CPLD TODO: need to update */ > > + at24c_eeprom_init(i2c[12], 0x60, 256); /* MCB PWR CPLD */ > > + at24c_eeprom_init(i2c[13], 0x35, 256); /* IOB FPGA */ > > + > > + /* on BMC board */ > > + at24c_eeprom_init_rom(i2c[8], 0x51, 8192, montblanc_bmc_fruid, > > + montblanc_bmc_fruid_len); /* BMC EEPROM */ > > + i2c_slave_create_simple(i2c[8], TYPE_LM75, 0x48); /* Thermal Sensor */ > > + > > + /* COMe Sensor/EEPROM */ > > + at24c_eeprom_init(i2c[0], 0x56, 16384); /* FRU EEPROM */ > > + i2c_slave_create_simple(i2c[0], TYPE_LM75, 0x48); /* INLET Sensor */ > > + i2c_slave_create_simple(i2c[0], TYPE_LM75, 0x4A); /* OUTLET Sensor */ > > + > > + /* It expects a pca9555 but a pca9552 is compatible */ > > + create_pca9552(soc, 4, 0x27); > > +} > > + > > #define TYPE_TMP421 "tmp421" > > > > static void bletchley_bmc_i2c_init(AspeedMachineState *bmc) > > @@ -1452,6 +1491,28 @@ static void aspeed_machine_fuji_class_init(ObjectClass *oc, void *data) > > aspeed_soc_num_cpus(amc->soc_name); > > }; > > > > +#define MONTBLANC_BMC_RAM_SIZE ASPEED_RAM_SIZE(2 * GiB) > > + > > +static void aspeed_machine_montblanc_class_init(ObjectClass *oc, void *data) > > +{ > > + MachineClass *mc = MACHINE_CLASS(oc); > > + AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc); > > + > > + mc->desc = "Facebook Montblanc BMC (Cortex-A7)"; > > + amc->soc_name = "ast2600-a3"; > > + amc->hw_strap1 = MONTBLANC_BMC_HW_STRAP1; > > + amc->hw_strap2 = MONTBLANC_BMC_HW_STRAP2; > > + amc->fmc_model = "mx66l1g45g"; > > + amc->spi_model = "mx66l1g45g"; > > + amc->num_cs = 2; > > + amc->macs_mask = ASPEED_MAC3_ON; > > + amc->i2c_init = montblanc_bmc_i2c_init; > > + amc->uart_default = ASPEED_DEV_UART1; > > + mc->default_ram_size = MONTBLANC_BMC_RAM_SIZE; > > + mc->default_cpus = mc->min_cpus = mc->max_cpus = > > + aspeed_soc_num_cpus(amc->soc_name); > > +}; > > + > > #define BLETCHLEY_BMC_RAM_SIZE ASPEED_RAM_SIZE(2 * GiB) > > > > static void aspeed_machine_bletchley_class_init(ObjectClass *oc, void *data) > > @@ -1703,6 +1764,10 @@ static const TypeInfo aspeed_machine_types[] = { > > .name = MACHINE_TYPE_NAME("fuji-bmc"), > > .parent = TYPE_ASPEED_MACHINE, > > .class_init = aspeed_machine_fuji_class_init, > > + }, { > > + .name = MACHINE_TYPE_NAME("montblanc-bmc"), > > + .parent = TYPE_ASPEED_MACHINE, > > + .class_init = aspeed_machine_montblanc_class_init, > > }, { > > .name = MACHINE_TYPE_NAME("bletchley-bmc"), > > .parent = TYPE_ASPEED_MACHINE, > > diff --git a/hw/arm/aspeed_eeprom.c b/hw/arm/aspeed_eeprom.c > > index ace5266cec..8cc73f83dc 100644 > > --- a/hw/arm/aspeed_eeprom.c > > +++ b/hw/arm/aspeed_eeprom.c > > @@ -161,6 +161,53 @@ const uint8_t rainier_bmc_fruid[] = { > > 0x31, 0x50, 0x46, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, > > }; > > > > +/* Montblanc BMC FRU */ > > +const uint8_t montblanc_scm_fruid[] = { > > + 0xfb, 0xfb, 0x04, 0xff, 0x01, 0x0d, 0x4d, 0x49, 0x4e, 0x49, 0x50, 0x41, > > + 0x43, 0x4b, 0x33, 0x5f, 0x53, 0x43, 0x4d, 0x02, 0x08, 0x32, 0x30, 0x30, > > + 0x30, 0x32, 0x39, 0x34, 0x35, 0x04, 0x0c, 0x31, 0x33, 0x32, 0x30, 0x30, > > + 0x30, 0x31, 0x36, 0x34, 0x30, 0x31, 0x20, 0x05, 0x0c, 0x31, 0x33, 0x31, > > + 0x30, 0x30, 0x30, 0x31, 0x32, 0x37, 0x30, 0x31, 0x20, 0x06, 0x0c, 0x52, > > + 0x33, 0x32, 0x31, 0x34, 0x47, 0x30, 0x30, 0x30, 0x33, 0x30, 0x31, 0x07, > > + 0x0d, 0x41, 0x30, 0x33, 0x31, 0x33, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, > > + 0x58, 0x58, 0x08, 0x01, 0x01, 0x09, 0x01, 0x00, 0x0a, 0x01, 0x00, 0x0b, > > + 0x0d, 0x4d, 0x32, 0x32, 0x31, 0x33, 0x32, 0x33, 0x31, 0x37, 0x30, 0x30, > > + 0x30, 0x32, 0x0c, 0x03, 0x43, 0x4c, 0x53, 0x0d, 0x08, 0x32, 0x30, 0x32, > > + 0x33, 0x30, 0x35, 0x30, 0x31, 0x0e, 0x03, 0x57, 0x55, 0x53, 0x0f, 0x03, > > + 0x43, 0x54, 0x48, 0x10, 0x06, 0x01, 0x00, 0x00, 0x91, 0xdb, 0xb4, 0x13, > > + 0x03, 0x53, 0x43, 0x4d, 0xfa, 0x02, 0x02, 0x61, > > +}; > > + > > +const uint8_t montblanc_fcm_fruid[] = { > > + 0xfb, 0xfb, 0x04, 0xff, 0x01, 0x0d, 0x4d, 0x49, 0x4e, 0x49, 0x50, 0x41, > > + 0x43, 0x4b, 0x33, 0x5f, 0x46, 0x43, 0x42, 0x02, 0x08, 0x33, 0x30, 0x30, > > + 0x30, 0x30, 0x31, 0x36, 0x31, 0x04, 0x0c, 0x31, 0x33, 0x32, 0x30, 0x30, > > + 0x30, 0x31, 0x36, 0x33, 0x30, 0x31, 0x20, 0x05, 0x0c, 0x31, 0x33, 0x31, > > + 0x30, 0x30, 0x30, 0x31, 0x33, 0x30, 0x30, 0x31, 0x20, 0x06, 0x0c, 0x52, > > + 0x33, 0x32, 0x31, 0x34, 0x47, 0x30, 0x30, 0x31, 0x32, 0x30, 0x31, 0x07, > > + 0x0d, 0x41, 0x31, 0x32, 0x31, 0x32, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, > > + 0x58, 0x58, 0x08, 0x01, 0x01, 0x09, 0x01, 0x00, 0x0a, 0x01, 0x00, 0x0b, > > + 0x0d, 0x46, 0x35, 0x30, 0x31, 0x33, 0x32, 0x33, 0x31, 0x37, 0x30, 0x30, > > + 0x30, 0x35, 0x0c, 0x03, 0x43, 0x4c, 0x53, 0x0d, 0x08, 0x32, 0x30, 0x32, > > + 0x33, 0x30, 0x35, 0x30, 0x31, 0x0e, 0x03, 0x57, 0x55, 0x53, 0x0f, 0x03, > > + 0x43, 0x54, 0x48, 0x10, 0x06, 0x02, 0x00, 0x00, 0x91, 0xdb, 0xb4, 0x11, > > + 0x06, 0x03, 0x00, 0x00, 0x91, 0xdb, 0xb4, 0x12, 0x02, 0x8a, 0x00, 0x13, > > + 0x03, 0x46, 0x43, 0x42, 0xfa, 0x02, 0x50, 0x47, > > +}; > > + > > +const uint8_t montblanc_bmc_fruid[] = { > > + 0xfb, 0xfb, 0x04, 0xff, 0x01, 0x0d, 0x4d, 0x49, 0x4e, 0x49, 0x50, 0x41, > > + 0x43, 0x4b, 0x33, 0x5f, 0x42, 0x4d, 0x43, 0x04, 0x0c, 0x31, 0x33, 0x32, > > + 0x30, 0x30, 0x30, 0x31, 0x33, 0x36, 0x30, 0x31, 0x20, 0x05, 0x0c, 0x31, > > + 0x33, 0x31, 0x30, 0x30, 0x30, 0x30, 0x38, 0x36, 0x30, 0x35, 0x20, 0x06, > > + 0x0c, 0x52, 0x33, 0x30, 0x39, 0x37, 0x47, 0x30, 0x30, 0x30, 0x32, 0x30, > > + 0x37, 0x07, 0x0d, 0x42, 0x30, 0x32, 0x37, 0x34, 0x58, 0x58, 0x58, 0x58, > > + 0x58, 0x58, 0x58, 0x58, 0x08, 0x01, 0x04, 0x09, 0x01, 0x00, 0x0a, 0x01, > > + 0x00, 0x0c, 0x03, 0x43, 0x4c, 0x53, 0x0d, 0x08, 0x32, 0x30, 0x32, 0x33, > > + 0x30, 0x35, 0x30, 0x31, 0x0e, 0x03, 0x57, 0x55, 0x53, 0x0f, 0x03, 0x43, > > + 0x54, 0x48, 0x13, 0x03, 0x42, 0x4d, 0x43, 0xfa, 0x02, 0xef, 0xba, > > +}; > > + > > const size_t tiogapass_bmc_fruid_len = sizeof(tiogapass_bmc_fruid); > > const size_t fby35_nic_fruid_len = sizeof(fby35_nic_fruid); > > const size_t fby35_bb_fruid_len = sizeof(fby35_bb_fruid); > > @@ -168,3 +215,6 @@ const size_t fby35_bmc_fruid_len = sizeof(fby35_bmc_fruid); > > const size_t yosemitev2_bmc_fruid_len = sizeof(yosemitev2_bmc_fruid); > > const size_t rainier_bb_fruid_len = sizeof(rainier_bb_fruid); > > const size_t rainier_bmc_fruid_len = sizeof(rainier_bmc_fruid); > > +const size_t montblanc_scm_fruid_len = sizeof(montblanc_scm_fruid); > > +const size_t montblanc_fcm_fruid_len = sizeof(montblanc_fcm_fruid); > > +const size_t montblanc_bmc_fruid_len = sizeof(montblanc_bmc_fruid); > > diff --git a/hw/arm/aspeed_eeprom.h b/hw/arm/aspeed_eeprom.h > > index bbf9e54365..b8fbdd0734 100644 > > --- a/hw/arm/aspeed_eeprom.h > > +++ b/hw/arm/aspeed_eeprom.h > > @@ -27,4 +27,11 @@ extern const size_t rainier_bb_fruid_len; > > extern const uint8_t rainier_bmc_fruid[]; > > extern const size_t rainier_bmc_fruid_len; > > > > +extern const uint8_t montblanc_scm_fruid[]; > > +extern const uint8_t montblanc_fcm_fruid[]; > > +extern const uint8_t montblanc_bmc_fruid[]; > > +extern const size_t montblanc_scm_fruid_len; > > +extern const size_t montblanc_fcm_fruid_len; > > +extern const size_t montblanc_bmc_fruid_len; > > + > > #endif > [-- Attachment #2: Type: text/html, Size: 27897 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH qemu v5] aspeed add montblanc bmc reference from fuji 2023-07-05 17:38 ` Mike Choi @ 2023-07-06 3:14 ` Sittisak Sinprem 2023-07-06 6:27 ` Cédric Le Goater 0 siblings, 1 reply; 8+ messages in thread From: Sittisak Sinprem @ 2023-07-06 3:14 UTC (permalink / raw) To: Mike Choi Cc: Cédric Le Goater, Bin Huang, Tao Ren, qemu-devel@nongnu.org, qemu-arm@nongnu.org, peter.maydell@linaro.org, andrew@aj.id.au, Joel Stanley, qemu-stable@nongnu.org, srikanth@celestica.com, ssumet@celestica.com, thangavelu.v@celestica.com, kgengan@celestica.com, anandaramanv@celestica.com [-- Attachment #1: Type: text/plain, Size: 14235 bytes --] Hi Mike, the FRUID data, it is used to define the BMC Mac address, to able the CIT, test_eeprom, test_bmc_mac on Qemu. On Thu, Jul 6, 2023 at 12:38 AM Mike Choi <mikechoi@meta.com> wrote: > Hi Sittisak, > > > > Minipack3 is not open-sourced yet, and we are unlikely to be able to > upstream detailed data. > > > > 1. What is these FRUID datas for, is it for testing? > 2. What other option do we have, since we are not able to upstream > FRUID data. (It is still OK to upstream system configuration, but NOT the > arrays of _fruid data array) > > > > Thanks, > > Mike > > > > > > *From: *Cédric Le Goater <clg@kaod.org> > *Date: *Tuesday, July 4, 2023 at 7:07 AM > *To: *Sittisak Sinprem <ssinprem@celestica.com>, Bin Huang < > binhuang@meta.com>, Tao Ren <taoren@meta.com>, Mike Choi < > mikechoi@meta.com> > *Cc: *qemu-devel@nongnu.org <qemu-devel@nongnu.org>, qemu-arm@nongnu.org < > qemu-arm@nongnu.org>, peter.maydell@linaro.org <peter.maydell@linaro.org>, > andrew@aj.id.au <andrew@aj.id.au>, Joel Stanley <joel@jms.id.au>, > qemu-stable@nongnu.org <qemu-stable@nongnu.org>, srikanth@celestica.com < > srikanth@celestica.com>, ssumet@celestica.com <ssumet@celefor stica.com>, > thangavelu.v@celestica.com <thangavelu.v@celestica.com>, > kgengan@celestica.com <kgengan@celestica.com>, anandaramanv@celestica.com > <anandaramanv@celestica.com> > *Subject: *Re: [PATCH qemu v5] aspeed add montblanc bmc reference from > fuji > > > > On 7/4/23 15:27, Sittisak Sinprem wrote: > > Hi Meta Team, > > > > the FRU EEPROM content, I think for now detail still be confidential, > > Please confirm, Can we add the description in Qemu upstream following > Cedric's request? > > We don't need all the details, and not the confidential part of course. > > C. > > > > > On Tue, Jul 4, 2023 at 6:19 PM Cédric Le Goater <clg@kaod.org < > mailto:clg@kaod.org <clg@kaod.org>>> wrote: > > > > On 7/4/23 13:06, ~ssinprem wrote: > > > From: Sittisak Sinprem <ssinprem@celestica.com < > mailto:ssinprem@celestica.com <ssinprem@celestica.com>>> > > > > > > - I2C list follow I2C Tree v1.6 20230320 > > > - fru eeprom data use FB FRU format version 4 > > > > > > Signed-off-by: Sittisak Sinprem <ssinprem@celestica.com < > mailto:ssinprem@celestica.com <ssinprem@celestica.com>>> > > > > You shoot too fast :) Please add some description for the EEPROM > contents. > > What they enable when the OS/FW boots is good to know for QEMU. > > > > Thanks, > > > > C. > > > > > > > --- > > > docs/system/arm/aspeed.rst | 1 + > > > hw/arm/aspeed.c | 65 > ++++++++++++++++++++++++++++++++++++++ > > > hw/arm/aspeed_eeprom.c | 50 +++++++++++++++++++++++++++++ > > > hw/arm/aspeed_eeprom.h | 7 ++++ > > > 4 files changed, 123 insertions(+) > > > > > > diff --git a/docs/system/arm/aspeed.rst > b/docs/system/arm/aspeed.rst > > > index 80538422a1..5e0824f48b 100644 > > > --- a/docs/system/arm/aspeed.rst > > > +++ b/docs/system/arm/aspeed.rst > > > @@ -33,6 +33,7 @@ AST2600 SoC based machines : > > > - ``tacoma-bmc`` OpenPOWER Witherspoon POWER9 AST2600 > BMC > > > - ``rainier-bmc`` IBM Rainier POWER10 BMC > > > - ``fuji-bmc`` Facebook Fuji BMC > > > +- ``montblanc-bmc`` Facebook Montblanc BMC > > > - ``bletchley-bmc`` Facebook Bletchley BMC > > > - ``fby35-bmc`` Facebook fby35 BMC > > > - ``qcom-dc-scm-v1-bmc`` Qualcomm DC-SCM V1 BMC > > > diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c > > > index 9fca644d92..bbb7a3392c 100644 > > > --- a/hw/arm/aspeed.c > > > +++ b/hw/arm/aspeed.c > > > @@ -189,6 +189,10 @@ struct AspeedMachineState { > > > #define FUJI_BMC_HW_STRAP1 0x00000000 > > > #define FUJI_BMC_HW_STRAP2 0x00000000 > > > > > > +/* Montblanc hardware value */ > > > +#define MONTBLANC_BMC_HW_STRAP1 0x00000000 > > > +#define MONTBLANC_BMC_HW_STRAP2 0x00000000 > > > + > > > /* Bletchley hardware value */ > > > /* TODO: Leave same as EVB for now. */ > > > #define BLETCHLEY_BMC_HW_STRAP1 AST2600_EVB_HW_STRAP1 > > > @@ -925,6 +929,41 @@ static void > fuji_bmc_i2c_init(AspeedMachineState *bmc) > > > } > > > } > > > > > > +static void montblanc_bmc_i2c_init(AspeedMachineState *bmc) > > > +{ > > > + AspeedSoCState *soc = &bmc->soc; > > > + I2CBus *i2c[16] = {}; > > > + > > > + for (int i = 0; i < 16; i++) { > > > + i2c[i] = aspeed_i2c_get_bus(&soc->i2c, i); > > > + } > > > + > > > + /* Ref from Minipack3_I2C_Tree_V1.6 20230320 */ > > > + at24c_eeprom_init_rom(i2c[3], 0x56, 8192, > montblanc_scm_fruid, > > > + montblanc_scm_fruid_len); > > > + at24c_eeprom_init_rom(i2c[6], 0x53, 8192, > montblanc_fcm_fruid, > > > + montblanc_fcm_fruid_len); > > > + > > > + /* CPLD and FPGA */ > > > + at24c_eeprom_init(i2c[1], 0x35, 256); /* SCM CPLD */ > > > + at24c_eeprom_init(i2c[5], 0x35, 256); /* COMe CPLD TODO: > need to update */ > > > + at24c_eeprom_init(i2c[12], 0x60, 256); /* MCB PWR CPLD */ > > > + at24c_eeprom_init(i2c[13], 0x35, 256); /* IOB FPGA */ > > > + > > > + /* on BMC board */ > > > + at24c_eeprom_init_rom(i2c[8], 0x51, 8192, > montblanc_bmc_fruid, > > > + montblanc_bmc_fruid_len); /* BMC > EEPROM */ > > > + i2c_slave_create_simple(i2c[8], TYPE_LM75, 0x48); /* Thermal > Sensor */ > > > + > > > + /* COMe Sensor/EEPROM */ > > > + at24c_eeprom_init(i2c[0], 0x56, 16384); /* FRU > EEPROM */ > > > + i2c_slave_create_simple(i2c[0], TYPE_LM75, 0x48); /* INLET > Sensor */ > > > + i2c_slave_create_simple(i2c[0], TYPE_LM75, 0x4A); /* OUTLET > Sensor */ > > > + > > > + /* It expects a pca9555 but a pca9552 is compatible */ > > > + create_pca9552(soc, 4, 0x27); > > > +} > > > + > > > #define TYPE_TMP421 "tmp421" > > > > > > static void bletchley_bmc_i2c_init(AspeedMachineState *bmc) > > > @@ -1452,6 +1491,28 @@ static void > aspeed_machine_fuji_class_init(ObjectClass *oc, void *data) > > > aspeed_soc_num_cpus(amc->soc_name); > > > }; > > > > > > +#define MONTBLANC_BMC_RAM_SIZE ASPEED_RAM_SIZE(2 * GiB) > > > + > > > +static void aspeed_machine_montblanc_class_init(ObjectClass *oc, > void *data) > > > +{ > > > + MachineClass *mc = MACHINE_CLASS(oc); > > > + AspeedMachineClass *amc = ASPEED_MACHINE_CLASS(oc); > > > + > > > + mc->desc = "Facebook Montblanc BMC (Cortex-A7)"; > > > + amc->soc_name = "ast2600-a3"; > > > + amc->hw_strap1 = MONTBLANC_BMC_HW_STRAP1; > > > + amc->hw_strap2 = MONTBLANC_BMC_HW_STRAP2; > > > + amc->fmc_model = "mx66l1g45g"; > > > + amc->spi_model = "mx66l1g45g"; > > > + amc->num_cs = 2; > > > + amc->macs_mask = ASPEED_MAC3_ON; > > > + amc->i2c_init = montblanc_bmc_i2c_init; > > > + amc->uart_default = ASPEED_DEV_UART1; > > > + mc->default_ram_size = MONTBLANC_BMC_RAM_SIZE; > > > + mc->default_cpus = mc->min_cpus = mc->max_cpus = > > > + aspeed_soc_num_cpus(amc->soc_name); > > > +}; > > > + > > > #define BLETCHLEY_BMC_RAM_SIZE ASPEED_RAM_SIZE(2 * GiB) > > > > > > static void aspeed_machine_bletchley_class_init(ObjectClass > *oc, void *data) > > > @@ -1703,6 +1764,10 @@ static const TypeInfo > aspeed_machine_types[] = { > > > .name = MACHINE_TYPE_NAME("fuji-bmc"), > > > .parent = TYPE_ASPEED_MACHINE, > > > .class_init = aspeed_machine_fuji_class_init, > > > + }, { > > > + .name = MACHINE_TYPE_NAME("montblanc-bmc"), > > > + .parent = TYPE_ASPEED_MACHINE, > > > + .class_init = aspeed_machine_montblanc_class_init, > > > }, { > > > .name = MACHINE_TYPE_NAME("bletchley-bmc"), > > > .parent = TYPE_ASPEED_MACHINE, > > > diff --git a/hw/arm/aspeed_eeprom.c b/hw/arm/aspeed_eeprom.c > > > index ace5266cec..8cc73f83dc 100644 > > > --- a/hw/arm/aspeed_eeprom.c > > > +++ b/hw/arm/aspeed_eeprom.c > > > @@ -161,6 +161,53 @@ const uint8_t rainier_bmc_fruid[] = { > > > 0x31, 0x50, 0x46, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, > > > }; > > > > > > +/* Montblanc BMC FRU */ > > > +const uint8_t montblanc_scm_fruid[] = { > > > + 0xfb, 0xfb, 0x04, 0xff, 0x01, 0x0d, 0x4d, 0x49, 0x4e, 0x49, > 0x50, 0x41, > > > + 0x43, 0x4b, 0x33, 0x5f, 0x53, 0x43, 0x4d, 0x02, 0x08, 0x32, > 0x30, 0x30, > > > + 0x30, 0x32, 0x39, 0x34, 0x35, 0x04, 0x0c, 0x31, 0x33, 0x32, > 0x30, 0x30, > > > + 0x30, 0x31, 0x36, 0x34, 0x30, 0x31, 0x20, 0x05, 0x0c, 0x31, > 0x33, 0x31, > > > + 0x30, 0x30, 0x30, 0x31, 0x32, 0x37, 0x30, 0x31, 0x20, 0x06, > 0x0c, 0x52, > > > + 0x33, 0x32, 0x31, 0x34, 0x47, 0x30, 0x30, 0x30, 0x33, 0x30, > 0x31, 0x07, > > > + 0x0d, 0x41, 0x30, 0x33, 0x31, 0x33, 0x58, 0x58, 0x58, 0x58, > 0x58, 0x58, > > > + 0x58, 0x58, 0x08, 0x01, 0x01, 0x09, 0x01, 0x00, 0x0a, 0x01, > 0x00, 0x0b, > > > + 0x0d, 0x4d, 0x32, 0x32, 0x31, 0x33, 0x32, 0x33, 0x31, 0x37, > 0x30, 0x30, > > > + 0x30, 0x32, 0x0c, 0x03, 0x43, 0x4c, 0x53, 0x0d, 0x08, 0x32, > 0x30, 0x32, > > > + 0x33, 0x30, 0x35, 0x30, 0x31, 0x0e, 0x03, 0x57, 0x55, 0x53, > 0x0f, 0x03, > > > + 0x43, 0x54, 0x48, 0x10, 0x06, 0x01, 0x00, 0x00, 0x91, 0xdb, > 0xb4, 0x13, > > > + 0x03, 0x53, 0x43, 0x4d, 0xfa, 0x02, 0x02, 0x61, > > > +}; > > > + > > > +const uint8_t montblanc_fcm_fruid[] = { > > > + 0xfb, 0xfb, 0x04, 0xff, 0x01, 0x0d, 0x4d, 0x49, 0x4e, 0x49, > 0x50, 0x41, > > > + 0x43, 0x4b, 0x33, 0x5f, 0x46, 0x43, 0x42, 0x02, 0x08, 0x33, > 0x30, 0x30, > > > + 0x30, 0x30, 0x31, 0x36, 0x31, 0x04, 0x0c, 0x31, 0x33, 0x32, > 0x30, 0x30, > > > + 0x30, 0x31, 0x36, 0x33, 0x30, 0x31, 0x20, 0x05, 0x0c, 0x31, > 0x33, 0x31, > > > + 0x30, 0x30, 0x30, 0x31, 0x33, 0x30, 0x30, 0x31, 0x20, 0x06, > 0x0c, 0x52, > > > + 0x33, 0x32, 0x31, 0x34, 0x47, 0x30, 0x30, 0x31, 0x32, 0x30, > 0x31, 0x07, > > > + 0x0d, 0x41, 0x31, 0x32, 0x31, 0x32, 0x58, 0x58, 0x58, 0x58, > 0x58, 0x58, > > > + 0x58, 0x58, 0x08, 0x01, 0x01, 0x09, 0x01, 0x00, 0x0a, 0x01, > 0x00, 0x0b, > > > + 0x0d, 0x46, 0x35, 0x30, 0x31, 0x33, 0x32, 0x33, 0x31, 0x37, > 0x30, 0x30, > > > + 0x30, 0x35, 0x0c, 0x03, 0x43, 0x4c, 0x53, 0x0d, 0x08, 0x32, > 0x30, 0x32, > > > + 0x33, 0x30, 0x35, 0x30, 0x31, 0x0e, 0x03, 0x57, 0x55, 0x53, > 0x0f, 0x03, > > > + 0x43, 0x54, 0x48, 0x10, 0x06, 0x02, 0x00, 0x00, 0x91, 0xdb, > 0xb4, 0x11, > > > + 0x06, 0x03, 0x00, 0x00, 0x91, 0xdb, 0xb4, 0x12, 0x02, 0x8a, > 0x00, 0x13, > > > + 0x03, 0x46, 0x43, 0x42, 0xfa, 0x02, 0x50, 0x47, > > > +}; > > > + > > > +const uint8_t montblanc_bmc_fruid[] = { > > > + 0xfb, 0xfb, 0x04, 0xff, 0x01, 0x0d, 0x4d, 0x49, 0x4e, 0x49, > 0x50, 0x41, > > > + 0x43, 0x4b, 0x33, 0x5f, 0x42, 0x4d, 0x43, 0x04, 0x0c, 0x31, > 0x33, 0x32, > > > + 0x30, 0x30, 0x30, 0x31, 0x33, 0x36, 0x30, 0x31, 0x20, 0x05, > 0x0c, 0x31, > > > + 0x33, 0x31, 0x30, 0x30, 0x30, 0x30, 0x38, 0x36, 0x30, 0x35, > 0x20, 0x06, > > > + 0x0c, 0x52, 0x33, 0x30, 0x39, 0x37, 0x47, 0x30, 0x30, 0x30, > 0x32, 0x30, > > > + 0x37, 0x07, 0x0d, 0x42, 0x30, 0x32, 0x37, 0x34, 0x58, 0x58, > 0x58, 0x58, > > > + 0x58, 0x58, 0x58, 0x58, 0x08, 0x01, 0x04, 0x09, 0x01, 0x00, > 0x0a, 0x01, > > > + 0x00, 0x0c, 0x03, 0x43, 0x4c, 0x53, 0x0d, 0x08, 0x32, 0x30, > 0x32, 0x33, > > > + 0x30, 0x35, 0x30, 0x31, 0x0e, 0x03, 0x57, 0x55, 0x53, 0x0f, > 0x03, 0x43, > > > + 0x54, 0x48, 0x13, 0x03, 0x42, 0x4d, 0x43, 0xfa, 0x02, 0xef, > 0xba, > > > +}; > > > + > > > const size_t tiogapass_bmc_fruid_len = > sizeof(tiogapass_bmc_fruid); > > > const size_t fby35_nic_fruid_len = sizeof(fby35_nic_fruid); > > > const size_t fby35_bb_fruid_len = sizeof(fby35_bb_fruid); > > > @@ -168,3 +215,6 @@ const size_t fby35_bmc_fruid_len = > sizeof(fby35_bmc_fruid); > > > const size_t yosemitev2_bmc_fruid_len = > sizeof(yosemitev2_bmc_fruid); > > > const size_t rainier_bb_fruid_len = sizeof(rainier_bb_fruid); > > > const size_t rainier_bmc_fruid_len = sizeof(rainier_bmc_fruid); > > > +const size_t montblanc_scm_fruid_len = > sizeof(montblanc_scm_fruid); > > > +const size_t montblanc_fcm_fruid_len = > sizeof(montblanc_fcm_fruid); > > > +const size_t montblanc_bmc_fruid_len = > sizeof(montblanc_bmc_fruid); > > > diff --git a/hw/arm/aspeed_eeprom.h b/hw/arm/aspeed_eeprom.h > > > index bbf9e54365..b8fbdd0734 100644 > > > --- a/hw/arm/aspeed_eeprom.h > > > +++ b/hw/arm/aspeed_eeprom.h > > > @@ -27,4 +27,11 @@ extern const size_t rainier_bb_fruid_len; > > > extern const uint8_t rainier_bmc_fruid[]; > > > extern const size_t rainier_bmc_fruid_len; > > > > > > +extern const uint8_t montblanc_scm_fruid[]; > > > +extern const uint8_t montblanc_fcm_fruid[]; > > > +extern const uint8_t montblanc_bmc_fruid[]; > > > +extern const size_t montblanc_scm_fruid_len; > > > +extern const size_t montblanc_fcm_fruid_len; > > > +extern const size_t montblanc_bmc_fruid_len; > > > + > > > #endif > > > [-- Attachment #2: Type: text/html, Size: 21317 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH qemu v5] aspeed add montblanc bmc reference from fuji 2023-07-06 3:14 ` Sittisak Sinprem @ 2023-07-06 6:27 ` Cédric Le Goater 0 siblings, 0 replies; 8+ messages in thread From: Cédric Le Goater @ 2023-07-06 6:27 UTC (permalink / raw) To: Sittisak Sinprem, Mike Choi Cc: Bin Huang, Tao Ren, qemu-devel@nongnu.org, qemu-arm@nongnu.org, peter.maydell@linaro.org, andrew@aj.id.au, Joel Stanley, qemu-stable@nongnu.org, srikanth@celestica.com, ssumet@celestica.com, thangavelu.v@celestica.com, kgengan@celestica.com, anandaramanv@celestica.com On 7/6/23 05:14, Sittisak Sinprem wrote: > Hi Mike, > > the FRUID data, it is used to define the BMC Mac address, > to able the CIT, test_eeprom, test_bmc_mac on Qemu. That's enough for the commit log and the comment. Adding the EEPROM contents in QEMU enables more tests to be performed on the FW side and consequently, it exercises more our models. Thanks, C. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH qemu v5] aspeed add montblanc bmc reference from fuji 2023-07-04 11:06 [PATCH qemu v5] aspeed add montblanc bmc reference from fuji ~ssinprem 2023-07-04 11:19 ` Cédric Le Goater @ 2023-07-04 20:18 ` Michael Tokarev 1 sibling, 0 replies; 8+ messages in thread From: Michael Tokarev @ 2023-07-04 20:18 UTC (permalink / raw) To: ~ssinprem, qemu-devel, qemu-arm, clg, peter.maydell Cc: andrew, joel, qemu-stable, srikanth, ssumet, thangavelu.v, kgengan, anandaramanv 04.07.2023 14:06, ~ssinprem wrote: > From: Sittisak Sinprem <ssinprem@celestica.com> > > - I2C list follow I2C Tree v1.6 20230320 > - fru eeprom data use FB FRU format version 4 > > Signed-off-by: Sittisak Sinprem <ssinprem@celestica.com> Once again, this has nothing to do with qemu-stable@, it is not a fix suitable for stable releases. Thanks, /mjt ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2023-07-06 6:29 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-07-04 11:06 [PATCH qemu v5] aspeed add montblanc bmc reference from fuji ~ssinprem 2023-07-04 11:19 ` Cédric Le Goater 2023-07-04 13:27 ` Sittisak Sinprem 2023-07-04 14:07 ` Cédric Le Goater 2023-07-05 17:38 ` Mike Choi 2023-07-06 3:14 ` Sittisak Sinprem 2023-07-06 6:27 ` Cédric Le Goater 2023-07-04 20:18 ` Michael Tokarev
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).