WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
upg_porting.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2022-2022. All rights reserved.
3 * Description: Function headers of different chips in the UPG module.
4 */
5
6#ifndef UPG_ADAPTION_H
7#define UPG_ADAPTION_H
8
9#include <stdio.h>
10#include <stdint.h>
11#include <stdbool.h>
12#include "partition.h"
13#include "upg_definitions.h"
14#include "upg.h"
15#include "upg_common_porting.h"
16#include "errcode.h"
17
18#ifdef __cplusplus
19#if __cplusplus
20extern "C" {
21#endif
22#endif
23
24/* Adaption function for UPG common */
25/* 获取镜像ID和分区ID的map表
26 * map: 镜像ID和分区ID的映射表
27 * 返回map表中映射数量
28 */
30/* 获取当前程序支持的升级镜像 */
32/* 获取升级包路径 */
33char *upg_get_pkg_file_path(void);
34/* 获取资源索引路径 */
36/* 获取升级包所在目录 */
37char *upg_get_pkg_file_dir(void);
38
39/*
40 * 获取FOTA升级标记区的Flash起始地址,该地址为在flash上的相对地址,是相对flash基地址的偏移
41 * start_address 返回升级标记区的起始地址
42 */
44
45/*
46 * 获取FOTA升级进度恢复标记区的Flash起始地址,该地址为在flash上的相对地址,是相对flash基地址的偏移
47 * start_address 返回标记区的起始地址
48 */
49errcode_t upg_get_progress_status_start_addr(uint32_t *start_address, uint32_t *size);
50
51 /*
52 * 如果升级包保存在flash上,FOTA分区为如下结构:
53 * ---------------------
54 * 升级包存储区
55 * --------------------
56 * 缓存区(4K)(可选)
57 * --------------------
58 * 写入状态区(4K)(可选)
59 * --------------------
60 * 升级标记区(4K)
61 * --------------------
62 *
63 * 如果升级包保存在EMMC上,FOTA分区为如下结构:
64 * --------------------
65 * 缓存区(4K)
66 * --------------------
67 * 写入状态区(4K)
68 * --------------------
69 * 升级标记区(4K)
70 * --------------------
71 */
72/*
73 * 获取在Flash上预留的FOTA分区的地址和长度,该地址为在flash上的相对地址,是相对flash基地址的偏移
74 * start_address 返回FOTA分区的起始地址
75 * size 返回FOTA分区大小(包含升级标记区和缓存区、状态区)
76 */
77errcode_t upg_get_fota_partiton_area_addr(uint32_t *start_address, uint32_t *size);
78
79/*
80 * 获取校验用的root_public_key
81 */
82uint8_t *upg_get_root_public_key(void);
83
84/*
85 * 获取Flash基地址
86 */
87uint32_t upg_get_flash_base_addr(void);
88
89/*
90 * 获取Flash大小
91 */
92uint32_t upg_get_flash_size(void);
93
94/*
95 * 重启
96 */
97void upg_reboot(void);
98
99/*
100 * 防止看门狗超时,踢狗
101 */
102void upg_watchdog_kick(void);
103
104/*
105 * 检查FOTA升级包中的信息与板端是否匹配,检查数据包括msid_ext, hardware_id, user_defined等,根据需要选择检查内容
106 * pkg_header 升级包包头指针
107 * 检查成功,返回 ERRCODE_SUCC
108 */
110
111/*
112 * 获取otp/efuse中的回滚版本号
113 * image_id 镜像的ID
114 * anti_rollback_ver 防回滚版本号地址
115 */
116errcode_t upg_get_board_rollback_version(uint32_t image_id, uint32_t *anti_rollback_ver);
117
118/*
119 * 设置otp/efuse中的回滚版本号
120 * image_id 镜像的ID
121 * anti_rollback_ver 防回滚版本号地址
122 */
123errcode_t upg_set_board_rollback_version(uint32_t image_id, uint32_t *anti_rollback_ver);
124
125/*
126 * 获取板端防回滚版本号Mask值
127 * key_mask KEY区防回滚版本号Mask
128 * code_mask Code区防回滚版本号Mask
129 */
130errcode_t upg_get_board_version_mask(uint32_t image_id, uint32_t *key_mask, uint32_t *code_mask);
131
132/*
133 * 获取板端镜像的版本号
134 * key_ver KEY区版本号
135 * code_ver Code区版本号
136 */
137errcode_t upg_get_board_version(uint32_t image_id, uint32_t *key_ver, uint32_t *code_ver);
138
139/*
140 * flash读数据接口
141 * flash_offset 待读取数据的flash偏移地址
142 * size 期望读取的数据长度
143 * ram_data 出参,数据存放的内存地址
144 */
145errcode_t upg_flash_read(const uint32_t flash_offset, const uint32_t size, uint8_t *ram_data);
146
147/*
148 * flash写数据接口
149 * flash_offset 待写入数据的flash偏移地址
150 * size 期望写入的数据长度
151 * ram_data 入参,待写入数据存放的内存地址
152 * do_erase 写前擦除标记,true:写前执行擦除;false:直接写入
153 */
154errcode_t upg_flash_write(const uint32_t flash_offset, uint32_t size, const uint8_t *ram_data, bool do_erase);
155
156/*
157 * flash擦除数据接口
158 * flash_offset 待擦除数据的flash偏移地址
159 * size 期望擦除的数据长度
160 */
161errcode_t upg_flash_erase(const uint32_t flash_offset, const uint32_t size);
162
163#ifdef __cplusplus
164#if __cplusplus
165}
166#endif
167#endif
168
169#endif /* UPG_ADAPTION_H */
uint32_t errcode_t
Definition of error code.
Definition errcode.h:30
Definition upg_definitions.h:87
Definition upg_definitions.h:38
升级包头类型
Definition upg.h:236
errcode_t upg_check_fota_information(const upg_package_header_t *pkg_header)
Definition upg_common_porting.c:402
uint8_t * upg_get_root_public_key(void)
Definition upg_common_porting.c:353
char * upg_get_res_file_index_path(void)
Definition upg_common_porting.c:81
uint32_t upg_get_flash_base_addr(void)
Definition upg_common_porting.c:214
errcode_t upg_get_board_version(uint32_t image_id, uint32_t *key_ver, uint32_t *code_ver)
Definition upg_common_porting.c:455
errcode_t upg_get_fota_partiton_area_addr(uint32_t *start_address, uint32_t *size)
Definition upg_common_porting.c:150
errcode_t upg_flash_erase(const uint32_t flash_offset, const uint32_t size)
Definition upg_common_porting.c:293
errcode_t upg_flash_write(const uint32_t flash_offset, uint32_t size, const uint8_t *ram_data, bool do_erase)
Definition upg_common_porting.c:243
errcode_t upg_get_board_version_mask(uint32_t image_id, uint32_t *key_mask, uint32_t *code_mask)
Definition upg_common_porting.c:447
errcode_t upg_get_board_rollback_version(uint32_t image_id, uint32_t *anti_rollback_ver)
Definition upg_common_porting.c:437
upg_image_collections_t * uapi_upg_get_image_id_collection(void)
Definition upg_common_porting.c:69
errcode_t upg_flash_read(const uint32_t flash_offset, const uint32_t size, uint8_t *ram_data)
Definition upg_common_porting.c:227
errcode_t upg_get_upgrade_flag_flash_start_addr(uint32_t *start_address)
Definition upg_common_porting.c:112
char * upg_get_pkg_file_path(void)
Definition upg_common_porting.c:75
void upg_watchdog_kick(void)
Definition upg_common_porting.c:209
errcode_t upg_get_progress_status_start_addr(uint32_t *start_address, uint32_t *size)
Definition upg_common_porting.c:132
uint32_t upg_get_ids_map(upg_image_partition_ids_map_t **map)
Definition upg_common_porting.c:52
void upg_reboot(void)
Definition upg_common_porting.c:165
errcode_t upg_set_board_rollback_version(uint32_t image_id, uint32_t *anti_rollback_ver)
Definition upg_common_porting.c:493
char * upg_get_pkg_file_dir(void)
Definition upg_common_porting.c:87
uint32_t upg_get_flash_size(void)
Definition upg_common_porting.c:219