| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- /*******************************************************************************
- * File Name : update.h
- * Author : Sim
- * Date First Issued : 09/05/2024
- * Description : This file contains all the functions prototypes for the
- * update.
- ********************************************************************************
- * History:
- * 09/05/2024: V0.1
- *******************************************************************************/
- /* Define to prevent recursive inclusion -------------------------------------*/
- #ifndef _UPDATE_H
- #define _UPDATE_H
- /* Includes ------------------------------------------------------------------*/
- #include "image_header.h"
- /* Exported macro ------------------------------------------------------------*/
- #define UPDATE_MEDIA_SD 0
- #define UPDATE_MEDIA_USB 1
- #define UPDATE_MEDIA_UART 2
- #define UPDATE_STATUS_START 0
- #define UPDATE_STATUS_END 1
- #define FASTBOOT_SIZE_OFFSET 0x1C
- #define FASTBOOT_CHECKSUM_OFFSET 0x20
- /* Exported types ------------------------------------------------------------*/
- typedef enum {
- UPFILE_TYPE_LDR,
- UPFILE_TYPE_APP,
- UPFILE_TYPE_ANIMATION,
- UPFILE_TYPE_ROM,
- UPFILE_TYPE_MCU_IMAGE,
- UPFILE_TYPE_MCU_FB, /* fastboot */
- UPFILE_TYPE_NUM,
- } eUpfileType;
- extern const char *g_upfilename[UPFILE_TYPE_NUM];
- typedef enum {UM_SD, UM_USB} eUpdateMedia;
- typedef struct header_offset {
- u32 magic;
- u32 offset;
- u32 pagesize;
- u32 pagespblock;
- u32 fboffset;
- u32 reserved[2];
- u32 crc;
- } header_offset_t;
- typedef struct {
- u8 version;
- u8 cid;
- u16 marker;
- u32 img_pk_mod[64];
- u32 img_pk_exp;
- u32 rot_pk_mod[64];
- u32 rot_pk_exp;
- u32 key_sign[64];
- } ImageKeyCert;
- /* Exported functions ------------------------------------------------------- */
- header_offset_t *GetHeaderOff(void);
- u32 ReadHeaderOff(void);
- void SaveHeaderOff(void);
- unsigned int UPDATE_GetUpfileMaxSize(int filetype);
- u32 UPDATE_GetUpfileAddr(int filetype);
- int UPDATE_EraseData(u32 addr, u32 size);
- int UPDATE_EraseUpfile(int filetype);
- int UPDATE_WriteData(u32 addr, void *buf, u32 size);
- int UPDATE_ReadData(u32 addr, void *buf, u32 size);
- u32 UPDATE_CalcCrc(u32 addr, u32 size, u32 crc);
- int UPDATE_CheckApp(int in_flash, u32 app_addr);
- void UPDATE_SetAppValid(void);
- void UPDATE_ReadImageHeader(void);
- image_header_t *UPDATE_GetImageHeader(void);
- #endif /* _UPDATE_H */
|