10#define UPG_INTERFACE_H
36#define SHA_256_LENGTH 32
54#define PROTECT_KEY_LEN 16
323typedef void *(*upg_func_malloc)(
const uint32_t size);
632 const uint8_t *hash, uint32_t hash_len,
bool verify_old);
uint32_t errcode_t
Definition of error code.
Definition errcode.h:30
#define INFO_AREA_USER_LEN
info区用户字段长度
Definition upg_definitions_porting.h:82
#define KEY_AREA_RESERVED_LEN
key区保留字段长度
Definition upg_definitions_porting.h:73
#define PUBLIC_KEY_LEN
FOTA二级公钥长度
Definition upg_definitions_porting.h:100
#define SIG_LEN
签名字段长度
Definition upg_definitions_porting.h:91
void uapi_upg_register_user_defined_verify_func(uapi_upg_user_defined_check func, uintptr_t param)
注册用户自定义字段的校验函数。
Definition upg_verify.c:437
void(* uapi_upg_progress_cb)(uint32_t percent)
进度通知回调函数类型。
Definition upg.h:305
void(* upg_func_free)(void *ptr)
升级释放内存函数。
Definition upg.h:332
errcode_t uapi_upg_write_package_sync(uint32_t offset, const uint8_t *buff, uint16_t len)
将升级包数据写入本地存储器。
Definition upg_storage.c:241
#define SHA_256_LENGTH
哈希长度。
Definition upg.h:36
#define DIE_ID_LEN
芯片ID长度。
Definition upg.h:45
#define IV_LEN
IV 长度。
Definition upg.h:63
enum upg_result upg_result_t
分区枚举类型。
errcode_t uapi_upg_write_package_async(uint32_t offset, const uint8_t *buff, uint16_t len, uapi_upg_write_done_cb callback)
将升级包数据写入本地存储器。
Definition upg_storage.c:221
errcode_t uapi_upg_request_upgrade(bool reset)
申请开始进行本地升级。
Definition upg_storage.c:324
void(* upg_func_serial_putc)(const char c)
upg串口输出函数。
Definition upg.h:341
errcode_t(* uapi_upg_user_defined_check)(uint8_t *user_info, uint32_t info_len, uintptr_t param)
自定义字段类型校验函数。
Definition upg.h:314
void(* uapi_upg_write_done_cb)(errcode_t result)
写类型后的回调函数。
Definition upg.h:296
struct upg_key_area_data upg_key_area_data_t
升级key区域数据类型。
upg_status
升级状态枚举类型。
Definition upg.h:112
struct upg_package_header upg_package_header_t
升级包头类型
errcode_t uapi_upg_prepare(upg_prepare_info_t *prepare_info)
用来保存升级包的本地存储器的准备工作。
Definition upg_storage.c:61
errcode_t uapi_upg_verify_file_image(const upg_image_header_t *img_header, const uint8_t *hash, uint32_t hash_len, bool verify_old)
校验升级包中的升级镜像。
Definition upg_verify.c:761
errcode_t uapi_upg_register_progress_callback(uapi_upg_progress_cb func)
注册升级进度通知回调函数。
Definition upg_process.c:380
errcode_t uapi_upg_start(void)
开始本地升级。
Definition upg_process.c:317
errcode_t uapi_upg_read_package(uint32_t offset, uint8_t *buff, uint32_t len)
从本地存储器读取升级包数据。
Definition upg_storage.c:252
errcode_t uapi_upg_get_result(upg_result_t *result, uint32_t *last_image_index)
获取升级结果。
Definition upg_common.c:846
upg_result
分区枚举类型。
Definition upg.h:72
errcode_t uapi_upg_verify_file(const upg_package_header_t *pkg_header)
校验整个升级包。
Definition upg_verify.c:545
void *(* upg_func_malloc)(const uint32_t size)
升级使用内存分配函数。
Definition upg.h:323
struct upg_image_header upg_image_header_t
升级包镜像头类型
uint32_t uapi_upg_get_storage_size(void)
获取可存放升级包的空间大小。
Definition upg_common.c:260
enum upg_status upg_status_t
升级状态枚举类型。
struct upg_fota_info_data upg_fota_info_data_t
升级fota信息数据类型。
errcode_t uapi_upg_verify_file_head(const upg_package_header_t *pkg_header)
校验升级包头结构。
Definition upg_verify.c:449
errcode_t uapi_upg_init(const upg_func_t *func_list)
初始化升级模块。
Definition upg_common.c:920
upg_status_t uapi_upg_get_status(void)
获取升级状态。
Definition upg_storage.c:434
struct upg_func upg_func_t
可选函数结构。
errcode_t uapi_upg_reset_upgrade_flag(void)
重置升级标记
Definition upg_storage.c:121
#define PROTECT_KEY_LEN
加密秘钥长度。
Definition upg.h:54
struct upg_prepare_info upg_prepare_info_t
升级准备信息结构。
struct upg_image_hash_node upg_image_hash_node_t
升级镜像哈希节点类型。
@ UPG_STATUS_UPDATING
Definition upg.h:117
@ UPG_STATUS_NONE
Definition upg.h:119
@ UPG_STATUS_SUCC
Definition upg.h:113
@ UPG_STATUS_FAIL
Definition upg.h:115
@ UPG_RESULT_VERIFY_VERSION_FAILED
Definition upg.h:95
@ UPG_RESULT_UPDATE_IMAGE_FAILED
Definition upg.h:91
@ UPG_RESULT_IMAGE_ID_FAILED
Definition upg.h:97
@ UPG_RESULT_DECOMPRESS_IMAGE_FAILED
Definition upg.h:83
@ UPG_RESULT_PROCESS_NV_FAILED
Definition upg.h:93
@ UPG_RESULT_RECRYPT_IMAGE_FAILED
Definition upg.h:87
@ UPG_RESULT_DIFF_IMAGE_FAILED
Definition upg.h:89
@ UPG_RESULT_MAX
Definition upg.h:101
@ UPG_RESULT_VERIFY_IMAGE_FAILED
Definition upg.h:79
@ UPG_RESULT_RETRY_ALL_FAILED
Definition upg.h:99
@ UPG_RESULT_VERIFY_HEAD_FAILED
Definition upg.h:75
@ UPG_RESULT_DECRYPT_IMAGE_FAILED
Definition upg.h:85
@ UPG_RESULT_VERIFY_OLD_IMAGE_FAILED
Definition upg.h:81
@ UPG_RESULT_UPDATE_SUCCESS
Definition upg.h:73
@ UPG_RESULT_VERIFY_HASH_TABLE_FAILED
Definition upg.h:77
升级fota信息数据类型。
Definition upg.h:178
uint32_t mask_fota_version_ext
Definition upg.h:189
uint32_t image_num
Definition upg.h:201
uint32_t image_hash_table_length
Definition upg.h:197
uint32_t image_hash_table_addr
Definition upg.h:195
uint32_t signature_length
Definition upg.h:185
uint8_t image_hash_table_hash[32]
Definition upg.h:199
uint8_t sign_fota_info[SIG_LEN]
Definition upg.h:207
uint32_t struct_length
Definition upg.h:183
uint32_t msid_ext
Definition upg.h:191
uint8_t user_defined[INFO_AREA_USER_LEN]
Definition upg.h:205
uint32_t image_id
Definition upg.h:179
uint32_t hardware_id
Definition upg.h:203
uint32_t fota_version_ext
Definition upg.h:187
uint32_t mask_msid_ext
Definition upg.h:193
uint32_t struct_version
Definition upg.h:181
可选函数结构。
Definition upg.h:350
upg_func_malloc malloc
Definition upg.h:351
upg_func_free free
Definition upg.h:353
upg_func_serial_putc serial_putc
Definition upg.h:355
升级镜像哈希节点类型。
Definition upg.h:218
uint32_t image_addr
Definition upg.h:221
uint32_t image_length
Definition upg.h:223
uint32_t image_id
Definition upg.h:219
uint8_t image_hash[32]
Definition upg.h:225
升级key区域数据类型。
Definition upg.h:130
uint32_t ecc_curve_type
Definition upg.h:145
uint8_t reserved[KEY_AREA_RESERVED_LEN]
Definition upg.h:163
uint32_t mask_msid_ext
Definition upg.h:155
uint32_t msid_ext
Definition upg.h:153
uint32_t image_id
Definition upg.h:131
uint32_t struct_version
Definition upg.h:133
uint32_t struct_length
Definition upg.h:135
uint32_t maintenance_mode
Definition upg.h:157
uint32_t key_alg
Definition upg.h:143
uint32_t key_id
Definition upg.h:141
uint8_t die_id[16]
Definition upg.h:159
uint32_t mask_fota_key_version_ext
Definition upg.h:151
uint32_t fota_info_addr
Definition upg.h:161
uint8_t fota_external_public_key[PUBLIC_KEY_LEN]
Definition upg.h:165
uint8_t sig_fota_key_area[SIG_LEN]
Definition upg.h:167
uint32_t key_owner_id
Definition upg.h:139
uint32_t fota_key_version_ext
Definition upg.h:149
uint32_t key_length
Definition upg.h:147
uint32_t signature_length
Definition upg.h:137
升级准备信息结构。
Definition upg.h:366
uint32_t package_len
Definition upg.h:367
unsigned int uintptr_t
Definition td_type.h:65