76 #ifndef OAD_IMAGE_HEADER_H 77 #define OAD_IMAGE_HEADER_H 88 #include "hal_types.h" 111 #define BIM_VAR_ADDR 0x20000400 118 extern uint32_t _bim_var;
127 #define OAD_NUM_NV_PGS 1 130 #if OSAL_SNV != OAD_NUM_NV_PGS 131 #error "Incompatible NV settings detected. OAD supports 1 NV page" 132 #endif //OSAL_SNV != OAD_NUM_NV_PGS 146 #define OAD_IMG_TYPE_PERSISTENT_APP 0 152 #define OAD_IMG_TYPE_APP 1 159 #define OAD_IMG_TYPE_STACK 2 167 #define OAD_IMG_TYPE_APP_STACK 3 175 #define OAD_IMG_TYPE_NP 4 183 #define OAD_IMG_TYPE_FACTORY 5 190 #define OAD_IMG_TYPE_BIM 6 200 #define OAD_IMG_TYPE_APPSTACKLIB 7 207 #define OAD_IMG_TYPE_USR_BEGIN 16 215 #define OAD_IMG_TYPE_USR_END 31 222 #define OAD_IMG_TYPE_HOST_BEGIN 32 229 #define OAD_IMG_TYPE_HOST_END 63 236 #define OAD_IMG_TYPE_RSVD_BEGIN 64 243 #define OAD_IMG_TYPE_RSVD_END 255 255 #define OAD_SEG_BOUNDARY 0x00 260 #define OAD_SEG_CONTIGUOUS 0x01 265 #define OAD_SEG_NON_CONTIGUOUS 0x02 270 #define OAD_SEG_RSVD 0xFF 282 #define OAD_WIRELESS_TECH_BLE 0xFFFE 287 #define OAD_WIRELESS_TECH_TIMAC_SUBG 0xFFFD 292 #define OAD_WIRELESS_TECH_TIMAC_2_4G 0xFFFB 297 #define OAD_WIRELESS_TECH_ZIGBEE 0xFFF7 302 #define OAD_WIRELESS_TECH_RF4CE 0xFFEF 308 #define OAD_WIRELESS_TECH_THREAD 0xFFDF 313 #define OAD_WIRELESS_TECH_EASYLINK 0xFFBF 329 #ifdef DeviceFamily_CC26X2 330 #define OAD_IMG_ID_VAL {'C', 'C', '2', '6', 'x', '2', 'R', '1'} 331 #elif defined (DeviceFamily_CC13X2) || \ 332 defined (DeviceFamily_CC13X2_V1) || \ 333 defined (DeviceFamily_CC13X2_V2) 334 #define OAD_IMG_ID_VAL {'C', 'C', '1', '3', 'x', '2', 'R', '1'} 335 #elif defined (DeviceFamily_CC26X0R2) 336 #define OAD_IMG_ID_VAL {'O', 'A', 'D', ' ', 'I', 'M', 'G', ' '} 337 #elif defined (DOXYGEN) 338 #define OAD_IMG_ID_VAL 340 #error "Unknown Device Family" 341 #endif //DeviceFamily_CC26X2 351 #define OAD_EXTFL_ID_VAL {'O', 'A', 'D', ' ', 'N', 'V', 'M', '1'} 361 #define CRC_OFFSET offsetof(imgHdr_t, fixedHdr.crc32) 366 #define BIM_VER_OFFSET offsetof(imgHdr_t, fixedHdr.bimVer) 372 #define IMG_DATA_OFFSET BIM_VER_OFFSET 377 #define IMG_INFO_OFFSET offsetof(imgHdr_t, fixedHdr.imgCpStat) 382 #define IMG_COPY_STAT_OFFSET IMG_INFO_OFFSET 387 #define CRC_STAT_OFFSET offsetof(imgHdr_t, fixedHdr.crcStat) 392 #define IMG_TYPE_OFFSET offsetof(imgHdr_t, fixedHdr.imgType) 397 #define BOUNDARY_SEG_OFFSET offsetof(imgHdr_t, fixedHdr.segTypeBd) 403 #define SEG_LEN_OFFSET 4 410 #define SEG_SIGERINFO_OFFSET offsetof(imgHdr_t, secInfoSeg.secSignerInfo) 415 #define SEG_SIGNR_OFFSET offsetof(imgHdr_t, secInfoSeg.eccSign.sign_r) 420 #define SEG_SIGNS_OFFSET offsetof(imgHdr_t, secInfoSeg.eccSign.sign_s) 425 #define SEC_VERIF_STAT_OFFSET offsetof(imgHdr_t, secInfoSeg.verifStat) 430 #define HDR_LEN_WITH_SECURITY_INFO offsetof(imgHdr_t, secInfoSeg.segTypeSecure) + sizeof(securityInfoSeg_t) 435 #define IMG_START_ADDR_OFFSET offsetof(imgHdr_t, imgPayload.startAddr) 447 #define SEG_HDR_LEN 12 453 #define OAD_IMG_ID_LEN 8 458 #define OAD_SW_VER_LEN 4 463 #define OAD_IMG_HDR_LEN sizeof(imgFixedHdr_t) 476 #define IMG_BOUNDARY_SEG_ID 0x00 481 #define IMG_PAYLOAD_SEG_ID 0x01 487 #define IMG_NONCOUNT_SEG_ID 0x02 492 #define IMG_SECURITY_SEG_ID 0x03 500 #define SOFTWARE_VER {'0', '0', '0', '1'} 505 #define OAD_IMG_FULL_HDR_LEN sizeof(imgHdr_t) 510 #define OAD_IMG_ID_LEN 8 515 #define OAD_SW_VER_LEN 4 517 #ifndef STACK_LIBRARY 521 #define BOUNDARY_SEG_LEN 0x18 527 #define SECURITY_SEG_LEN 0x55 532 #define IMG_COPY_STAT_OFFSET IMG_INFO_OFFSET 537 #define SEG_LEN_OFFSET 4 542 #define SIG_OFFSET offsetof(securityInfoSeg_t, eccSign.sign_r) 547 #define ECDSA_KEY_LEN 32 552 #define ECDSA_SHA_TEMPWORKZONE_LEN ECDSA_KEY_LEN*6 573 #define SECURITY_VER 0x1 578 #define DEFAULT_STATE 0xFF 584 #define CRC_VALID 0xFE 590 #define CRC_INVALID 0xFC 595 #define NEED_COPY 0xFE 600 #define COPY_DONE 0xFC 605 #define VERIFY_PASS 0xFE 610 #define VERIFY_FAIL 0xFC 615 #define EFL_MATADATA_HDR_LEN OAD_IMG_HDR_LEN + 8 620 #define INVALID_ADDR 0xFFFFFFFF 625 #define INVALID_LEN INVALID_ADDR 630 #define DEFAULT_CRC 0xFFFFFFFF 637 #if defined (__IAR_SYSTEMS_ICC__) 638 #define TYPEDEF_STRUCT_PACKED __packed typedef struct 639 #elif defined __TI_COMPILER_VERSION || defined __TI_COMPILER_VERSION__ 640 #define TYPEDEF_STRUCT_PACKED typedef struct __attribute__((packed)) 641 #elif defined (__GNUC__) 642 #define TYPEDEF_STRUCT_PACKED typedef struct __attribute__((__packed__)) 721 uint8_t segTypeSecure;
741 imgFixedHdr_t fixedHdr;
742 #if (defined(SECURITY)) 743 securityInfoSeg_t secInfoSeg;
745 #if (!defined(STACK_LIBRARY) && (defined(SPLIT_APP_STACK_IMAGE))) 746 boundarySeg_t boundarySeg;
758 uint32_t *eccWorkzone;
761 } ecdsaSigVerifyBuf_t;
ECC signature pair.
Definition: oad_image_header.h:708