Common bootloader definitions.

Modules

GPIO
Bootloader GPIO definitions.
 
Serial
Common bootloader serial definitions.

Typedefs

typedef uint8_t BL_Status
 Define the bootloader status type.

Enumerations

enum  {
  COMM_SERIAL = 0x01,
  COMM_RADIO = 0x02
}

Bootloader Status Definitions

These are numerical definitions for the possible bootloader status codes.

#define BL_SUCCESS   0U
 Numerical definition for a bootloader status code: Success.
 
#define BL_CRC_MATCH   2U
 Numerical definition for a bootloader status code: CRC match.
 
#define BL_IMG_FLASHED   3U
 Numerical definition for a bootloader status code: Image flashed.
 
#define BL_ERR   1U
 Numerical definition for a bootloader status code: serial error.
 
#define BL_ERR_MASK   0x40U
 Numerical definition for a bootloader status code: Error mask.
 
#define BL_ERR_HEADER_EXP   0x41U
 Numerical definition for a bootloader status code: Failed in header state. Header expected.
 
#define BL_ERR_HEADER_WRITE_CRC   0x42U
 Numerical definition for a bootloader status code: Failed write/CRC of header.
 
#define BL_ERR_CRC   0x43U
 Numerical definition for a bootloader status code: Failed file CRC.
 
#define BL_ERR_UNKNOWN_TAG   0x44U
 Numerical definition for a bootloader status code: Unknown tag.
 
#define BL_ERR_SIG   0x45U
 Numerical definition for a bootloader status code: EBL header error.
 
#define BL_ERR_ODD_LEN   0x46U
 Numerical definition for a bootloader status code: Trying to flash odd length bytes.
 
#define BL_ERR_BLOCK_INDEX   0x47U
 Numerical definition for a bootloader status code: Indexed past end of block buffer.
 
#define BL_ERR_OVWR_BL   0x48U
 Numerical definition for a bootloader status code: Attempt to overwrite bootloader flash.
 
#define BL_ERR_OVWR_SIMEE   0x49U
 Numerical definition for a bootloader status code: Attempt to overwrite Simulated EEPROM flash.
 
#define BL_ERR_ERASE_FAIL   0x4AU
 Numerical definition for a bootloader status code: Flash erase failed.
 
#define BL_ERR_WRITE_FAIL   0x4BU
 Numerical definition for a bootloader status code: Flash write failed.
 
#define BL_ERR_CRC_LEN   0x4CU
 Numerical definition for a bootloader status code: END tag CRC wrong length.
 
#define BL_ERR_NO_QUERY   0X4DU
 Numerical definition for a bootloader status code: Received data before query request/response.
 
#define BL_ERR_BAD_LEN   0x4EU
 Numerical definition for a bootloader status code: Invalid length detected.
 
#define BL_ERR_TAGBUF   0x4FU
 Numerical definition for a bootloader status code: Problem with tagBuf detected.
 
#define BL_EBL_CONTINUE   0x50U
 Numerical definition for a bootloader status code: processEbl deferred, call again to continue.
 
#define BL_ERR_UNEXPECTED_TAG   0x51U
 Numerical definition for a bootloader status code: A known tag was found in an unexpected location (eg. header tag found after data)
 
#define BL_ERR_UNK_ENC   0x52U
 Numerical definition for a bootloader status code: The specified encryption type is unknown to this bootloader.
 
#define BL_ERR_INV_KEY   0x53U
 Numerical definition for a bootloader status code: No valid encryption key found on the device (ie. It's all 0xFF's). Bootloader will not function until this key is set.
 
#define BL_ERR_ENC   0x54U
 Numerical definition for a bootloader status code: Generic error indicating that there was a problem with the encrypted file when decrypting.
 
#define BL_IBR_ERR_CRC   0x55U
 Numerical definition for a bootloader status code: Failed IBR crc.
 
#define BL_IBR_ERR_VERS   0x56U
 Numerical definition for a bootloader status code: Incorrect IBR version.
 
#define BL_IBR_ERR_ADDR   0x57U
 Numerical definition for a bootloader status code: Invalid ebl address in IBR.
 
#define BL_IBR_ERR_HDR   0x58U
 Numerical definition for a bootloader status code: Incorrect IBR header.

Bootloader State Flags

These are numerical flags for the possible bootloader states. These values are used in the bootloader code for making the current state more verbose.

Note
The flags do not start at 0 so that they can be output via the serial port during debug and easily screened out of normal xmodem traffic which depends only on ACK (0x06) and NAK (0x15).
#define TIMEOUT   0x16
 Bootloader state flag.
 
#define FILEDONE   0x17
 Bootloader state flag.
 
#define FILEABORT   0x18
 Bootloader state flag.
 
#define BLOCKOK   0x19
 Bootloader state flag.
 
#define QUERYFOUND   0x1A
 Bootloader state flag.
 
#define START_TIMEOUT   0x1B
 Bootloader state flag.
 
#define BLOCK_TIMEOUT   0x1C
 Bootloader state flag.
 
#define BLOCKERR_MASK   0x20
 Bootloader state flag.
 
#define BLOCKERR_SOH   0x21
 Bootloader state flag: Start Of Header not received.
 
#define BLOCKERR_CHK   0x22
 Bootloader state flag: Sequence of bytes don't match.
 
#define BLOCKERR_CRCH   0x23
 Bootloader state flag: CRC High byte failure.
 
#define BLOCKERR_CRCL   0x24
 Bootloader state flag: CRC Low byte failure.
 
#define BLOCKERR_SEQUENCE   0x25
 Bootloader state flag: Block received out of sequence.
 
#define BLOCKERR_PARTIAL   0x26
 Bootloader state flag: Partial block received.
 
#define BLOCKERR_DUPLICATE   0x27
 Bootloader state flag: Duplicate of previous block.

Detailed Description

See bootloader-common.h for source code.

Macro Definition Documentation

#define BL_CRC_MATCH   2U
#define BL_EBL_CONTINUE   0x50U
#define BL_ERR   1U
#define BL_ERR_BAD_LEN   0x4EU
#define BL_ERR_BLOCK_INDEX   0x47U
#define BL_ERR_CRC   0x43U
#define BL_ERR_CRC_LEN   0x4CU
#define BL_ERR_ENC   0x54U
#define BL_ERR_ERASE_FAIL   0x4AU
#define BL_ERR_HEADER_EXP   0x41U
#define BL_ERR_HEADER_WRITE_CRC   0x42U
#define BL_ERR_INV_KEY   0x53U
#define BL_ERR_MASK   0x40U
#define BL_ERR_NO_QUERY   0X4DU
#define BL_ERR_ODD_LEN   0x46U
#define BL_ERR_OVWR_BL   0x48U
#define BL_ERR_OVWR_SIMEE   0x49U
#define BL_ERR_SIG   0x45U
#define BL_ERR_TAGBUF   0x4FU
#define BL_ERR_UNEXPECTED_TAG   0x51U
#define BL_ERR_UNK_ENC   0x52U
#define BL_ERR_UNKNOWN_TAG   0x44U
#define BL_ERR_WRITE_FAIL   0x4BU
#define BL_IBR_ERR_ADDR   0x57U
#define BL_IBR_ERR_CRC   0x55U
#define BL_IBR_ERR_HDR   0x58U
#define BL_IBR_ERR_VERS   0x56U
#define BL_IMG_FLASHED   3U
#define BL_SUCCESS   0U
#define BLOCK_TIMEOUT   0x1C
#define BLOCKERR_CHK   0x22
#define BLOCKERR_CRCH   0x23
#define BLOCKERR_CRCL   0x24
#define BLOCKERR_DUPLICATE   0x27
#define BLOCKERR_MASK   0x20
#define BLOCKERR_PARTIAL   0x26
#define BLOCKERR_SEQUENCE   0x25
#define BLOCKERR_SOH   0x21
#define BLOCKOK   0x19
#define FILEABORT   0x18
#define FILEDONE   0x17
#define QUERYFOUND   0x1A
#define START_TIMEOUT   0x1B
#define TIMEOUT   0x16

Typedef Documentation

typedef uint8_t BL_Status

Enumeration Type Documentation

anonymous enum
Enumerator
COMM_SERIAL 
COMM_RADIO