@@ -35,6 +35,7 @@ enum cpu_boot_err {
3535 CPU_BOOT_ERR_TPM_FAIL = 20 ,
3636 CPU_BOOT_ERR_TMP_THRESH_INIT_FAIL = 21 ,
3737 CPU_BOOT_ERR_EEPROM_FAIL = 22 ,
38+ CPU_BOOT_ERR_ENG_ARC_MEM_SCRUB_FAIL = 23 ,
3839 CPU_BOOT_ERR_ENABLED = 31 ,
3940 CPU_BOOT_ERR_SCND_EN = 63 ,
4041 CPU_BOOT_ERR_LAST = 64 /* we have 2 registers of 32 bits */
@@ -51,6 +52,7 @@ enum cpu_boot_err {
5152 (1 << CPU_BOOT_ERR_DEVICE_UNUSABLE_FAIL) | \
5253 (1 << CPU_BOOT_ERR_BINNING_FAIL) | \
5354 (1 << CPU_BOOT_ERR_DRAM_SKIPPED) | \
55+ (1 << CPU_BOOT_ERR_ENG_ARC_MEM_SCRUB_FAIL) | \
5456 (1 << CPU_BOOT_ERR_EEPROM_FAIL))
5557
5658/*
@@ -132,6 +134,9 @@ enum cpu_boot_err {
132134 * CPU_BOOT_ERR_EEPROM_FAIL Failed reading EEPROM data. Defaults
133135 * are used.
134136 *
137+ * CPU_BOOT_ERR_ENG_ARC_MEM_SCRUB_FAIL Failed scrubbing the Engines/ARCFarm
138+ * memories. Boot disabled until reset.
139+ *
135140 * CPU_BOOT_ERR0_ENABLED Error registers enabled.
136141 * This is a main indication that the
137142 * running FW populates the error
@@ -157,6 +162,7 @@ enum cpu_boot_err {
157162#define CPU_BOOT_ERR0_TPM_FAIL (1 << CPU_BOOT_ERR_TPM_FAIL)
158163#define CPU_BOOT_ERR0_TMP_THRESH_INIT_FAIL (1 << CPU_BOOT_ERR_TMP_THRESH_INIT_FAIL)
159164#define CPU_BOOT_ERR0_EEPROM_FAIL (1 << CPU_BOOT_ERR_EEPROM_FAIL)
165+ #define CPU_BOOT_ERR0_ENG_ARC_MEM_SCRUB_FAIL (1 << CPU_BOOT_ERR_ENG_ARC_MEM_SCRUB_FAIL)
160166#define CPU_BOOT_ERR0_ENABLED (1 << CPU_BOOT_ERR_ENABLED)
161167#define CPU_BOOT_ERR1_ENABLED (1 << CPU_BOOT_ERR_ENABLED)
162168
@@ -744,36 +750,6 @@ struct comms_status {
744750 };
745751};
746752
747- /**
748- * HL_MODULES_MAX_NUM is determined by the size of modules_mask in struct
749- * hl_component_versions
750- */
751- enum hl_modules {
752- HL_MODULES_BOOT_INFO = 0 ,
753- HL_MODULES_EEPROM ,
754- HL_MODULES_FDT ,
755- HL_MODULES_I2C ,
756- HL_MODULES_LZ4 ,
757- HL_MODULES_MBEDTLS ,
758- HL_MODULES_MAX_NUM = 16
759- };
760-
761- /**
762- * HL_COMPONENTS_MAX_NUM is determined by the size of components_mask in
763- * struct cpucp_versions
764- */
765- enum hl_components {
766- HL_COMPONENTS_PID = 0 ,
767- HL_COMPONENTS_MGMT ,
768- HL_COMPONENTS_PREBOOT ,
769- HL_COMPONENTS_PPBOOT ,
770- HL_COMPONENTS_ARMCP ,
771- HL_COMPONENTS_CPLD ,
772- HL_COMPONENTS_UBOOT ,
773- HL_COMPONENTS_FUSE ,
774- HL_COMPONENTS_MAX_NUM = 16
775- };
776-
777753#define NAME_MAX_LEN 32 /* bytes */
778754struct hl_module_data {
779755 __u8 name [NAME_MAX_LEN ];
@@ -787,8 +763,6 @@ struct hl_module_data {
787763 * @component: version of the component itself.
788764 * @fw_os: Firmware OS Version.
789765 * @comp_name: Name of the component.
790- * @modules_mask: i'th bit (from LSB) is a flag - on if module i in enum
791- * hl_modules is used.
792766 * @modules_counter: number of set bits in modules_mask.
793767 * @reserved: reserved for future use.
794768 * @modules: versions of the component's modules. Elborated explanation in
@@ -800,9 +774,8 @@ struct hl_component_versions {
800774 __u8 component [VERSION_MAX_LEN ];
801775 __u8 fw_os [VERSION_MAX_LEN ];
802776 __u8 comp_name [NAME_MAX_LEN ];
803- __le16 modules_mask ;
804777 __u8 modules_counter ;
805- __u8 reserved [1 ];
778+ __u8 reserved [3 ];
806779 struct hl_module_data modules [];
807780};
808781
0 commit comments