| #ifndef H_ASR_FLAG_H | |
| #define H_ASR_FLAG_H | |
| #include "Typedef.h" | |
| #include "tim.h" | |
| typedef struct{ | |
| UINT_T CurImageID; | |
| UINT_T ImageType; | |
| UINT_T ImageState; /* 1: new image is backed up, 0: not backed up */ | |
| UINT_T ImageBkAddr; | |
| UINT_T ImageBkLen; | |
| UINT_T SegState; | |
| UINT_T SegIndex; | |
| UINT_T SegDestBkAddr; | |
| UINT_T SegDestBkLen; | |
| UINT_T PreTailAddr; | |
| UINT_T PreTailLen; | |
| UINT_T NextHeadAddr; | |
| UINT_T NextHeadLen; | |
| UINT_T NextSegWriteOffset; | |
| UINT_T NextSegReadOffset; | |
| UINT_T NextSegEraseOffset; | |
| }SDfotaState, *pSDfotaState; | |
| enum { | |
| SDFOTA_NONE = 0, | |
| SDFOTA_DEST_SAVED = 1, | |
| SDFOTA_HEAD_SAVED = 2, | |
| SDFOTA_WRITE_ALIGN, | |
| SDFOTA_WRITE_TAIL, | |
| SDFOTA_SEG_DONE, | |
| SDFOTA_IMG_DONE, | |
| SDFOTA_IMG_SAVE, | |
| }; | |
| #define MAX_SEG_NUM 32 | |
| typedef struct{ | |
| UINT_T SrcLen; | |
| UINT_T SrcComLen; | |
| UINT_T DestLen; | |
| UINT_T DestComLen; | |
| UINT_T Compression; | |
| UINT_T PatchLen; | |
| CHAR *Bsdiff40; | |
| }SDFotaSegInfo, *pSDFotaSegInfo; | |
| typedef struct{ | |
| UINT_T Version; | |
| CHAR * Patch; | |
| UINT_T PatchLen; | |
| /* belows only for Bsdiff50 */ | |
| UINT_T SegNum; | |
| UINT_T ImageSrcLen; | |
| UINT_T ImageSrcComLen; | |
| UINT_T ImageDestLen; | |
| UINT_T ImageDestComLen; | |
| UINT_T MaxSegDecLen; | |
| SDFotaSegInfo SegInfo[MAX_SEG_NUM]; | |
| }BsdiffInfo, *pBsdiffInfo; | |
| struct DDRT_STATE{ | |
| unsigned int test_proc :1; //1: start, 0: done | |
| unsigned int last_res :1; //1: fail, 0: pass | |
| unsigned int total_times :15; | |
| unsigned int fail_times :15; | |
| }; | |
| typedef union{ | |
| unsigned int value; | |
| struct DDRT_STATE bits; | |
| }DDRTestState, *pDDRTestState; | |
| typedef struct | |
| { | |
| UINT_T Header; | |
| UINT_T Upgrade_Flag; // 1, upgrade; 2, backup boot | |
| UINT_T FBF_Flash_Address; | |
| UINT_T FBF_Size; | |
| UINT_T Erase_PSM; | |
| UINT_T PSM_Erase_Address; | |
| UINT_T PSM_Erase_Size; | |
| UINT_T Erase_FS; | |
| UINT_T FS_Erase_Address; | |
| UINT_T FS_Erase_Size; | |
| UINT_T Upgrade_Method; // 1, TR069; 2, SD; 3, WebUI. | |
| UINT_T UnlockKeyFlag; | |
| UINT_T Production_Mode_Flag; // for prouction mode | |
| UINT_T eehP[2]; | |
| UINT_T cpsr[2]; | |
| UINT_T hawk[2]; | |
| UINT_T imsd[2]; | |
| UINT_T pipe[2]; | |
| UINT_T fast[2]; | |
| UINT_T apmf[2]; | |
| UINT_T pid[2]; | |
| UINT_T vid[2]; | |
| UINT_T obmdl[2]; | |
| UINT_T dlflag[2]; | |
| UINT_T ramdump[2]; | |
| UINT_T DFota_nOfImages; | |
| UINT_T Dfota_NeedCopyOnly; | |
| UINT_T Dfota_CopyLen; | |
| #ifdef CONFIG_AB_SYSTEM | |
| UINT_T active_slot; /* prev active slot */ | |
| UINT_T temp_active_slot; /* current active slot */ | |
| UINT_T reboot_cnt; | |
| UINT_T synced; | |
| UINT_T rsvd[16]; | |
| #endif | |
| UINT_T nocp[2]; | |
| UINT_T TrustBootStatus; | |
| CHAR MVersion[128]; | |
| SDfotaState SDfotaInfo; | |
| UINT_T RefCounter; | |
| UINT_T FlagLen; | |
| UINT_T Version; | |
| UINT_T DDR_ID; | |
| UINT_T Flash_ID; | |
| UINT_T cplog[2]; | |
| DDRTestState ddrt_state; | |
| UINT_T svc_state; | |
| CHAR MVersion_B[128]; /* only use for AB system */ | |
| UINT_T Reserved[68]; /* reserved for asr */ | |
| UINT_T ReservedForCustomer[35]; /* reserved for customer */ | |
| /* reserve to make the ASR_Flag length as 1KB */ | |
| UINT_T CRC; | |
| /* NOTICE !!! | |
| * If you change this structure, you must also sync the change to OBM/Uboot/OTA/Telephony | |
| * OBM: obm/Common/Misc/asr_flag.h | |
| * Uboot: uboot/board/Marvell/common/asr_flag.h | |
| * OTA: services/ota/otad.c | |
| * Telephony: lte_telephony/apps/cp_load/cploader.h | |
| * If add a new member to this structure, must decrease the size of Reserved[] | |
| */ | |
| }FOTA_Firmware, *P_FOTA_Firmware; | |
| /* ASR Flag version history | |
| * 1.0.0.1: support dual asr flag | |
| * 1.0.0.2: support asr flag crc | |
| */ | |
| #define ASRFLAG_VERSION_LEGACY 0xFFFFFFFF | |
| #define ASRFLAG_VERSION_DAF 0x31303031 | |
| #define ASRFLAG_VERSION_CRC 0x31303032 | |
| #define ASRFLAG_VERSION ASRFLAG_VERSION_CRC | |
| #define ASRFLAG_HEADER 0x464F5441 | |
| #define SVC_NOT_BURN 0x00 | |
| #define SVC_BURN_01 0x01 | |
| #define SVC_BURN_11 0x03 | |
| #define SVC_01_BURNED 0xe1 | |
| #define SVC_11_BURNED 0xe3 | |
| #define SVC_01_BURN_FAILED 0xf1 | |
| #define SVC_11_BURN_FAILED 0xf3 | |
| #define SVC_ERROR_STATE 0xff | |
| enum TRUST_BOOT_CODES{ | |
| TB_NO_ERROR = 0, | |
| TB_TIMH_ERROR, | |
| TB_OBMI_ERROR, | |
| TB_UBOOT_ERROR, | |
| TB_DTIM_ERROR, | |
| TB_ZIMG_ERROR, | |
| TB_SYSJ_ERROR, | |
| TB_RFBI_ERROR, | |
| TB_GRBI_ERROR, | |
| TB_ARBI_ERROR, | |
| TB_ABRL_ERROR, | |
| TB_CBRL_ERROR, | |
| TB_APRL_ERROR, | |
| TB_OEMD_ERROR, | |
| TB_DTIM_PRIMARY_ERROR, | |
| TB_DTIM_RECOVERY_ERROR, | |
| TB_DTIM_PPSETTING_ERROR, | |
| TB_TOS_ERROR, | |
| TB_OSLO_GENERAL_ERROR, | |
| TB_AB_SYSTEM_BOOT_ERROR, | |
| TB_CPHD_ERROR, | |
| TB_BXBI_ERROR, | |
| TB_AB_SYSTEM_ROLLBACK_ERROR, | |
| TB_SDTIM_ERROR, | |
| }; | |
| #define FBF_HEADER_FLASH_ADDRESS 0x06b60000 | |
| #define FBF_HEADER_IDENTIFIER 0x464F5441 // "FOTA" | |
| #define MAX_ASR_FLAG_SIZE 0x20000 | |
| // Operating mode related ID's | |
| #define EEHPID 0x50686565 // "eehP" | |
| #define CPSRID 0x52535043 // "cpsr" | |
| #define HAWKID 0x4B574148 // "hawk" | |
| #define IMSDID 0x44534D49 // "IMSD" | |
| #define PRODID 0x444F5250 // "PROD" | |
| #define PIPEID 0x45504950 // "PIPE" | |
| #define FASTID 0x54534146 // "FAST" | |
| #define APMFID 0x464D5041 // "apmf" | |
| #define PIDID 0x00444950 // "PID" | |
| #define VIDID 0x00444956 // "VID" | |
| #define OBMDLID 0x444D424F // "OBMDL" | |
| #define OBMNODL 0x4C444F4E // "NODL" | |
| #define UUID0 0x30444955 // "UID0" | |
| #define UUID1 0x31444955 // "UID1" | |
| #define DLFLG 0x47464C44 // "DLFLG" | |
| #define RAMDUMPID 0x50554452 // "RDUP" | |
| #define NOCPID 0x50434F4E // "NOCP" | |
| #define ATDL 0x4154444C // "ATDL" | |
| #define TSDS 0x54534453 // "TEE secure dram size" | |
| #define TNMZ 0x544E4D5A // "TEE non-secure shared memory size" | |
| #define TLVL 0x544C564C // "TEE Log Level" | |
| #define OBMINDL 0x4C444E49 // "OBM IN DL State" | |
| #define OBMENUMUSB 0x1 // "OBM Enum USB in Non_prod mode" | |
| #define OBMNOUSB 0x0 // "OBM No USB in Non_prod mode" | |
| #define DLDONE 0x4B4F4C44 // "DL OK" | |
| #define INIT_DONE 0x54494E49 | |
| #define OBMDL 0x444D424F // OBM enum DL port | |
| #define LWG_3MODE 0x47574C33 // 3LWG | |
| #define LTG_3MODE 0x47544C33 // 3LTG | |
| #define LWG_5MODE 0x47574C35 // 5LWG | |
| #define LTG_5MODE 0x47544C35 // 5LTG | |
| #define CPLOGID 0x4F4C5043 //CPLO | |
| P_FOTA_Firmware OTAGetConfig(pTIM pTIM_h); | |
| UINT_T OTA_Save_Config(pTIM pTIM_h); | |
| #endif |