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 271 #define OAD_WIRELESS_TECH_MIOTY 0xFF7F 275 #if defined(DeviceFamily_CC26X2) || defined (DeviceFamily_CC26X2_V2) 276 #define OAD_IMG_ID_VAL {'C', 'C', '2', '6', 'x', '2', 'R', '1'} 277 #elif defined (DeviceFamily_CC13X2) || \ 278 defined (DeviceFamily_CC13X2_V1) || \ 279 defined (DeviceFamily_CC13X2_V2) 280 #define OAD_IMG_ID_VAL {'C', 'C', '1', '3', 'x', '2', 'R', '1'} 281 #elif defined (DeviceFamily_CC26X0R2) 282 #define OAD_IMG_ID_VAL {'O', 'A', 'D', ' ', 'I', 'M', 'G', ' '} 283 #elif defined (DOXYGEN) 294 #define OAD_IMG_ID_VAL 296 #error "Unknown Device Family" 297 #endif //DeviceFamily_CC26X2 307 #define OAD_EXTFL_ID_VAL {'O', 'A', 'D', ' ', 'N', 'V', 'M', '1'} 318 #define CRC_OFFSET offsetof(imgHdr_t, fixedHdr.crc32) 323 #define BIM_VER_OFFSET offsetof(imgHdr_t, fixedHdr.bimVer) 329 #define IMG_DATA_OFFSET BIM_VER_OFFSET 334 #define IMG_INFO_OFFSET offsetof(imgHdr_t, fixedHdr.imgCpStat) 339 #define IMG_COPY_STAT_OFFSET IMG_INFO_OFFSET 344 #define CRC_STAT_OFFSET offsetof(imgHdr_t, fixedHdr.crcStat) 349 #define IMG_TYPE_OFFSET offsetof(imgHdr_t, fixedHdr.imgType) 354 #define IMG_VALIDATION_OFFSET offsetof(imgHdr_t, fixedHdr.imgVld) 359 #define BOUNDARY_SEG_OFFSET offsetof(imgHdr_t, fixedHdr.segTypeBd) 364 #define SEG_LEN_OFFSET 4 371 #define SEG_SIGERINFO_OFFSET offsetof(imgHdr_t, secInfoSeg.secSignerInfo) 376 #define SEG_SIGNR_OFFSET offsetof(imgHdr_t, secInfoSeg.eccSign.sign_r) 381 #define SEG_SIGNS_OFFSET offsetof(imgHdr_t, secInfoSeg.eccSign.sign_s) 386 #define SEC_VERIF_STAT_OFFSET offsetof(imgHdr_t, secInfoSeg.verifStat) 391 #define HDR_LEN_WITH_SECURITY_INFO offsetof(imgHdr_t, secInfoSeg.segTypeSecure) + sizeof(securityInfoSeg_t) 396 #define IMG_START_ADDR_OFFSET offsetof(imgHdr_t, imgPayload.startAddr) 408 #define SEG_HDR_LEN 12 414 #define OAD_IMG_ID_LEN 8 419 #define OAD_SW_VER_LEN 4 424 #define OAD_IMG_HDR_LEN sizeof(imgFixedHdr_t) 437 #define IMG_BOUNDARY_SEG_ID 0x00 442 #define IMG_PAYLOAD_SEG_ID 0x01 448 #define IMG_NONCOUNT_SEG_ID 0x02 453 #define IMG_SECURITY_SEG_ID 0x03 458 #define OAD_IMG_FULL_HDR_LEN sizeof(imgHdr_t) 459 #define OAD_IMG_ID_LEN 8 460 #define OAD_SW_VER_LEN 4 462 #ifndef STACK_LIBRARY 463 #define BOUNDARY_SEG_LEN 0x18 465 #define SECURITY_SEG_LEN 0x55 467 #define IMG_COPY_STAT_OFFSET IMG_INFO_OFFSET 469 #define SEG_LEN_OFFSET 4 470 #define SIG_OFFSET offsetof(imgHdr_t, secInfoSeg.eccSign.sign_r) 472 #define ECDSA_KEY_LEN 32 474 #define ECDSA_SHA_TEMPWORKZONE_LEN ECDSA_KEY_LEN*6 495 #define SECURITY_VER 0x1 500 #define DEFAULT_STATE 0xFF 506 #define CRC_VALID 0xFE 512 #define CRC_INVALID 0xFC 517 #define NEED_COPY 0xFE 522 #define COPY_DONE 0xFC 527 #define VERIFY_PASS 0xFE 532 #define VERIFY_FAIL 0xFC 537 #define EFL_MATADATA_HDR_LEN OAD_IMG_HDR_LEN + 8 542 #define INVALID_ADDR 0xFFFFFFFF 547 #define INVALID_LEN INVALID_ADDR 552 #define DEFAULT_CRC 0xFFFFFFFF 554 #if defined(SECURITY) 558 #define SIGNER_INFO_SIZE 8 563 #define SIGNATURE_SIZE 64 571 #if defined (__IAR_SYSTEMS_ICC__) 572 #define TYPEDEF_STRUCT_PACKED __packed typedef struct 573 #elif defined __TI_COMPILER_VERSION || defined __TI_COMPILER_VERSION__ 574 #define TYPEDEF_STRUCT_PACKED typedef struct __attribute__((packed)) 575 #elif defined (__GNUC__) 576 #define TYPEDEF_STRUCT_PACKED typedef struct __attribute__((__packed__)) 580 #if defined(SECURITY) 584 PACKED_TYPEDEF_STRUCT
586 uint8_t signerInfo[SIGNER_INFO_SIZE];
587 uint8_t signature[SIGNATURE_SIZE];
588 }signPld_ECDSA_P256_t;
666 uint8_t segTypeSecure;
686 imgFixedHdr_t fixedHdr;
687 #if (defined(SECURITY)) 688 securityInfoSeg_t secInfoSeg;
690 #if (!defined(STACK_LIBRARY) && (defined(SPLIT_APP_STACK_IMAGE))) 691 boundarySeg_t boundarySeg;
698 uint32_t *eccWorkzone;
703 } ecdsaSigVerifyBuf_t;
719 uint8_t *, ecdsaSigVerifyBuf_t *);
Definition: oad_image_header.h:653