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