Image ParserPlugin

Description

Image parser plugin.

Generic image parser interface for Silicon Labs bootloader.

Modules

GBL Parser
GBL parser implementation.

Data Structures

struct ImageProperties_t
Structure containing state of the image file processed.

Macros

#define BTL_IMAGE_CONTENT_APPLICATION 0x01U
Upgrade image contains application upgrade.
#define BTL_IMAGE_CONTENT_BOOTLOADER 0x02U
Upgrade image contains bootloader upgrade.
#define BTL_IMAGE_CONTENT_SE 0x04U
Upgrade image contains SE upgrade.
#define BTL_IMAGE_INSTRUCTION_APPLICATION 0x01U
Application upgrade should be applied from upgrade image.
#define BTL_IMAGE_INSTRUCTION_BOOTLOADER 0x02U
Bootloader upgrade should be applied from upgrade image.
#define BTL_IMAGE_INSTRUCTION_SE 0x04U
SE upgrade should be applied from upgrade image.

Functions

int32_t parser_init (void *context, void *decryptContext, void *authContext, uint8_t flags)
int32_t parser_parse (void *context, ImageProperties_t *imageProperties, uint8_t buffer[], size_t length, const BootloaderParserCallbacks_t *callbacks)
bool parser_requireAuthenticity (void)
bool parser_requireConfidentiality (void)
uint32_t parser_getApplicationAddress (void)
uint32_t parser_getBootloaderUpgradeAddress (void)
bool parser_applicationUpgradeValidCallback ( ApplicationData_t *app)

Function Documentation

int32_t parser_init ( void * context,
void * decryptContext,
void * authContext,
uint8_t flags
)

Initialize the parser's context.

Parameters
context Pointer to context for the parser implementation
decryptContext Pointer to context for decryption of parsed file
authContext Pointer to context for authentication of parsed file
flags Flags for parser support
Returns
BOOTLOADER_OK if OK, error code otherwise.
int32_t parser_parse ( void * context,
ImageProperties_t * imageProperties,
uint8_t buffer[],
size_t length,
const BootloaderParserCallbacks_t * callbacks
)

Parse an image file to extract the binary and some metadata.

Pushes data into the image file parser to be parsed.

Parameters
context Pointer to the specific parser's context variable
imageProperties Pointer to the image file state variable
buffer Pointer to byte array containing data to parse
length Size in bytes of the data in buffer
callbacks Struct containing function pointers to be called by the parser to pass the extracted binary data back to BTL.
Returns
BOOTLOADER_OK if OK, error code otherwise.
bool parser_requireAuthenticity ( void )

Check whether the parser requires images to be signed.

Returns
True if authenticity is required, else false
bool parser_requireConfidentiality ( void )

Check whether the parser requires images to be encrypted.

Returns
True if confidentiality is required, else false
uint32_t parser_getApplicationAddress ( void )

Return the start address of the application.

Returns
start address of the application
uint32_t parser_getBootloaderUpgradeAddress ( void )

Return the start address of the bootloader upgrade location.

Returns
start address of the bootloader upgrade location if upgrading is supported, otherwise 0.
bool parser_applicationUpgradeValidCallback ( ApplicationData_t * app )

Callback to tell the parser whether to accept the application upgrade present in the upgrade image.

Parameters
[in] app Pointer to the application data structure contained in the upgrade image.
Returns
True if the application is accepted, and the parser should continue. False if the application is rejected. If rejected, the parser will abort parsing the image file and return BOOTLOADER_ERROR_PARSER_REJECTED .