92 #ifndef OAD_IMAGE_HEADER_H 93 #define OAD_IMAGE_HEADER_H 105 #include "hal_types.h" 129 #define BIM_VAR_ADDR 0x20000400 136 extern uint32_t _bim_var;
139 #define SIGN_FN_PTR 0x57fa0 140 extern uint32_t _sign_fnPtr;
153 #define OAD_IMG_TYPE_PERSISTENT_APP 0 160 #define OAD_IMG_TYPE_APP 1 167 #define OAD_IMG_TYPE_STACK 2 175 #define OAD_IMG_TYPE_APP_STACK 3 183 #define OAD_IMG_TYPE_NP 4 191 #define OAD_IMG_TYPE_FACTORY 5 199 #define OAD_IMG_TYPE_BIM 6 209 #define OAD_IMG_TYPE_APPSTACKLIB 7 217 #define OAD_IMG_TYPE_USR_BEGIN 16 225 #define OAD_IMG_TYPE_USR_END 31 232 #define OAD_IMG_TYPE_HOST_BEGIN 32 239 #define OAD_IMG_TYPE_HOST_END 63 246 #define OAD_IMG_TYPE_RSVD_BEGIN 64 253 #define OAD_IMG_TYPE_RSVD_END 255 265 #define OAD_WIRELESS_TECH_BLE 0xFFFE 270 #define OAD_WIRELESS_TECH_TIMAC_SUBG 0xFFFD 275 #define OAD_WIRELESS_TECH_TIMAC_2_4G 0xFFFB 280 #define OAD_WIRELESS_TECH_ZIGBEE 0xFFF7 285 #define OAD_WIRELESS_TECH_RF4CE 0xFFEF 290 #define OAD_WIRELESS_TECH_THREAD 0xFFDF 295 #define OAD_WIRELESS_TECH_EASYLINK 0xFFBF 299 #ifdef DeviceFamily_CC26X2 300 #define OAD_IMG_ID_VAL {'C', 'C', '2', '6', 'x', '2', 'R', '1'} 301 #elif defined (DeviceFamily_CC13X2) || \ 302 defined (DeviceFamily_CC13X2_V1) || \ 303 defined (DeviceFamily_CC13X2_V2) 304 #define OAD_IMG_ID_VAL {'C', 'C', '1', '3', 'x', '2', 'R', '1'} 305 #elif defined (DeviceFamily_CC26X0R2) 306 #define OAD_IMG_ID_VAL {'O', 'A', 'D', ' ', 'I', 'M', 'G', ' '} 307 #elif defined (DOXYGEN) 318 #define OAD_IMG_ID_VAL 320 #error "Unknown Device Family" 321 #endif //DeviceFamily_CC26X2 331 #define OAD_EXTFL_ID_VAL {'O', 'A', 'D', ' ', 'N', 'V', 'M', '1'} 342 #define CRC_OFFSET offsetof(imgHdr_t, fixedHdr.crc32) 347 #define BIM_VER_OFFSET offsetof(imgHdr_t, fixedHdr.bimVer) 353 #define IMG_DATA_OFFSET BIM_VER_OFFSET 358 #define IMG_INFO_OFFSET offsetof(imgHdr_t, fixedHdr.imgCpStat) 363 #define IMG_COPY_STAT_OFFSET IMG_INFO_OFFSET 368 #define CRC_STAT_OFFSET offsetof(imgHdr_t, fixedHdr.crcStat) 373 #define IMG_TYPE_OFFSET offsetof(imgHdr_t, fixedHdr.imgType) 378 #define BOUNDARY_SEG_OFFSET offsetof(imgHdr_t, fixedHdr.segTypeBd) 384 #define SEG_LEN_OFFSET 4 391 #define SEG_SIGERINFO_OFFSET offsetof(imgHdr_t, secInfoSeg.secSignerInfo) 396 #define SEG_SIGNR_OFFSET offsetof(imgHdr_t, secInfoSeg.eccSign.sign_r) 401 #define SEG_SIGNS_OFFSET offsetof(imgHdr_t, secInfoSeg.eccSign.sign_s) 406 #define SEC_VERIF_STAT_OFFSET offsetof(imgHdr_t, secInfoSeg.verifStat) 411 #define HDR_LEN_WITH_SECURITY_INFO offsetof(imgHdr_t, secInfoSeg.segTypeSecure) + sizeof(securityInfoSeg_t) 416 #define IMG_START_ADDR_OFFSET offsetof(imgHdr_t, imgPayload.startAddr) 428 #define SEG_HDR_LEN 12 434 #define OAD_IMG_ID_LEN 8 439 #define OAD_SW_VER_LEN 4 444 #define OAD_IMG_HDR_LEN sizeof(imgFixedHdr_t) 457 #define IMG_BOUNDARY_SEG_ID 0x00 462 #define IMG_PAYLOAD_SEG_ID 0x01 468 #define IMG_NONCOUNT_SEG_ID 0x02 473 #define IMG_SECURITY_SEG_ID 0x03 478 #define OAD_IMG_FULL_HDR_LEN sizeof(imgHdr_t) 479 #define OAD_IMG_ID_LEN 8 480 #define OAD_SW_VER_LEN 4 482 #ifndef STACK_LIBRARY 483 #define BOUNDARY_SEG_LEN 0x18 485 #define SECURITY_SEG_LEN 0x55 487 #define IMG_COPY_STAT_OFFSET IMG_INFO_OFFSET 489 #define SEG_LEN_OFFSET 4 490 #define SIG_OFFSET offsetof(imgHdr_t, secInfoSeg.eccSign.sign_r) 492 #define ECDSA_KEY_LEN 32 494 #define ECDSA_SHA_TEMPWORKZONE_LEN ECDSA_KEY_LEN*6 515 #define SECURITY_VER 0x1 520 #define DEFAULT_STATE 0xFF 526 #define CRC_VALID 0xFE 532 #define CRC_INVALID 0xFC 537 #define NEED_COPY 0xFE 542 #define COPY_DONE 0xFC 547 #define VERIFY_PASS 0xFE 552 #define VERIFY_FAIL 0xFC 557 #define EFL_MATADATA_HDR_LEN OAD_IMG_HDR_LEN + 8 562 #define INVALID_ADDR 0xFFFFFFFF 567 #define INVALID_LEN INVALID_ADDR 572 #define DEFAULT_CRC 0xFFFFFFFF 578 #define SIGNER_INFO_SIZE 8 583 #define SIGNATURE_SIZE 64 592 #if defined (__IAR_SYSTEMS_ICC__) 593 #define TYPEDEF_STRUCT_PACKED __packed typedef struct 594 #elif defined __TI_COMPILER_VERSION || defined __TI_COMPILER_VERSION__ 595 #define TYPEDEF_STRUCT_PACKED typedef struct __attribute__((packed)) 596 #elif defined (__GNUC__) 597 #define TYPEDEF_STRUCT_PACKED typedef struct __attribute__((__packed__)) 605 PACKED_TYPEDEF_STRUCT
688 uint8_t segTypeSecure;
708 imgFixedHdr_t fixedHdr;
709 #if (defined(SECURITY)) 710 securityInfoSeg_t secInfoSeg;
712 #if (!defined(STACK_LIBRARY) && (defined(SPLIT_APP_STACK_IMAGE))) 713 boundarySeg_t boundarySeg;
720 uint32_t *eccWorkzone;
725 } ecdsaSigVerifyBuf_t;
736 typedef uint8_t (*bimSignFnPtr_t)(uint8_t, uint32_t, uint32_t, uint8_t *,
737 uint8_t *, ecdsaSigVerifyBuf_t *);
Definition: oad_image_header.h:605
Definition: oad_image_header.h:675