mirror of
https://github.com/torvalds/linux.git
synced 2024-12-25 20:32:22 +00:00
accel/habanalabs: align to latest firmware specs
Copy the most up-to-date interface files to the firmware. Signed-off-by: Oded Gabbay <ogabbay@kernel.org> Reviewed-by: Ofir Bitton <obitton@habana.ai>
This commit is contained in:
parent
443355d2ff
commit
336b78c655
@ -9784,7 +9784,7 @@ static void gaudi2_handle_eqe(struct hl_device *hdev, struct hl_eq_entry *eq_ent
|
||||
break;
|
||||
|
||||
case GAUDI2_EVENT_CPU_FP32_NOT_SUPPORTED:
|
||||
case GAUDI2_EVENT_DEV_RESET_REQ:
|
||||
case GAUDI2_EVENT_CPU_DEV_RESET_REQ:
|
||||
event_mask |= HL_NOTIFIER_EVENT_GENERAL_HW_ERR;
|
||||
error_count = GAUDI2_NA_EVENT_CAUSE;
|
||||
is_critical = true;
|
||||
|
@ -357,6 +357,7 @@ struct hl_eq_addr_dec_intr_data {
|
||||
struct hl_eq_entry {
|
||||
struct hl_eq_header hdr;
|
||||
union {
|
||||
__le64 data_placeholder;
|
||||
struct hl_eq_ecc_data ecc_data;
|
||||
struct hl_eq_hbm_ecc_data hbm_ecc_data; /* Gaudi1 HBM */
|
||||
struct hl_eq_sm_sei_data sm_sei_data;
|
||||
@ -661,6 +662,9 @@ enum pq_init_status {
|
||||
* CPUCP_PACKET_ACTIVE_STATUS_SET -
|
||||
* LKD sends FW indication whether device is free or in use, this indication is reported
|
||||
* also to the BMC.
|
||||
*
|
||||
* CPUCP_PACKET_REGISTER_INTERRUPTS -
|
||||
* Packet to register interrupts indicating LKD is ready to receive events from FW.
|
||||
*/
|
||||
|
||||
enum cpucp_packet_id {
|
||||
@ -725,6 +729,8 @@ enum cpucp_packet_id {
|
||||
CPUCP_PACKET_RESERVED9, /* not used */
|
||||
CPUCP_PACKET_RESERVED10, /* not used */
|
||||
CPUCP_PACKET_RESERVED11, /* not used */
|
||||
CPUCP_PACKET_RESERVED12, /* internal */
|
||||
CPUCP_PACKET_REGISTER_INTERRUPTS, /* internal */
|
||||
CPUCP_PACKET_ID_MAX /* must be last */
|
||||
};
|
||||
|
||||
@ -1127,6 +1133,7 @@ struct cpucp_security_info {
|
||||
* (0 = functional 1 = binned)
|
||||
* @interposer_version: Interposer version programmed in eFuse
|
||||
* @substrate_version: Substrate version programmed in eFuse
|
||||
* @fw_hbm_region_size: Size in bytes of FW reserved region in HBM.
|
||||
* @fw_os_version: Firmware OS Version
|
||||
*/
|
||||
struct cpucp_info {
|
||||
@ -1154,7 +1161,7 @@ struct cpucp_info {
|
||||
__u8 substrate_version;
|
||||
__u8 reserved2;
|
||||
struct cpucp_security_info sec_info;
|
||||
__le32 reserved3;
|
||||
__le32 fw_hbm_region_size;
|
||||
__u8 pll_map[PLL_MAP_LEN];
|
||||
__le64 mme_binning_mask;
|
||||
__u8 fw_os_version[VERSION_MAX_LEN];
|
||||
|
@ -770,15 +770,23 @@ enum hl_components {
|
||||
HL_COMPONENTS_ARMCP,
|
||||
HL_COMPONENTS_CPLD,
|
||||
HL_COMPONENTS_UBOOT,
|
||||
HL_COMPONENTS_FUSE,
|
||||
HL_COMPONENTS_MAX_NUM = 16
|
||||
};
|
||||
|
||||
#define NAME_MAX_LEN 32 /* bytes */
|
||||
struct hl_module_data {
|
||||
__u8 name[NAME_MAX_LEN];
|
||||
__u8 version[VERSION_MAX_LEN];
|
||||
};
|
||||
|
||||
/**
|
||||
* struct hl_component_versions - versions associated with hl component.
|
||||
* @struct_size: size of all the struct (including dynamic size of modules).
|
||||
* @modules_offset: offset of the modules field in this struct.
|
||||
* @component: version of the component itself.
|
||||
* @fw_os: Firmware OS Version.
|
||||
* @comp_name: Name of the component.
|
||||
* @modules_mask: i'th bit (from LSB) is a flag - on if module i in enum
|
||||
* hl_modules is used.
|
||||
* @modules_counter: number of set bits in modules_mask.
|
||||
@ -791,45 +799,14 @@ struct hl_component_versions {
|
||||
__le16 modules_offset;
|
||||
__u8 component[VERSION_MAX_LEN];
|
||||
__u8 fw_os[VERSION_MAX_LEN];
|
||||
__u8 comp_name[NAME_MAX_LEN];
|
||||
__le16 modules_mask;
|
||||
__u8 modules_counter;
|
||||
__u8 reserved[1];
|
||||
__u8 modules[][VERSION_MAX_LEN];
|
||||
struct hl_module_data modules[];
|
||||
};
|
||||
|
||||
/**
|
||||
* struct hl_fw_versions - all versions (fuse, cpucp's components with their
|
||||
* modules)
|
||||
* @struct_size: size of all the struct (including dynamic size of components).
|
||||
* @components_offset: offset of the components field in this struct.
|
||||
* @fuse: silicon production FUSE information.
|
||||
* @components_mask: i'th bit (from LSB) is a flag - on if component i in enum
|
||||
* hl_components is used.
|
||||
* @components_counter: number of set bits in components_mask.
|
||||
* @reserved: reserved for future use.
|
||||
* @components: versions of hl components. Index i corresponds to the i'th bit
|
||||
* that is *on* in components_mask. For example, if
|
||||
* components_mask=0b101, then *components represents arcpid and
|
||||
* *(hl_component_versions*)((char*)components + 1') represents
|
||||
* preboot, where 1' = components[0].struct_size.
|
||||
*/
|
||||
struct hl_fw_versions {
|
||||
__le16 struct_size;
|
||||
__le16 components_offset;
|
||||
__u8 fuse[VERSION_MAX_LEN];
|
||||
__le16 components_mask;
|
||||
__u8 components_counter;
|
||||
__u8 reserved[1];
|
||||
struct hl_component_versions components[];
|
||||
};
|
||||
|
||||
/* Max size of struct hl_component_versions */
|
||||
#define HL_COMPONENT_VERSIONS_MAX_SIZE \
|
||||
(sizeof(struct hl_component_versions) + HL_MODULES_MAX_NUM * \
|
||||
VERSION_MAX_LEN)
|
||||
|
||||
/* Max size of struct hl_fw_versions */
|
||||
#define HL_FW_VERSIONS_MAX_SIZE (sizeof(struct hl_fw_versions) + \
|
||||
HL_COMPONENTS_MAX_NUM * HL_COMPONENT_VERSIONS_MAX_SIZE)
|
||||
/* Max size of fit size */
|
||||
#define HL_FW_VERSIONS_FIT_SIZE 4096
|
||||
|
||||
#endif /* HL_BOOT_IF_H */
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0
|
||||
*
|
||||
* Copyright 2018-2021 HabanaLabs, Ltd.
|
||||
* Copyright 2018-2022 HabanaLabs, Ltd.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
@ -958,7 +958,7 @@ enum gaudi2_async_event_id {
|
||||
GAUDI2_EVENT_CPU11_STATUS_NIC11_ENG1 = 1318,
|
||||
GAUDI2_EVENT_ARC_DCCM_FULL = 1319,
|
||||
GAUDI2_EVENT_CPU_FP32_NOT_SUPPORTED = 1320,
|
||||
GAUDI2_EVENT_DEV_RESET_REQ = 1321,
|
||||
GAUDI2_EVENT_CPU_DEV_RESET_REQ = 1321,
|
||||
GAUDI2_EVENT_SIZE,
|
||||
};
|
||||
|
||||
|
@ -63,7 +63,10 @@ struct gaudi2_cold_rst_data {
|
||||
u32 fake_sig_validation_en : 1;
|
||||
u32 bist_skip_enable : 1;
|
||||
u32 bist_need_iatu_config : 1;
|
||||
u32 reserved : 24;
|
||||
u32 fake_bis_compliant : 1;
|
||||
u32 wd_rst_cause_arm : 1;
|
||||
u32 wd_rst_cause_arcpid : 1;
|
||||
u32 reserved : 21;
|
||||
};
|
||||
__le32 data;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user