WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
upg_patch.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2020-2021. All rights reserved.
3 * @brief FOTA patch application library public header
4 */
5
6#ifndef UPG_PATCH_H
7#define UPG_PATCH_H
8
9#include <stdint.h>
10#include <stdbool.h>
11#include "errcode.h"
12#include "upg_common_porting.h"
13#include "upg.h"
14#include "upg_definitions.h"
15
16#ifdef __cplusplus
17#if __cplusplus
18extern "C" {
19#endif
20#endif
21
22#define DIFF_STATUS_FLASH_SIZE 0x800000
23#define FLASH_PAGES (DIFF_STATUS_FLASH_SIZE / UPG_FLASH_PAGE_SIZE)
24
25#define NUM_BITS_PER_BYTE 8
26
27typedef struct patch_description patch;
28
34typedef void (*failfunc)(patch *desc);
35
44typedef errcode_t (*fetch_image_contents)(patch *desc, uint32_t size, int32_t location, uint8_t *dest);
45
53typedef errcode_t (*prep_image_contents_for_write)(patch *desc, uint32_t image_page_no, uint8_t *page_contents);
54
64typedef errcode_t (*copy_recovered_buffer_to_flash_cache)(patch *desc, int32_t flash_page, uint8_t *recover_buffer);
65
74
93 uint8_t *src, uint8_t *dst, int32_t ptxt_len);
94
130
138
146
147#ifdef __cplusplus
148#if __cplusplus
149}
150#endif
151#endif
152
153#endif /* UPG_PATCH_H */
uint32_t errcode_t
Definition of error code.
Definition errcode.h:30
Definition upg_patch.h:95
uint32_t num_old_pages
Definition upg_patch.h:101
encrypt_one_flash_page encrypt_flash_page_fn
Definition upg_patch.h:122
bool bottom_up
Definition upg_patch.h:112
uint32_t buffers_flash_offset
Definition upg_patch.h:116
fetch_image_contents fetch_image_contents_fn
Definition upg_patch.h:118
uint32_t image_id
Definition upg_patch.h:96
uint16_t image_signature_size
Definition upg_patch.h:127
uint32_t num_maxsize_pages
Definition upg_patch.h:102
plaintext_flash_cache_init plaintext_flash_cache_init_fn
Definition upg_patch.h:121
int32_t failpoint
Definition upg_patch.h:107
uint32_t image_flash_length
Definition upg_patch.h:115
bool image_encrypted
Definition upg_patch.h:125
uint32_t patch_contents_ram_copy
Definition upg_patch.h:109
uint16_t image_hdrs_len
Definition upg_patch.h:126
failfunc failfn
Definition upg_patch.h:108
uint8_t * image_cache
Definition upg_patch.h:124
copy_recovered_buffer_to_flash_cache copy_recovered_buffer_to_flash_cache_fn
Definition upg_patch.h:120
uint32_t patch_contents_flash_offset
Definition upg_patch.h:110
uint32_t new_sig_page
Definition upg_patch.h:103
uint32_t patch_contents_len
Definition upg_patch.h:111
uint32_t buffers_length
Definition upg_patch.h:117
bool use_plain_text_cache
Definition upg_patch.h:123
int32_t newsize
Definition upg_patch.h:98
prep_image_contents_for_write prep_image_contents_for_write_fn
Definition upg_patch.h:119
uint32_t old_sig_page
Definition upg_patch.h:104
uint32_t num_new_pages
Definition upg_patch.h:100
uint32_t image_flash_offset
Definition upg_patch.h:114
int32_t oldsize
Definition upg_patch.h:99
upg_key_area_data_t key_area_aes_params
Definition upg_patch.h:128
int32_t maxsize
Definition upg_patch.h:97
升级包镜像头类型
Definition upg.h:250
升级key区域数据类型。
Definition upg.h:130
errcode_t(* plaintext_flash_cache_init)(patch *desc)
Creates a plaintext version of the image flash in RAM It assumes metadata pages are populated with th...
Definition upg_patch.h:73
void(* failfunc)(patch *desc)
The function to be called when a deliberate failure is injected.
Definition upg_patch.h:34
errcode_t(* copy_recovered_buffer_to_flash_cache)(patch *desc, int32_t flash_page, uint8_t *recover_buffer)
Creates a plaintext copy of the recovered 4K flash. It assumes metadata pages are populated with the ...
Definition upg_patch.h:64
errcode_t(* fetch_image_contents)(patch *desc, uint32_t size, int32_t location, uint8_t *dest)
The function to be called to obtain firmware image contents.
Definition upg_patch.h:44
errcode_t process_patch(patch *desc)
Process the patch provided.
Definition upg_patch.c:1165
errcode_t(* encrypt_one_flash_page)(upg_key_area_data_t *aes_ctrl, uint8_t *src, uint8_t *dst, int32_t ptxt_len)
Definition upg_patch.h:92
errcode_t fota_pkg_task_apply_code_diff(const upg_image_header_t *image)
Apply a FOTA core task for an image.
Definition upg_patch.c:1241
errcode_t(* prep_image_contents_for_write)(patch *desc, uint32_t image_page_no, uint8_t *page_contents)
Update the image contents prior to writing to flash.
Definition upg_patch.h:53