文章目录
- 背景
- 一些报错场景
- MFE是什么?
- 有哪些MFE
背景
在DPU的fw操作flint的时候,很多命令都会报这个错误:MFE_NO_FLASH_DETECTED
,早期很疑惑并且猜测MFE是Mellanox Firmware Engine。实际并不是,具体还得走到mellanox flash的代码,该部分代码是Mellanox flint的一个库。
一些报错场景
比如烧录错误的PSID的fw到DPU后,造成DPU无法启动,重新烧录报错:
比如下面这两个之所以报错是网卡secure功能,不允许查看。在ES上可以查看。
MFE是什么?
从下面这点代码可以得知,MFE,是Mellanox Flash Error的全称
typedef enum MfError
{MFE_OK = 0,MFE_ERROR,MFE_BAD_PARAMS,MFE_CR_ERROR,MFE_HW_DEVID_ERROR,
有哪些MFE
比如:MFE_NO_FLASH_DETECTED就在其中
typedef enum MfError
{MFE_OK = 0,MFE_ERROR,MFE_BAD_PARAMS,MFE_CR_ERROR,MFE_HW_DEVID_ERROR,MFE_INVAL,MFE_NOT_IMPLEMENTED,MFE_UNSUPPORTED_FLASH_TOPOLOGY,MFE_UNSUPPORTED_FLASH_TYPE,MFE_CFI_FAILED,MFE_TIMEOUT,MFE_ERASE_TIMEOUT,MFE_WRITE_TIMEOUT,MFE_ERASE_ERROR,MFE_WRITE_ERROR,MFE_BAD_ALIGN,MFE_SEM_LOCKED,MFE_VERIFY_ERROR,MFE_NOMEM,MFE_OUT_OF_RANGE,MFE_CMD_SUPPORTED_INBAND_ONLY,MFE_NO_FLASH_DETECTED,MFE_LOCKED_CRSPACE,MFE_CMDIF_BAD_STATUS_ERR,MFE_CMDIF_TIMEOUT_ERR,MFE_CMDIF_NOT_READY,MFE_CMDIF_UNKN_TLV,MFE_CMDIF_BAD_OP,MFE_MISMATCH_KEY,MFE_MISSING_KEY,MFE_UNKNOWN_REG,MFE_DIRECT_FW_ACCESS_DISABLED,MFE_MANAGED_SWITCH_NOT_SUPPORTED,MFE_NOT_SUPPORTED_OPERATION,MFE_FLASH_NOT_EXIST,MFE_MISMATCH_PARAM,MFE_EXCEED_SUBSECTORS_MAX_NUM,MFE_EXCEED_SECTORS_MAX_NUM,MFE_SECTORS_NUM_NOT_POWER_OF_TWO,MFE_SECTORS_NUM_MORE_THEN_0_LESS_THEN_4,MFE_UNKOWN_ACCESS_TYPE,MFE_UNSUPPORTED_DEVICE,MFE_UNSUPPORTED_ERASE_OPERATION,MFE_OLD_DEVICE_TYPE,MFE_ICMD_INIT_FAILED,MFE_ICMD_NOT_SUPPORTED,MFE_HW_ACCESS_NOT_SUPP,MFE_MAD_SEND_ERR,MFE_ICMD_BAD_PARAM,MFE_ICMD_INVALID_OPCODE,MFE_ICMD_INVALID_CMD,MFE_ICMD_OPERATIONAL_ERROR,MFE_DATA_IS_OTP,MFE_REG_ACCESS_BAD_METHOD,MFE_REG_ACCESS_NOT_SUPPORTED,MFE_REG_ACCESS_DEV_BUSY,MFE_REG_ACCESS_VER_NOT_SUPP,MFE_REG_ACCESS_UNKNOWN_TLV,MFE_REG_ACCESS_REG_NOT_SUPP,MFE_REG_ACCESS_CLASS_NOT_SUPP,MFE_REG_ACCESS_METHOD_NOT_SUPP,MFE_REG_ACCESS_BAD_PARAM,MFE_REG_ACCESS_RES_NOT_AVLBL,MFE_REG_ACCESS_MSG_RECPT_ACK,MFE_REG_ACCESS_UNKNOWN_ERR,MFE_REG_ACCESS_SIZE_EXCCEEDS_LIMIT,MFE_PCICONF,MFE_ILLEGAL_BANK_NUM,MFE_OCR_NOT_SUPPORTED,MFE_ACCESS_COMMANDS_NOT_INITIALIZED,MFE_LAST
} MfError;