MCCI Trusted Bootloader
Simple trusted bootloader and tools for small embedded systems
mccibootloaderboard_catenaabz_vectors.c File Reference

Go to the source code of this file.

Functions

static void McciBootloaderBoard_CatenaAbz_NotHandled (void)
 interrupt not handled; loop.
 
static void McciBootloaderBoard_CatenaAbz_SvcHandler (McciBootloaderPlatform_ARMv6M_SvcRq_t svcRequest, McciBootloaderPlatform_ARMv6M_SvcError_t *pErrorCode, uint32_t arg1, uint32_t arg2)
 SVC handler – provides very limited facilities to the application after boot.
 

Variables

const McciBootloader_CortexPageZero_t gk_McciBootloader_CortexVectors
 the CortexM0 vectors for the boot loader.
 
const McciBootloader_SignatureBlock_t gk_McciBootloader_SignatureBlock
 the application signature block
 
static McciBootloaderPlatform_ARMv6M_SvcHandlerFn_t McciBootloaderBoard_CatenaAbz_SvcHandler
 

Function Documentation

◆ McciBootloaderBoard_CatenaAbz_NotHandled()

static void McciBootloaderBoard_CatenaAbz_NotHandled ( void  )
static

interrupt not handled; loop.

Definition at line 130 of file mccibootloaderboard_catenaabz_vectors.c.

◆ McciBootloaderBoard_CatenaAbz_SvcHandler()

static void McciBootloaderBoard_CatenaAbz_SvcHandler ( McciBootloaderPlatform_ARMv6M_SvcRq_t  svcRequest,
McciBootloaderPlatform_ARMv6M_SvcError_t *  pErrorCode,
uint32_t  arg1,
uint32_t  arg2 
)
static

SVC handler – provides very limited facilities to the application after boot.

  • McciBootloaderPlatform_ARMv6M_SvcRq_GetUpdatePointer: gets the address used by this bootloader for the EEPROM update flag.
  • McciBootloaderPlatform_ARMv6M_SvcRq_HashInit: initializes a hash calculation. arg1 points to a 64 byte buffer that is filled with the initial hash value.
  • McciBootloaderPlatform_ARMv6M_SvcRq_HashBlocks: accumulates hash. arg1 points to McciBootloaderPlatform_ARMv6M_SvcRq_HashBlocks_Arg_t object.
  • McciBootloaderPlatform_ARMv6M_SvcRq_HashFinish: finishes a hash calculation. arg1 points to McciBootloaderPlatform_ARMv6M_SvcRq_HashFinish_Arg_t.
  • McciBootloaderPlatform_ARMv6M_SvcRq_Verify64: does a time-invariant comparison of two 64-byte buffers.

TODO(tmm@m.nosp@m.cci..nosp@m.com): this should be refactored because it's essentially portable. The board specific SVC handler should delegate to a portable common block of logic.

Definition at line 162 of file mccibootloaderboard_catenaabz_vectors.c.

References McciBootloaderBoard_CatenaAbz_getEepromPointer(), McciBootloaderPlatform_ARMv6M_SvcRq_GetUpdatePointer, McciBootloaderPlatform_ARMv6M_SvcRq_HashBlocks, McciBootloaderPlatform_ARMv6M_SvcRq_HashFinish, McciBootloaderPlatform_ARMv6M_SvcRq_HashInit, McciBootloaderPlatform_ARMv6M_SvcRq_Verify64, McciBootloaderPlatform_SvcError_InvalidParameter, McciBootloaderPlatform_SvcError_OK, McciBootloaderPlatform_SvcError_Unclaimed, McciBootloaderPlatform_SvcError_VerifyFailure, McciBootloaderPlatform_ARMv6M_SvcRq_HashBlocks_Arg_t::nMessage, McciBootloaderPlatform_ARMv6M_SvcRq_HashFinish_Arg_t::nMessage, McciBootloaderPlatform_ARMv6M_SvcRq_HashFinish_Arg_t::nOverall, McciBootloaderPlatform_ARMv6M_SvcRq_HashBlocks_Arg_t::pHash, McciBootloaderPlatform_ARMv6M_SvcRq_HashFinish_Arg_t::pHash, McciBootloaderPlatform_ARMv6M_SvcRq_HashBlocks_Arg_t::pMessage, and McciBootloaderPlatform_ARMv6M_SvcRq_HashFinish_Arg_t::pMessage.

Variable Documentation

◆ gk_McciBootloader_CortexVectors

const McciBootloader_CortexPageZero_t gk_McciBootloader_CortexVectors

the CortexM0 vectors for the boot loader.

the Stm32 H7 vectors for the boot loader.

the CortexM7 vectors for the boot loader.

The vectors are put in section .McciBootloader_Vectors – be sure to research the link script when making changes here.

See also
mccibootloader.ld

Definition at line 45 of file mccibootloaderboard_catenaabz_vectors.c.

◆ gk_McciBootloader_SignatureBlock

const McciBootloader_SignatureBlock_t gk_McciBootloader_SignatureBlock

the application signature block

The signature block is put in section .McciBootloader_Signature – be sure to research the link script when making changes here.

See also
mccibootloader.ld

Definition at line 113 of file mccibootloaderboard_catenaabz_vectors.c.

◆ McciBootloaderBoard_CatenaAbz_SvcHandler

McciBootloaderPlatform_ARMv6M_SvcHandlerFn_t McciBootloaderBoard_CatenaAbz_SvcHandler
static

Definition at line 36 of file mccibootloaderboard_catenaabz_vectors.c.