All of lore.kernel.org
 help / color / mirror / Atom feed
* [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 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

* 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, qemu-arm, peter.maydell, andrew, Joel Stanley,
	qemu-stable, srikanth, ssumet, thangavelu.v, kgengan,
	anandaramanv

[-- 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, qemu-arm,
	peter.maydell, andrew, Joel Stanley, qemu-stable, srikanth,
	ssumet, thangavelu.v, kgengan, anandaramanv

[-- 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, qemu-arm, peter.maydell, andrew,
	Joel Stanley, qemu-stable, srikanth, ssumet, thangavelu.v,
	kgengan, anandaramanv

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

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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.