qemu-stable
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH qemu v5] aspeed add montblanc bmc reference from fuji


From: Sittisak Sinprem
Subject: Re: [PATCH qemu v5] aspeed add montblanc bmc reference from fuji
Date: Thu, 6 Jul 2023 10:14:57 +0700

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@cele
for 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>> 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
>


reply via email to

[Prev in Thread] Current Thread [Next in Thread]