TI OAD API Documentation  2.02.07.00
Data Structures | Macros | Typedefs | Variables
oad_image_header.h File Reference

Detailed Description

Structure definition for image header and segments, these are prepended to the over the air images.

Go to the source code of this file.

Data Structures

struct  boundarySeg_t
 
struct  eccSignature_t
 
struct  imgFixedHdr_t
 
struct  imgHdr_t
 
struct  imgPayloadSeg_t
 
struct  securityInfoSeg_t
 

Macros

#define BIM_VER   0x3
 
#define BIM_VER_OFFSET   offsetof(imgHdr_t, fixedHdr.bimVer)
 
#define BOUNDARY_SEG_LEN   0x18
 Length of the boundary segment.
 
#define BOUNDARY_SEG_OFFSET   offsetof(imgHdr_t, fixedHdr.segTypeBd)
 
#define COPY_DONE   0xFC
 
#define CRC_INVALID   0xFC
 
#define CRC_OFFSET   offsetof(imgHdr_t, fixedHdr.crc32)
 
#define CRC_STAT_OFFSET   offsetof(imgHdr_t, fixedHdr.crcStat)
 
#define CRC_VALID   0xFE
 
#define DEFAULT_CRC   0xFFFFFFFF
 
#define DEFAULT_STATE   0xFF
 
#define ECDSA_KEY_LEN   32
 Length of the ECDSA security key.
 
#define ECDSA_SHA_TEMPWORKZONE_LEN   ECDSA_KEY_LEN*6
 space for six buffers hash, reverseHash, pubkeyX, pubKeyY, sign1, sign2
 
#define EFL_MATADATA_HDR_LEN   OAD_IMG_HDR_LEN + 8
 
#define HDR_LEN_WITH_SECURITY_INFO   offsetof(imgHdr_t, secInfoSeg.segTypeSecure) + sizeof(securityInfoSeg_t)
 
#define IMG_BOUNDARY_SEG_ID   0x00
 
#define IMG_COPY_STAT_OFFSET   IMG_INFO_OFFSET
 
#define IMG_COPY_STAT_OFFSET   IMG_INFO_OFFSET /* Image copy status */
 
#define IMG_DATA_OFFSET   BIM_VER_OFFSET
 
#define IMG_INFO_OFFSET   offsetof(imgHdr_t, fixedHdr.imgCpStat)
 
#define IMG_NONCOUNT_SEG_ID   0x02
 
#define IMG_PAYLOAD_SEG_ID   0x01
 
#define IMG_SECURITY_SEG_ID   0x03
 
#define IMG_START_ADDR_OFFSET   offsetof(imgHdr_t, imgPayload.startAddr)
 
#define IMG_TYPE_OFFSET   offsetof(imgHdr_t, fixedHdr.imgType)
 
#define IMG_VALIDATION_OFFSET   offsetof(imgHdr_t, fixedHdr.imgVld)
 
#define INVALID_ADDR   0xFFFFFFFF
 
#define INVALID_LEN   INVALID_ADDR
 
#define META_VER   0x1
 
#define NEED_COPY   0xFE
 
#define OAD_EXTFL_ID_VAL   {'O', 'A', 'D', ' ', 'N', 'V', 'M', '1'}
 
#define OAD_IMG_FULL_HDR_LEN   sizeof(imgHdr_t)
 The length of the OAD Header + Segments.
 
#define OAD_IMG_HDR_LEN   sizeof(imgFixedHdr_t)
 
#define OAD_IMG_ID_LEN   8
 OAD image identification bytes length. More...
 
#define OAD_IMG_ID_LEN   8
 OAD image identification bytes length. More...
 
#define OAD_IMG_ID_VAL
 
#define OAD_IMG_TYPE_APP   1
 
#define OAD_IMG_TYPE_APP_STACK   3
 
#define OAD_IMG_TYPE_APPSTACKLIB   7
 
#define OAD_IMG_TYPE_BIM   6
 
#define OAD_IMG_TYPE_FACTORY   5
 
#define OAD_IMG_TYPE_NP   4
 
#define OAD_IMG_TYPE_PERSISTENT_APP   0
 
#define OAD_IMG_TYPE_RSVD_BEGIN   64
 
#define OAD_IMG_TYPE_RSVD_END   255
 
#define OAD_IMG_TYPE_STACK   2
 
#define OAD_SW_VER_LEN   4
 OAD software version length in bytes. More...
 
#define OAD_SW_VER_LEN   4
 OAD software version length in bytes. More...
 
#define OAD_WIRELESS_TECH_BLE   0xFFFE
 
#define OAD_WIRELESS_TECH_MIOTY   0xFF7F
 
#define OAD_WIRELESS_TECH_PROPRF   0xFFBF
 
#define OAD_WIRELESS_TECH_RF4CE   0xFFEF
 
#define OAD_WIRELESS_TECH_THREAD   0xFFDF
 
#define OAD_WIRELESS_TECH_TIMAC_2_4G   0xFFFB
 
#define OAD_WIRELESS_TECH_TIMAC_SUBG   0xFFFD
 
#define OAD_WIRELESS_TECH_WBMS   0xFEFF
 
#define OAD_WIRELESS_TECH_ZIGBEE   0xFFF7
 
#define SEC_VERIF_STAT_OFFSET   offsetof(imgHdr_t, secInfoSeg.verifStat)
 
#define SECURITY_SEG_LEN   0x55
 Length of the security segment.
 
#define SECURITY_VER   0x1
 
#define SEG_HDR_LEN   12
 
#define SEG_LEN_OFFSET   4
 
#define SEG_LEN_OFFSET   4 /* Offset from seg header to seg len */
 
#define SEG_SIGERINFO_OFFSET   offsetof(imgHdr_t, secInfoSeg.secSignerInfo)
 
#define SEG_SIGNR_OFFSET   offsetof(imgHdr_t, secInfoSeg.eccSign.sign_r)
 
#define SEG_SIGNS_OFFSET   offsetof(imgHdr_t, secInfoSeg.eccSign.sign_s)
 
#define SIG_OFFSET   offsetof(securityInfoSeg_t, eccSign.sign_r)
 Offset from the start of security seg to sig.
 
#define SIGN_FN_PTR   0x57fa0
 Pointer to BIM Function.
 
#define VERIFY_FAIL   0xFC
 
#define VERIFY_PASS   0xFE
 

Typedefs

typedef uint8_t(* bimSignFnPtr_t) (uint8_t, uint32_t, uint32_t, uint8_t *, uint8_t *, ecdsaSigVerifyBuf_t *)
 OAD Image Pointer to BIM Function. More...
 

Variables

uint32_t _sign_fnPtr
 Variable for Pointer to BIM Function.
 

Macro Definition Documentation

§ BIM_VER

#define BIM_VER   0x3

Version of BIM this image is intended to work with

Warning
This is not intended to be changed

§ COPY_DONE

#define COPY_DONE   0xFC

FlagimgCpStat indicating the image is already copied

§ CRC_INVALID

#define CRC_INVALID   0xFC

Flag for crcStat indicating the CRC of the image is invalid

§ CRC_VALID

#define CRC_VALID   0xFE

Flag for crcStat indicating the CRC of the image is valid

§ DEFAULT_CRC

#define DEFAULT_CRC   0xFFFFFFFF

An invalid address as shown by unprogrammed flash.

§ DEFAULT_STATE

#define DEFAULT_STATE   0xFF

Default state of unprogrammed flash in an image header field

§ EFL_MATADATA_HDR_LEN

#define EFL_MATADATA_HDR_LEN   OAD_IMG_HDR_LEN + 8

Length of image external flash image header

§ INVALID_ADDR

#define INVALID_ADDR   0xFFFFFFFF

An invalid address as shown by unprogrammed flash

§ INVALID_LEN

#define INVALID_LEN   INVALID_ADDR

An invalid length as shown by unprogrammed flash.

§ META_VER

#define META_VER   0x1

Version of metadata that defined this image header

Warning
This is not intended to be changed

§ NEED_COPY

#define NEED_COPY   0xFE

FlagimgCpStat indicating the image should be copied

§ SECURITY_VER

#define SECURITY_VER   0x1

Version of metadata that defined this image header

Warning
This is not intended to be changed

§ VERIFY_FAIL

#define VERIFY_FAIL   0xFC

Flagimg verification status indicating the failed sign verification

§ VERIFY_PASS

#define VERIFY_PASS   0xFE

Flagimg verification status indicating the successful sign verification

Typedef Documentation

§ bimSignFnPtr_t

typedef uint8_t(* bimSignFnPtr_t) (uint8_t, uint32_t, uint32_t, uint8_t *, uint8_t *, ecdsaSigVerifyBuf_t *)

OAD Image Pointer to BIM Function.

Function typdef for bim_payloadVerify() fxn defined in bim_main.c

© Copyright 1995-2022, Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy policy | Terms of use | Terms of sale