GBL Format#

Modules#

GblTagHeader_t

GblHeader_t

VersionDependency_t

GblApplication_t

GblBootloader_t

GblTagDelta_t

GblSeUpgrade_t

GblMetadata_t

GblProg_t

GblEnd_t

GblEncryptionInitAesCcm_t

GblEncryptionData_t

GblCertificateEcdsaP256_t

GblSignatureEcdsaP256_t

Macros#

#define
GBL_IMAGE_MAGIC_WORD 0xE35050E3UL

Magic word indicating GBL image.

#define
GBL_COMPATIBILITY_MAJOR_VERSION 0x03000000UL

Major version of the GBL spec.

#define
GBL_TAG_ID_HEADER_V3 0x03A617EBUL

Tag ID for the GBL header tag.

#define
GBL_TAG_ID_BOOTLOADER 0xF50909F5UL

Tag ID for the GBL bootloader tag.

#define
GBL_TAG_ID_APPLICATION 0xF40A0AF4UL

Tag ID for the GBL application info tag.

#define
GBL_TAG_ID_METADATA 0xF60808F6UL

Tag ID for the GBL metadata tag.

#define
GBL_TAG_ID_PROG 0xFE0101FEUL

Tag ID for the GBL flash program tag.

#define
GBL_TAG_ID_PROG_LZ4 0xFD0505FDUL

Tag ID for the GBL flash program tag (LZ4)

#define
GBL_TAG_ID_PROG_LZMA 0xFD0707FDUL

Tag ID for the GBL flash program tag (LZMA)

#define
GBL_TAG_ID_ERASEPROG 0xFD0303FDUL

Tag ID for the GBL flash erase&program tag.

#define
GBL_TAG_ID_DELTA 0xF80A0AF8UL

Tag ID for the GBL delta dfu tag.

#define
GBL_TAG_ID_DELTA_LZ4 0xF80B0BF8UL

Tag ID for the GBL delta dfu tag (LZ4)

#define
GBL_TAG_ID_DELTA_LZMA 0xF80C0CF8UL

Tag ID for the GBL delta dfu tag (LZMA)

#define
GBL_TAG_ID_END 0xFC0404FCUL

Tag ID for the GBL end tag.

#define
GBL_TAG_ID_SE_UPGRADE 0x5EA617EBUL

Tag ID for the SE upgrade tag.

#define
GBL_TAG_ID_VERSION_DEPENDENCY 0x76A617EBUL

Tag ID for the version dependency tag.

#define
GBL_TAG_ID_ENC_HEADER 0xFB0505FBUL

Tag ID for the GBL encryption header tag.

#define
GBL_TAG_ID_ENC_INIT 0xFA0606FAUL

Tag ID for the GBL encryption init tag.

#define
GBL_TAG_ID_ENC_GBL_DATA 0xF90707F9UL

Tag ID for the GBL encryption data tag.

#define
GBL_TAG_ID_SIGNATURE_ECDSA_P256 0xF70A0AF7UL

Tag ID for the GBL ECDSA secp256r1 signature tag.

#define
GBL_TAG_ID_CERTIFICATE_ECDSA_P256 0xF30B0BF3UL

Tag ID for the GBL ECDSA certfificate tag.

#define
GBL_TYPE_NONE 0x00000000UL

GBL type: Standard GBL.

#define
GBL_TYPE_ENCRYPTION_AESCCM 0x00000001UL

GBL type: AES-CCM encrypted GBL.

#define
GBL_TYPE_SIGNATURE_ECDSA 0x00000100UL

GBL type: ECDSA P256-signed GBL.

#define
GBL_VERSION_DEPENDENCY_TYPE_APPLICATION 0x01U

Image Type : Application Image.

#define
GBL_VERSION_DEPENDENCY_TYPE_BOOTLOADER 0x02U

Image Type : Bootloader Image.

#define
GBL_VERSION_DEPENDENCY_TYPE_SE 0x03U

Image Type : Secure Engine Image.

#define
GBL_VERSION_DEPENDENCY_OPERATOR_MASK 0x0FU

Operator encoding : Operator Mask.

#define
GBL_VERSION_DEPENDENCY_OPERATOR_SHIFT 0x00U

Operator encoding : Operator Shift.

#define
GBL_VERSION_DEPENDENCY_OPERATOR_TYPE_MASK 0x0EU

Operator encoding : Operator Type Mask.

#define
GBL_VERSION_DEPENDENCY_OPERATOR_NEGATOR_BIT_MASK 0x01U

Operator encoding : Negator Bit mask.

#define
GBL_VERSION_DEPENDENCY_OPERATOR_LT 0x00U

GBL Version Dependency Operator LT.

#define
GBL_VERSION_DEPENDENCY_OPERATOR_LEQ 0x02U

GBL Version Dependency Operator LEQ.

#define
GBL_VERSION_DEPENDENCY_OPERATOR_EQ 0x04U

GBL Version Dependency Operator EQ.

#define
GBL_VERSION_DEPENDENCY_OPERATOR_GEQ 0x06U

GBL Version Dependency Operator GEQ.

#define
GBL_VERSION_DEPENDENCY_OPERATOR_GT 0x08U

GBL Version Dependency Operator GT.

#define
GBL_VERSION_DEPENDENCY_CONNECTIVE_MASK 0xF0U

Connective encoding : Connective Encoding Mask.

#define
GBL_VERSION_DEPENDENCY_CONNECTIVE_SHIFT 0x04U

Connective encoding : Encoding Shift.

#define
GBL_VERSION_DEPENDENCY_CONNECTIVE_TYPE_MASK 0x0EU

Connective encoding : Encoding Type Mask.

#define
GBL_VERSION_DEPENDENCY_CONNECTIVE_NEGATOR_BIT_MASK 0x01U

Connective encoding : Negator Bit Mask.

#define
GBL_VERSION_DEPENDENCY_CONNECTIVE_AND 0x00U

Connective AND Mask.

#define
GBL_VERSION_DEPENDENCY_CONNECTIVE_OR 0x02U

Connective OR Mask.

#define
GBL_VERSION_DEPENDENCY_SE_VERSION_MASK 0x00FFFFFFUL

SE version mask for ignoring the compatibility byte when comparing versions.

#define
GBL_TAG_ORDER_INIT 0U

Tag order.

#define
GBL_TAG_ORDER_HEADER_V3 1U

GBL Tag Order Header.

#define
GBL_TAG_ORDER_VERSION_DEPENDENCY 2U

GBL Tag Order Version Dependency.

#define
GBL_TAG_ORDER_ENC_INIT 4U

GBL Tag Order encoding Init.

#define
GBL_TAG_ORDER_APPLICATION 5U

GBL Tag Order Application.

#define
GBL_TAG_ORDER_SE_UPGRADE 6U

GBL Tag Order SE Upgarde.

#define
GBL_TAG_ORDER_BOOTLOADER 7U

GBL Tag Order Bootloader.

#define
GBL_TAG_ORDER_PROG_AND_METADATA 8U

The Programming and Metadata tags share the same order.

#define
GBL_TAG_ORDER_ENC_GBL_DATA 9U

GBL Tag Order Enc GBL Data.

#define
GBL_TAG_ORDER_CERTIFICATE 10U

GBL Tag Order Certificate.

#define
GBL_TAG_ORDER_SIGNATURE 11U

GBL Tag Order Signature.

#define
GBL_TAG_ORDER_END 12U

GBL_TAG_ORDER_END must always be strictly greater than any other tag order.

#define
GBL_TAG_FLAG_SINGLE_OCCURRENCE_ONLY (1UL << 0)

Flags.

#define
GBL_TAG_FLAG_ALWAYS_UNENCRYPTED (1UL << 1)

Flags.