Files
test/middleware/dloader/dloader_fuse_bin.c
2025-11-07 20:19:23 +08:00

71 lines
1.8 KiB
C

#include <dloader.h>
#include <dloader_usb_fastboot.h>
#include <fuse_bin.h>
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, "");
}