微知-Bluefield DPU使用flint烧录固件报错MFE_NO_FLASH_DETECTED是什么?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;

flint github的报错字符解析

参考:https://github.com/Mellanox/mstflint/blob/master/flint/err_msgs.h


#define FLINT_CLEAR_SEM_CMD_ERROR "No command is allowed when -clear_semaphore flag is given.\n"
#define FLINT_COMMAND_FLAGS_ERROR "For %s command, Please specify %s.\n"
#define FLINT_COMMAND_INCORRECT_FLAGS_ERROR "For %s command, %s.\n"
#define FLINT_NO_OPTIONS_FOUND_ERROR "No options found. 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值