92 #ifndef OAD_IMAGE_HEADER_H 93 #define OAD_IMAGE_HEADER_H 105 #if defined(SECURITY) 106 #include "hal_types.h" 130 #define BIM_VAR_ADDR 0x20000400 137 extern uint32_t _bim_var;
140 #define SIGN_FN_PTR 0x57fa0 141 extern uint32_t _sign_fnPtr; 154 #define OAD_IMG_TYPE_PERSISTENT_APP 0 161 #define OAD_IMG_TYPE_APP 1 168 #define OAD_IMG_TYPE_STACK 2 176 #define OAD_IMG_TYPE_APP_STACK 3 184 #define OAD_IMG_TYPE_NP 4 192 #define OAD_IMG_TYPE_FACTORY 5 200 #define OAD_IMG_TYPE_BIM 6 210 #define OAD_IMG_TYPE_APPSTACKLIB 7 217 #define OAD_IMG_TYPE_RSVD_BEGIN 64 224 #define OAD_IMG_TYPE_RSVD_END 255 236 #define OAD_WIRELESS_TECH_BLE 0xFFFE 241 #define OAD_WIRELESS_TECH_TIMAC_SUBG 0xFFFD 246 #define OAD_WIRELESS_TECH_TIMAC_2_4G 0xFFFB 251 #define OAD_WIRELESS_TECH_ZIGBEE 0xFFF7 256 #define OAD_WIRELESS_TECH_RF4CE 0xFFEF 261 #define OAD_WIRELESS_TECH_THREAD 0xFFDF 266 #define OAD_WIRELESS_TECH_EASYLINK 0xFFBF 270 #if defined(DeviceFamily_CC26X2) || defined (DeviceFamily_CC26X2_V2) 271 #define OAD_IMG_ID_VAL {'C', 'C', '2', '6', 'x', '2', 'R', '1'} 272 #elif defined (DeviceFamily_CC13X2) || \ 273 defined (DeviceFamily_CC13X2_V1) || \ 274 defined (DeviceFamily_CC13X2_V2) 275 #define OAD_IMG_ID_VAL {'C', 'C', '1', '3', 'x', '2', 'R', '1'} 276 #elif defined (DeviceFamily_CC26X0R2) 277 #define OAD_IMG_ID_VAL {'O', 'A', 'D', ' ', 'I', 'M', 'G', ' '} 278 #elif defined (DOXYGEN) 289 #define OAD_IMG_ID_VAL 291 #error "Unknown Device Family" 292 #endif //DeviceFamily_CC26X2 302 #define OAD_EXTFL_ID_VAL {'O', 'A', 'D', ' ', 'N', 'V', 'M', '1'} 313 #define CRC_OFFSET offsetof(imgHdr_t, fixedHdr.crc32) 318 #define BIM_VER_OFFSET offsetof(imgHdr_t, fixedHdr.bimVer) 324 #define IMG_DATA_OFFSET BIM_VER_OFFSET 329 #define IMG_INFO_OFFSET offsetof(imgHdr_t, fixedHdr.imgCpStat) 334 #define IMG_COPY_STAT_OFFSET IMG_INFO_OFFSET 339 #define CRC_STAT_OFFSET offsetof(imgHdr_t, fixedHdr.crcStat) 344 #define IMG_TYPE_OFFSET offsetof(imgHdr_t, fixedHdr.imgType) 349 #define IMG_VALIDATION_OFFSET offsetof(imgHdr_t, fixedHdr.imgVld) 354 #define BOUNDARY_SEG_OFFSET offsetof(imgHdr_t, fixedHdr.segTypeBd) 359 #define SEG_LEN_OFFSET 4 366 #define SEG_SIGERINFO_OFFSET offsetof(imgHdr_t, secInfoSeg.secSignerInfo) 371 #define SEG_SIGNR_OFFSET offsetof(imgHdr_t, secInfoSeg.eccSign.sign_r) 376 #define SEG_SIGNS_OFFSET offsetof(imgHdr_t, secInfoSeg.eccSign.sign_s) 381 #define SEC_VERIF_STAT_OFFSET offsetof(imgHdr_t, secInfoSeg.verifStat) 386 #define HDR_LEN_WITH_SECURITY_INFO offsetof(imgHdr_t, secInfoSeg.segTypeSecure) + sizeof(securityInfoSeg_t) 391 #define IMG_START_ADDR_OFFSET offsetof(imgHdr_t, imgPayload.startAddr) 403 #define SEG_HDR_LEN 12 409 #define OAD_IMG_ID_LEN 8 414 #define OAD_SW_VER_LEN 4 419 #define OAD_IMG_HDR_LEN sizeof(imgFixedHdr_t) 432 #define IMG_BOUNDARY_SEG_ID 0x00 437 #define IMG_PAYLOAD_SEG_ID 0x01 443 #define IMG_NONCOUNT_SEG_ID 0x02 448 #define IMG_SECURITY_SEG_ID 0x03 453 #define OAD_IMG_FULL_HDR_LEN sizeof(imgHdr_t) 454 #define OAD_IMG_ID_LEN 8 455 #define OAD_SW_VER_LEN 4 457 #ifndef STACK_LIBRARY 458 #define BOUNDARY_SEG_LEN 0x18 460 #define SECURITY_SEG_LEN 0x55 462 #define IMG_COPY_STAT_OFFSET IMG_INFO_OFFSET 464 #define SEG_LEN_OFFSET 4 465 #define SIG_OFFSET offsetof(imgHdr_t, secInfoSeg.eccSign.sign_r) 467 #define ECDSA_KEY_LEN 32 469 #define ECDSA_SHA_TEMPWORKZONE_LEN ECDSA_KEY_LEN*6 490 #define SECURITY_VER 0x1 495 #define DEFAULT_STATE 0xFF 501 #define CRC_VALID 0xFE 507 #define CRC_INVALID 0xFC 512 #define NEED_COPY 0xFE 517 #define COPY_DONE 0xFC 522 #define VERIFY_PASS 0xFE 527 #define VERIFY_FAIL 0xFC 532 #define EFL_MATADATA_HDR_LEN OAD_IMG_HDR_LEN + 8 537 #define INVALID_ADDR 0xFFFFFFFF 542 #define INVALID_LEN INVALID_ADDR 547 #define DEFAULT_CRC 0xFFFFFFFF 549 #if defined(SECURITY) 553 #define SIGNER_INFO_SIZE 8 558 #define SIGNATURE_SIZE 64 566 #if defined (__IAR_SYSTEMS_ICC__) 567 #define TYPEDEF_STRUCT_PACKED __packed typedef struct 568 #elif defined __TI_COMPILER_VERSION || defined __TI_COMPILER_VERSION__ 569 #define TYPEDEF_STRUCT_PACKED typedef struct __attribute__((packed)) 570 #elif defined (__GNUC__) 571 #define TYPEDEF_STRUCT_PACKED typedef struct __attribute__((__packed__)) 575 #if defined(SECURITY) 579 PACKED_TYPEDEF_STRUCT
581 uint8_t signerInfo[SIGNER_INFO_SIZE];
582 uint8_t signature[SIGNATURE_SIZE];
583 }signPld_ECDSA_P256_t;
661 uint8_t segTypeSecure;
681 imgFixedHdr_t fixedHdr;
682 #if (defined(SECURITY)) 683 securityInfoSeg_t secInfoSeg;
685 #if (!defined(STACK_LIBRARY) && (defined(SPLIT_APP_STACK_IMAGE))) 686 boundarySeg_t boundarySeg;
693 uint32_t *eccWorkzone;
698 } ecdsaSigVerifyBuf_t;
714 uint8_t *, ecdsaSigVerifyBuf_t *);
Definition: oad_image_header.h:648