#include #include #include static DL_ERR_CODE_E dloader_convert_return_value(FUSE_ERR_CODE_E ret) { DL_ERR_CODE_E err = ERR_NONE; switch (ret) { case ERR_NONE: err = ERR_NONE; break; case ERR_UNKNOWN: err = ERR_UNKNOWN; break; case ERR_FUSE_BIN_SIZE_CHECK_FAIL: err = ERR_DL_FUSE_SIZE_CHECK_FAIL; break; case ERR_FUSE_BIN_LENGTH_CHECK_FAIL: err = ERR_DL_FUSE_LENGTH_CHECK_FAIL; break; case ERR_FUSE_BIN_ACTION_TYPE_NOT_FIND: err = ERR_DL_FUSE_ACTION_TYPE_NOT_FIND; break; case ERR_FUSE_BIN_CRC_CHECK_FAIL: err = ERR_DL_FUSE_CRC_CHECK_FAIL; break; case ERR_FUSE_BIN_ENC_INIT_FAIL: err = ERR_DL_FUSE_ENC_INIT_FAIL; break; case ERR_FUSE_BIN_ENC_FAIL: err = ERR_DL_FUSE_ENC_FAIL; break; case ERR_FUSE_BIN_MALLOC_FAIL: err = ERR_DL_FUSE_MALLOC_FAIL; break; case ERR_FUSE_BIN_GEN_DATA_FAIL: err = ERR_DL_FUSE_GEN_DATA_FAIL; break; case ERR_FUSE_BIN_READ_FAIL: err = ERR_EFUSE_READ; break; case ERR_FUSE_BIN_WRITE_FAIL: err = ERR_EFUSE_BURN; break; case ERR_FUSE_BIN_READBACK_VERIFY_FAIL: err = ERR_DL_FUSE_READBACK_VERIFY_FAIL; break; default: break; } return err; } void fastboot_cmd_fuse_bin(fastboot_t *fb, const char *arg, void *data, unsigned sz) { FUSE_ERR_CODE_E ret; DL_ERR_CODE_E err; ret = fuse_bin(data, sz); err = dloader_convert_return_value(ret); if (err) { ERROR("fuse bin error\r\n"); fastboot_common_fail(fb, response_error(err, arg)); } else { DBG("fuse bin success\r\n"); } fastboot_common_okay(fb, ""); }