133 #include "hal_types.h" 134 #include <ti/sysbios/knl/Queue.h> 136 #include <common/cc26xx/oad/oad_image_header.h> 146 #ifdef OAD_BLE_SECURITY 147 #define OAD_WRITE_PERMIT GATT_PERMIT_AUTHEN_WRITE 149 #define OAD_WRITE_PERMIT GATT_PERMIT_WRITE 150 #endif //OAD_SECURITY 155 #define OAD_IMG_ID_RETRIES 3 168 #define OAD_QUEUE_EVT Event_Id_01 175 #define OAD_DL_COMPLETE_EVT Event_Id_02 182 #define OAD_OUT_OF_MEM_EVT Event_Id_03 197 #define OAD_SERVICE_UUID 0xFFC0 202 #define OAD_IMG_IDENTIFY_UUID 0xFFC1 207 #define OAD_IMG_BLOCK_UUID 0xFFC2 213 #define OAD_IMG_COUNT_UUID 0xFFC3 220 #define OAD_IMG_STATUS_UUID 0xFFC4 225 #define OAD_EXT_CTRL_UUID 0xFFC5 237 #define OAD_IDX_IMG_IDENTIFY 0 242 #define OAD_IDX_IMG_BLOCK 1 247 #define OAD_IDX_EXT_CTRL 2 255 #define OAD_ATT_OVERHEAD 3 260 #define OAD_BLK_NUM_HDR_SZ 4 267 #define OAD_DEFAULT_BLOCK_SIZE 20 274 #define OAD_MAX_BLOCK_SIZE 244 279 #define OAD_IMAGE_ID_RSP_LEN 0x01 291 #define OAD_EXT_CTRL_GET_BLK_SZ 0x01 298 #define OAD_EXT_CTRL_IMG_CNT 0x02 305 #define OAD_EXT_CTRL_START_OAD 0x03 312 #define OAD_EXT_CTRL_ENABLE_IMG 0x04 318 #define OAD_EXT_CTRL_CANCEL_OAD 0x05 324 #define OAD_EXT_CTRL_DISABLE_BLK_NOTIF 0x06 330 #define OAD_EXT_CTRL_GET_SW_VER 0x07 336 #define OAD_EXT_CTRL_GET_IMG_STAT 0x08 342 #define OAD_EXT_CTRL_GET_PROF_VER 0x09 348 #define OAD_EXT_CTRL_GET_DEV_TYPE 0x10 355 #define OAD_EXT_CTRL_GET_IMG_INFO 0x11 361 #define OAD_EXT_CTRL_BLK_RSP_NOTIF 0x12 367 #define OAD_EXT_CTRL_ERASE_BONDS 0x13 376 #define OAD_EXT_CTRL_CMD_NOT_SUPPORTED 0xFF 384 #define OAD_IMG_INFO_ONCHIP 0x01 392 #define OAD_DEFAULT_INACTIVITY_TIME 10000 398 #define OAD_MIN_INACTIVITY_TIME 4000 403 #define OAD_CHAR_CNT 3 408 #define OAD_CCCD_CNT OAD_CHAR_CNT 415 #define OAD_SUCCESS 0 416 #define OAD_CRC_ERR 1 417 #define OAD_FLASH_ERR 2 418 #define OAD_BUFFER_OFL 3 419 #define OAD_ALREADY_STARTED 4 420 #define OAD_NOT_STARTED 5 421 #define OAD_DL_NOT_COMPLETE 6 422 #define OAD_NO_RESOURCES 7 423 #define OAD_IMAGE_TOO_BIG 8 424 #define OAD_INCOMPATIBLE_IMAGE 9 425 #define OAD_INVALID_FILE 10 426 #define OAD_INCOMPATIBLE_FILE 11 427 #define OAD_AUTH_FAIL 12 428 #define OAD_EXT_NOT_SUPPORTED 13 429 #define OAD_DL_COMPLETE 14 430 #define OAD_CCCD_NOT_ENABLED 15 431 #define OAD_IMG_ID_TIMEOUT 16 435 #if defined(DeviceFamily_CC26X2) || defined(DeviceFamily_CC13X2) || defined(DeviceFamily_CC26X1) 437 #define BIM_START 0x56000 438 #elif defined(DeviceFamily_CC26X2X7) || defined(DeviceFamily_CC13X2X7) 439 #define BIM_START 0xAE000 441 #define BIM_START 0x1F000 448 #define OAD_IMG_PG_INVALID 0xFF 451 #define OAD_SEC_ECDSA_P256 0x01 452 #define OAD_SEC_AES_128_CBC 0x02 458 #define OAD_EFL_MAX_META 4 467 #define EXT_CTRL_OP_CODE(pData)(pData[0]) 476 PACKED_TYPEDEF_STRUCT
492 PACKED_TYPEDEF_STRUCT
503 PACKED_TYPEDEF_STRUCT
511 PACKED_TYPEDEF_STRUCT
513 uint8_t securityVersion;
564 PACKED_TYPEDEF_STRUCT
573 PACKED_TYPEDEF_STRUCT
582 PACKED_TYPEDEF_STRUCT
591 PACKED_TYPEDEF_STRUCT
594 uint8_t swVer[OAD_SW_VER_LEN];
603 PACKED_TYPEDEF_STRUCT
615 PACKED_TYPEDEF_STRUCT
630 PACKED_TYPEDEF_STRUCT
688 extern uint8_t
OAD_open(uint32_t oadTimeout);
775 extern void OAD_getProgressInfo(imgProgressInfo_t* pImgInfo);
uint8_t imgCpStat
Image copy status bytes.
Definition: oad.h:481
uint8_t oadCreateFactoryImageBackup(void)
uint8_t crcStat
Image CRC status flag.
Definition: oad.h:506
uint8_t cmdID
External control op-code.
Definition: oad.h:494
External Control Command received.
Definition: oad.h:525
uint8_t imgCpStat
Image copy flag.
Definition: oad.h:505
uint8_t imgType
Image Type.
Definition: oad.h:621
OAD peer timed out.
Definition: oad.h:526
uint16_t len
Length of data received.
Definition: oad.h:537
uint8_t imgCpStat
Image copy status.
Definition: oad.h:619
uint32_t requestedBlk
Requested block number.
Definition: oad.h:496
uint8_t profVer
OAD profile version.
Definition: oad.h:576
oadEvent_e event
Event that occurred.
Definition: oad.h:535
uint8_t hardwareRev
Hardware revision Field from ChipInfo module.
Definition: oad.h:608
uint8_t cmdID
Ext Ctrl Op-code.
Definition: oad.h:575
uint8_t crcStat
CRC status.
Definition: oad.h:482
uint8_t bimVer
BIM version.
Definition: oad.h:479
uint8_t imgNo
Image number flag.
Definition: oad.h:508
uint8_t imgType
Image Type.
Definition: oad.h:483
uint16_t OAD_getBlockSize(void)
bool OAD_getSWVersion(uint8_t *swVer, uint8_t len)
uint8_t imgType
Image type flag.
Definition: oad.h:507
uint8_t OAD_processQueue(void)
uint8_t OAD_open(uint32_t oadTimeout)
uint8_t imgNo
Image Number.
Definition: oad.h:634
uint8_t chipType
Chip Type Field from ChipInfo module.
Definition: oad.h:606
Image block request/response event.
Definition: oad.h:523
uint32_t len
Image length in octets.
Definition: oad.h:485
uint16_t techType
Wireless technology type.
Definition: oad.h:635
oadState_e
Definition: oad.h:545
uint8_t imgType
Image Type.
Definition: oad.h:633
uint8_t prevBlkStat
Status of previous block write.
Definition: oad.h:495
OAD module is configuring for a download.
Definition: oad.h:549
void OAD_register(oadTargetCBs_t *pfnOadCBs)
uint8_t OAD_setBlockSize(uint16_t mtuSize)
OAD module is not performing any action.
Definition: oad.h:547
OAD module is validating an received image.
Definition: oad.h:551
uint16_t connHandle
Connection event was received on.
Definition: oad.h:536
uint8_t cmdID
Ext Ctrl Op-code.
Definition: oad.h:584
oadWriteCB_t pfnOadWrite
The peer has written to the OAD service.
Definition: oad.h:671
uint8_t rsvd
RFU.
Definition: oad.h:609
uint8_t * pData
Pointer to data received.
Definition: oad.h:539
uint16_t oadBlkSz
OAD block size.
Definition: oad.h:585
uint8_t imgNo
Image number of 'image type'.
Definition: oad.h:484
uint8_t cmdID
Ext Ctrl Op-code.
Definition: oad.h:593
OAD module is receiving an image.
Definition: oad.h:550
OAD module is checking an image.
Definition: oad.h:548
uint16_t offset
GATT offset into blob.
Definition: oad.h:538
uint8_t chipFamily
Chip Family Field from ChipInfo module.
Definition: oad.h:607
uint8_t cmdID
Ext Ctrl Op-code.
Definition: oad.h:566
uint8_t crcStat
Image CRC status.
Definition: oad.h:620
uint16_t OAD_getactiveCxnHandle()
void(* oadWriteCB_t)(uint8_t event, uint16_t arg)
Definition: oad.h:664
bool OAD_isUsrAppValid(void)
uint8_t cmdID
Ext Ctrl Op-code.
Definition: oad.h:617
uint8_t status
Status of command.
Definition: oad.h:567
Image identify received.
Definition: oad.h:522
uint8_t metaVer
Metadata version.
Definition: oad.h:480
uint8_t cmdID
Ext Ctrl Op-code.
Definition: oad.h:632
oadEvent_e
Definition: oad.h:520
uint8_t numImages
Number of images.
Definition: oad.h:618
OAD complete.
Definition: oad.h:524
uint8_t imgNo
Image Number.
Definition: oad.h:622
OAD module has completed a download.
Definition: oad.h:552
Queue_Elem _elem
New queue element to contain write evt info.
Definition: oad.h:534
uint8_t cmdID
Ext Ctrl Op-code.
Definition: oad.h:605
bool OAD_evenBitCount(uint32_t value)