Memory Region commands#

Modules#

sl_se_code_region_config_t

Enumerations#

enum
SL_SE_MEMORY_REGION_SECURITY_LEVEL_PLAINTEXT = 0
SL_SE_MEMORY_REGION_SECURITY_LEVEL_ENC_ONLY
SL_SE_MEMORY_REGION_SECURITY_LEVEL_ENC_AUTH
}

Security level of a memory (code or data) region.

Functions#

sl_status_t
sl_se_code_region_get_config(sl_se_command_context_t *cmd_ctx, sl_se_code_region_config_t *regions_array, unsigned int start_region_idx, unsigned int region_array_size)
sl_status_t
sl_se_code_region_apply_config(sl_se_command_context_t *cmd_ctx, sl_se_code_region_config_t *regions_array, unsigned int start_region_idx, unsigned int region_array_size)
sl_status_t
sl_se_code_region_set_active_banked(sl_se_command_context_t *cmd_ctx, unsigned int region_idx) SL_DEPRECATED_API_SDK_2025_6

Deprecated function.

sl_status_t
sl_se_code_region_erase(sl_se_command_context_t *cmd_ctx, unsigned int region_idx)
sl_status_t
sl_se_code_region_partial_erase(sl_se_command_context_t *cmd_ctx, unsigned int region_idx, uint32_t block_offset, uint32_t num_blocks)
sl_status_t
sl_se_code_region_write(sl_se_command_context_t *cmd_ctx, unsigned int region_idx, uint32_t offset, const void *data, uint32_t num_bytes, sl_se_crypto_operation_t *decryption_info, sl_se_crypto_operation_t *integrity_check)
sl_status_t
sl_se_code_region_close(sl_se_command_context_t *cmd_ctx, unsigned int region_idx, uint32_t version)
sl_status_t
sl_se_code_region_get_version(sl_se_command_context_t *cmd_ctx, unsigned int region_idx, uint32_t *version)
sl_status_t
sl_se_data_region_get_location(sl_se_command_context_t *cmd_ctx, void **address, size_t *size)
sl_status_t
sl_se_data_region_write(sl_se_command_context_t *cmd_ctx, void *address, const void *data, size_t num_bytes)
sl_status_t
sl_se_data_region_erase(sl_se_command_context_t *cmd_ctx, void *start_address, size_t num_sectors)

Macros#

#define
SL_SE_MAX_CODE_REGIONS 8

The maximum number of code regions available on the device.

Enumeration Documentation#

sl_se_memory_region_security_level_t#

sl_se_memory_region_security_level_t

Security level of a memory (code or data) region.

Enumerator
SL_SE_MEMORY_REGION_SECURITY_LEVEL_PLAINTEXT
SL_SE_MEMORY_REGION_SECURITY_LEVEL_ENC_ONLY
SL_SE_MEMORY_REGION_SECURITY_LEVEL_ENC_AUTH

Function Documentation#

sl_se_code_region_get_config#

sl_status_t sl_se_code_region_get_config (sl_se_command_context_t * cmd_ctx, sl_se_code_region_config_t * regions_array, unsigned int start_region_idx, unsigned int region_array_size)
Parameters
TypeDirectionArgument NameDescription
sl_se_command_context_t *N/Acmd_ctx
sl_se_code_region_config_t *N/Aregions_array
unsigned intN/Astart_region_idx
unsigned intN/Aregion_array_size

sl_se_code_region_apply_config#

sl_status_t sl_se_code_region_apply_config (sl_se_command_context_t * cmd_ctx, sl_se_code_region_config_t * regions_array, unsigned int start_region_idx, unsigned int region_array_size)
Parameters
TypeDirectionArgument NameDescription
sl_se_command_context_t *N/Acmd_ctx
sl_se_code_region_config_t *N/Aregions_array
unsigned intN/Astart_region_idx
unsigned intN/Aregion_array_size

sl_se_code_region_set_active_banked#

sl_status_t sl_se_code_region_set_active_banked (sl_se_command_context_t * cmd_ctx, unsigned int region_idx)

Deprecated function.

Parameters
TypeDirectionArgument NameDescription
sl_se_command_context_t *N/Acmd_ctx
unsigned intN/Aregion_idx

Use sl_se_code_region_apply_config instead. Enable or disable bank swapping between two consecutive code regions


sl_se_code_region_erase#

sl_status_t sl_se_code_region_erase (sl_se_command_context_t * cmd_ctx, unsigned int region_idx)
Parameters
TypeDirectionArgument NameDescription
sl_se_command_context_t *N/Acmd_ctx
unsigned intN/Aregion_idx

sl_se_code_region_partial_erase#

sl_status_t sl_se_code_region_partial_erase (sl_se_command_context_t * cmd_ctx, unsigned int region_idx, uint32_t block_offset, uint32_t num_blocks)
Parameters
TypeDirectionArgument NameDescription
sl_se_command_context_t *N/Acmd_ctx
unsigned intN/Aregion_idx
uint32_tN/Ablock_offset
uint32_tN/Anum_blocks

sl_se_code_region_write#

sl_status_t sl_se_code_region_write (sl_se_command_context_t * cmd_ctx, unsigned int region_idx, uint32_t offset, const void * data, uint32_t num_bytes, sl_se_crypto_operation_t * decryption_info, sl_se_crypto_operation_t * integrity_check)
Parameters
TypeDirectionArgument NameDescription
sl_se_command_context_t *N/Acmd_ctx
unsigned intN/Aregion_idx
uint32_tN/Aoffset
const void *N/Adata
uint32_tN/Anum_bytes
sl_se_crypto_operation_t *N/Adecryption_info
sl_se_crypto_operation_t *N/Aintegrity_check

sl_se_code_region_close#

sl_status_t sl_se_code_region_close (sl_se_command_context_t * cmd_ctx, unsigned int region_idx, uint32_t version)
Parameters
TypeDirectionArgument NameDescription
sl_se_command_context_t *N/Acmd_ctx
unsigned intN/Aregion_idx
uint32_tN/Aversion

sl_se_code_region_get_version#

sl_status_t sl_se_code_region_get_version (sl_se_command_context_t * cmd_ctx, unsigned int region_idx, uint32_t * version)
Parameters
TypeDirectionArgument NameDescription
sl_se_command_context_t *N/Acmd_ctx
unsigned intN/Aregion_idx
uint32_t *N/Aversion

sl_se_data_region_get_location#

sl_status_t sl_se_data_region_get_location (sl_se_command_context_t * cmd_ctx, void ** address, size_t * size)
Parameters
TypeDirectionArgument NameDescription
sl_se_command_context_t *N/Acmd_ctx
void **N/Aaddress
size_t *N/Asize

sl_se_data_region_write#

sl_status_t sl_se_data_region_write (sl_se_command_context_t * cmd_ctx, void * address, const void * data, size_t num_bytes)
Parameters
TypeDirectionArgument NameDescription
sl_se_command_context_t *N/Acmd_ctx
void *N/Aaddress
const void *N/Adata
size_tN/Anum_bytes

sl_se_data_region_erase#

sl_status_t sl_se_data_region_erase (sl_se_command_context_t * cmd_ctx, void * start_address, size_t num_sectors)
Parameters
TypeDirectionArgument NameDescription
sl_se_command_context_t *N/Acmd_ctx
void *N/Astart_address
size_tN/Anum_sectors