![]() |
MCUXpresso SDK API Reference Manual
Rev. 0
NXP Semiconductors
|
Data Structures | |
struct | boot_cmd_t |
Boot command definition. More... | |
struct | boot_hdr1_t |
Definition for boot image file header chunk 1. More... | |
struct | boot_hdr2_t |
Definition for boot image file header chunk 2. More... | |
struct | crc32_data_t |
State information for the CRC32 algorithm. More... | |
struct | ldr_Context_t |
Loader context definition. More... | |
struct | mem_region_t |
Memory region information table. More... | |
struct | mem_attribute_t |
Memory Attribute Structure. More... | |
struct | mem_context_t |
Memory context structure. More... | |
struct | api_memory_region_interface_t |
Memory region interface structure. More... | |
struct | api_memory_map_entry_t |
Memory entry data structure. More... | |
struct | api_core_context_t |
The API context structure. More... | |
struct | sb3_data_range_header_t |
section data range structure More... | |
struct | sb3_section_header_t |
sb3 DATA section header format More... | |
struct | kb_region_t |
Memory region definition. More... | |
struct | ldr_Context_v3_t |
Loader context definition. More... | |
Macros | |
#define | SB_FILE_MAJOR_VERSION (3) |
Determines the version of SB loader implementation (1: sb1.0; 2: sb2.0; 3.1: sb3.1) | |
#define | kStatusGroup_SBLoader (101U) |
Bootloader status group numbers. | |
#define | RAM_REGION_COUNT (2U) |
Contiguous RAM region count. | |
#define | FLASH_REGION_COUNT (1U) |
Contiguous FLASH region count. | |
#define | FFR_REGION_COUNT (1U) |
Contiguous FFR region count. | |
#define | MEM_INTERFACE_COUNT (4U) |
Memory Interface count. | |
#define | FLEXSPINOR_REGION_COUNT (1U) |
Contiguous FLEXSPINOR meomry count. | |
#define | BYTES_PER_CHUNK 16 |
Defines the number of bytes in a cipher block (chunk). More... | |
#define | BOOT_SIGNATURE 0x504d5453 |
Boot image signature in 32-bit little-endian format "PMTS". | |
#define | BOOT_SIGNATURE2 0x6c746773 |
Boot image signature in 32-bit little-endian format "ltgs". | |
#define | FFLG_DISPLAY_PROGRESS 0x0001 |
These define file header flags. | |
#define | SFLG_SECTION_BOOTABLE 0x0001 |
These define section header flags. | |
#define | CFLG_LAST_TAG 0x01 |
These define boot command flags. | |
#define | ROM_ERASE_ALL_MASK 0x01 |
ROM_ERASE_CMD flags. | |
#define | ROM_JUMP_SP_MASK 0x02 |
ROM_JUMP_CMD flags. | |
#define | ROM_MEM_DEVICE_ID_SHIFT 0x8 |
Memory device id shift at sb command flags. | |
#define | ROM_MEM_DEVICE_ID_MASK 0xff00 |
Memory device id mask. | |
#define | ROM_MEM_GROUP_ID_SHIFT 0x4 |
Memory group id shift at sb command flags. | |
#define | ROM_MEM_GROUP_ID_MASK 0xf0 |
Memory group id flags mask. | |
#define | ROM_PROG_8BYTE_MASK 0x01 |
ROM_PROG_CMD flags. | |
#define | ROM_NOP_CMD 0x00 |
These define the boot command tags. | |
#define | ROM_BOOT_SECTION_ID 1 |
Plugin return codes. | |
#define | SB3_BYTES_PER_CHUNK 16 |
Defines the number of bytes in a cipher block (chunk). More... | |
#define | SB3_DATA_RANGE_HEADER_FLAGS_ERASE_MASK (0x1u) |
bit 0 | |
#define | SB3_DATA_RANGE_HEADER_FLAGS_LOAD_MASK (0x2u) |
bit 1 | |
#define | SBLOADER_V3_CMD_SET_ALL |
The all of the allowed command. | |
#define | SBLOADER_V3_CMD_SET_IN_ISP_MODE |
The allowed command set in ISP mode. | |
#define | SBLOADER_V3_CMD_SET_IN_REC_MODE |
The allowed command set in recovery mode. | |
Typedefs | |
typedef status_t(* | pLdrFnc_t )(ldr_Context_t *) |
Function pointer definition for all loader action functions. More... | |
typedef status_t(* | pJumpFnc_t )(uint32_t) |
Jump command function pointer definition. More... | |
typedef status_t(* | pCallFnc_t )(uint32_t, uint32_t *) |
Call command function pointer definition. More... | |
typedef status_t(* | pLdrFnc_v3_t )(ldr_Context_v3_t *) |
Function pointer definition for all loader action functions. More... | |
Enumerations | |
enum | |
SB loader status codes. More... | |
enum | section_type_t { kSectionNone = 0 } |
sb3 section definitions More... | |
enum | sb3_cmd_t |
loader command enum | |
enum | kb_operation_t { kRomAuthenticateImage = 1, kRomLoadImage = 2 } |
Details of the operation to be performed by the ROM. More... | |
Functions | |
status_t | Sbloader_Init (api_core_context_t *ctx) |
Perform the Sbloader runtime environment initialization This API is used for initializing the sbloader state machine before calling the api_sbloader_pump. More... | |
status_t | Sbloader_Pump (api_core_context_t *ctx, uint8_t *data, uint32_t length) |
Handle the SB data stream This API is used for handling the secure binary(SB3.1 format) data stream, which is used for image update, lifecycle advancing, etc. More... | |
status_t | Sbloader_Finalize (api_core_context_t *ctx) |
Finish the sbloader handling The API is used for finalizing the sbloader operations. More... | |
struct boot_cmd_t |
struct boot_hdr1_t |
struct boot_hdr2_t |
Data Fields | |
uint32_t | bootOffset |
chunk offset to the first boot section | |
uint32_t | bootSectID |
section ID of the first boot section | |
uint16_t | keyCount |
number of keys in the key dictionary | |
uint16_t | keyOffset |
chunk offset to the key dictionary | |
uint16_t | hdrChunks |
number of chunks in the header | |
uint16_t | sectCount |
number of sections in the image | |
struct crc32_data_t |
Data Fields | |
uint32_t | currentCrc |
Current CRC value. More... | |
uint32_t | byteCountCrc |
Number of bytes processed. More... | |
uint32_t crc32_data_t::currentCrc |
uint32_t crc32_data_t::byteCountCrc |
struct _ldr_Context |
Provides forward reference to the loader context definition.
Data Fields | |
pLdrFnc_t | Action |
pointer to loader action function | |
uint32_t | fileChunks |
chunks remaining in file | |
uint32_t | sectChunks |
chunks remaining in section | |
uint32_t | bootSectChunks |
number of chunks we need to complete the boot section | |
uint32_t | receivedChunks |
number of chunks we need to complete the boot section | |
uint16_t | fileFlags |
file header flags | |
uint16_t | keyCount |
number of keys in the key dictionary | |
uint32_t | objectID |
ID of the current boot section or image. | |
crc32_data_t | crc32 |
crc calculated over load command payload | |
uint8_t * | src |
source buffer address | |
chunk_t | initVector |
decryption initialization vector | |
chunk_t | dek |
chunk size DEK if the image is encrypted | |
chunk_t | scratchPad |
chunk size scratch pad area | |
boot_cmd_t | bootCmd |
current boot command | |
uint32_t | skipCount |
Number of chunks to skip. | |
bool | skipToEnd |
true if skipping to end of file | |
uint32_t | offsetSignatureBytes |
offset to signagure block header in bytesn | |
struct mem_region_t |
struct mem_attribute_t |
struct mem_context_t |
struct api_memory_region_interface_t |
struct api_memory_map_entry_t |
struct api_core_context_t |
struct sb3_data_range_header_t |
struct sb3_section_header_t |
struct kb_region_t |
struct _ldr_Context_v3 |
Provides forward reference to the loader context definition.
Data Fields | |
pLdrFnc_v3_t | Action |
pointer to loader action function | |
uint32_t | block_size |
size of each block in bytes | |
uint32_t | block_data_size |
data size in bytes (NBOOT_SB3_CHUNK_SIZE_IN_BYTES) | |
uint32_t | block_data_total |
data max size in bytes (block_size * data_size | |
uint32_t | block_buffer_size |
block0 and block size | |
uint32_t | processedBlocks |
will be used for both block0 and blockx | |
bool | in_data_block |
data block offset in a block. More... | |
bool | in_data_section |
in progress of handling a data section within a data block | |
bool | in_data_range |
in progress of handling a data range within a data section | |
uint32_t | commandSet |
support command set during sb file handling | |
uint8_t | data_buffer [SB3_DATA_BUFFER_SIZE_IN_BYTE] |
temporary data buffer | |
kb_options_t | fromAPI |
options from ROM API | |
bool ldr_Context_v3_t::in_data_block |
in progress of handling a data block within a block
#define BYTES_PER_CHUNK 16 |
This is dictated by the encryption algorithm.
#define SB3_BYTES_PER_CHUNK 16 |
This is dictated by the encryption algorithm.
typedef status_t(* pLdrFnc_t)(ldr_Context_t *) |
typedef status_t(* pJumpFnc_t)(uint32_t) |
typedef status_t(* pCallFnc_t)(uint32_t, uint32_t *) |
typedef status_t(* pLdrFnc_v3_t)(ldr_Context_v3_t *) |
anonymous enum |
enum section_type_t |
enum kb_operation_t |
The kRomAuthenticateImage operation requires the entire signed image to be available to the application.
Enumerator | |
---|---|
kRomAuthenticateImage |
Authenticate a signed image. |
kRomLoadImage |
Load SB file. |
status_t Sbloader_Init | ( | api_core_context_t * | ctx | ) |
This API should be called after the iap_api_init API.
ctx | Pointer to IAP API core context structure. |
kStatus_Success | Api was executed succesfuly. |
status_t Sbloader_Pump | ( | api_core_context_t * | ctx, |
uint8_t * | data, | ||
uint32_t | length | ||
) |
This API should be called after the iap_api_init and api_sbloader_init APIs.
ctx | Pointer to IAP API core context structure. |
data | Pointer to source data that is the sb file buffer data. |
length | The size of the process buffer data. |
kStatus_Success | Api was executed succesfuly. |
kStatus_InvalidArgument | An invalid argument is provided. |
kStatus_Fail | API execution failed. |
status_t Sbloader_Finalize | ( | api_core_context_t * | ctx | ) |
ctx | Pointer to IAP API core context structure. |
kStatus_Success | Api was executed succesfuly. |