![]() |
Infineon MOTIX™ MCU TLE988x/9x Device Family SDK
|
Go to the source code of this file.
BootROM low level access library.
Data Structures | |
struct | user_100tp_read_t |
struct | user_100tp_write_t |
struct | user_key_t |
Key data structure aligned with CFS page (ignored reserved bytes) More... | |
struct | user_crypto_inp_buf_t |
struct | user_crypto_out_buf_t |
struct | user_crypto_io_buf_t |
struct | user_crypto_cmac_t |
struct | user_crypto_cbc_t |
struct | user_key_write_params_t |
struct | user_key_write_t |
struct | user_key_erase_params_t |
struct | user_key_erase_t |
struct | user_nvm_page_write_t |
Macros | |
#define | addr_user_nvm_isr_handler (0xc1u) |
#define | addr_user_cid_get (0xc5u) |
#define | addr_user_ram_mbist (0xc9u) |
#define | addr_user_nvm_udata_temp_protect_clear (0xd1u) |
#define | addr_user_nvm_ucode_temp_protect_clear (0xd5u) |
#define | addr_user_nvm_udata_temp_protect_set (0xd9u) |
#define | addr_user_nvm_ucode_temp_protect_set (0xddu) |
#define | addr_user_nvm_temp_protect_get (0xe1u) |
#define | addr_user_nvm_ecc_addr_get (0xe5u) |
#define | addr_user_nvm_ecc_check (0xe9u) |
#define | addr_user_nvm_100tp_read (0xedu) |
#define | addr_user_nvm_100tp_write (0xf1u) |
#define | addr_user_nvm_100tp_erase (0xf5u) |
#define | addr_user_nvm_config_get (0xf9u) |
#define | addr_user_nvm_page_erase (0xfdu) |
#define | addr_user_nvm_sector_erase (0x101u) |
#define | addr_user_nvm_page_write (0x105u) |
#define | addr_user_nvm_mapram_init (0x109u) |
#define | addr_user_nvm_mapram_recover (0x10du) |
#define | addr_user_nvm_service_algorithm (0x111u) |
#define | addr_user_crypto_aes_cmac_generate_start (0x115u) |
#define | addr_user_crypto_aes_cmac_generate_update (0x119u) |
#define | addr_user_crypto_aes_cmac_generate_finish (0x11du) |
#define | addr_user_crypto_aes_cmac_verify_start (0x121u) |
#define | addr_user_crypto_aes_cmac_verify_update (0x125u) |
#define | addr_user_crypto_aes_cmac_verify_finish (0x129u) |
#define | addr_user_crypto_aes_start (0x12du) |
#define | addr_user_crypto_aes_update (0x131u) |
#define | addr_user_crypto_aes_finish (0x135u) |
#define | addr_user_crypto_key_write (0x139u) |
#define | addr_user_crypto_key_erase (0x13du) |
#define | addr_user_crypto_key_verify (0x141u) |
#define | addr_user_nvm_reg_write (0x145u) |
#define | addr_user_nvm_reg_read (0x149u) |
#define | addr_user_secure_download_start (0x14du) |
#define | addr_user_secure_download_update (0x151u) |
#define | addr_user_secure_download_finish (0x155u) |
#define | addr_user_cache_operation (0x159u) |
#define | addr_user_ubsl_size_restore (0x15du) |
#define | addr_user_nvm_perm_protect_set (0x161u) |
#define | addr_user_nvm_ubsl_temp_protect_clear (0x201u) |
#define | addr_user_nvm_ubsl_temp_protect_set (0x205u) |
#define | addr_user_secure_dualboot (0x209u) |
#define | USER_KEY_SIZE_128 (0x10u) |
128 bits key length More... | |
#define | USER_KEY_SIZE_256 (0x20u) |
256 bits key length More... | |
#define | USER_KEY_SIZE_MAX (USER_KEY_SIZE_256) |
Maximum length for a key value to read/store. More... | |
#define | USER_KEY_PARAM_SIZE (0x40u) |
encrypted key parameter size 64 bytes More... | |
#define | USER_CMAC_SIGNATURE_SIZE (0x10u) |
cmac signature size 16 bytes More... | |
#define | USER_KEY_WRITE_BUFFER_SIZE (0x30u) |
Size of key_write decryption buffer. More... | |
#define | USER_KEY_MAX_ID (12u) |
Maximum User key slot ID. More... | |
#define | USER_KEY_MIN_ID (1u) |
Minimum User key slot ID. More... | |
#define | IFX_KEY_ID (0u) |
IFX key ID. More... | |
#define | user_cid_get ( (int32_t(*)(uint32_t *)) addr_user_cid_get ) |
This user API function gets the customer identification number. More... | |
#define | user_ram_mbist ( (int32_t(*)(uint32_t, uint32_t)) addr_user_ram_mbist ) |
This user API function performs a MBIST on the specified SRAM range. Start address shall be smaller than end address. More... | |
#define | user_nvm_udata_temp_protect_clear ( (int32_t(*)(uint32_t)) addr_user_nvm_udata_temp_protect_clear ) |
This user API function temporarily clears the write protection of the UDATA segment. More... | |
#define | user_nvm_ucode_temp_protect_clear ( (int32_t(*)(uint32_t)) addr_user_nvm_ucode_temp_protect_clear ) |
This user API function temporarily clears the write protection of the UCODE segment. More... | |
#define | user_nvm_udata_temp_protect_set ( (int32_t(*)(uint32_t)) addr_user_nvm_udata_temp_protect_set ) |
This user API function temporarily sets the write protection of the UDATA segment. More... | |
#define | user_nvm_ucode_temp_protect_set ( (int32_t(*)(uint32_t)) addr_user_nvm_ucode_temp_protect_set ) |
This user API function temporarily sets the write protection of the UCODE segment. More... | |
#define | user_nvm_temp_protect_get ( (uint32_t(*)(user_nvm_segment_t)) addr_user_nvm_temp_protect_get ) |
This user API function gets the current protection status of a specified NVM segment. More... | |
#define | user_nvm_perm_protect_set ( (int32_t(*)(uint32_t)) addr_user_nvm_perm_protect_set ) |
This user API function sets permanent protection on NVM segments. More... | |
#define | user_nvm_ecc_addr_get ( (int32_t(*)(uint32_t, uint32_t *)) addr_user_nvm_ecc_addr_get ) |
This user API function returns the address of a double ECC event that has occurred in the target flash. More... | |
#define | user_nvm_ecc_check ( (int32_t(*)(uint32_t)) addr_user_nvm_ecc_check ) |
This user API function checks for single and double ECC errors on the target flash. More... | |
#define | user_nvm_100tp_read ( (int32_t(*)(uint32_t, user_100tp_read_t *)) addr_user_nvm_100tp_read ) |
This user API function reads data from specified 100TP page. More... | |
#define | user_nvm_100tp_write ( (int32_t(*)(uint32_t, user_100tp_write_t *)) addr_user_nvm_100tp_write ) |
This user API function writes data to a specified 100TP page. More... | |
#define | user_nvm_100tp_erase ( (int32_t(*)(uint32_t)) addr_user_nvm_100tp_erase ) |
This user API function erases a data field of the specified 100TP page. The write counter field is preserved. More... | |
#define | user_nvm_config_get ( (int32_t(*)(uint32_t *, uint32_t *, uint32_t *)) addr_user_nvm_config_get ) |
This user API function returns the size of each NVM segment. More... | |
#define | user_nvm_page_erase ( (int32_t(*)(uint32_t, uint32_t)) addr_user_nvm_page_erase ) |
This user API function erases a specified flash page. More... | |
#define | user_nvm_sector_erase ( (int32_t(*)(uint32_t, uint32_t)) addr_user_nvm_sector_erase ) |
This user API function erases a specified flash sector. More... | |
#define | user_nvm_page_write ( (int32_t(*)(uint32_t, user_nvm_page_write_t *)) addr_user_nvm_page_write ) |
This user API function writes a number of bytes from the source to the specified flash address page_address. More... | |
#define | user_nvm_write user_nvm_page_write |
#define | user_nvm_mapram_init ( (int32_t(*)(uint32_t)) addr_user_nvm_mapram_init ) |
This user API function triggers the map RAM initialization on the target mapped sector. More... | |
#define | user_nvm_mapram_recover ( (int32_t(*)(uint32_t)) addr_user_nvm_mapram_recover ) |
This user API function attempts to reconstruct map RAM by extracting mapping information from good pages. More... | |
#define | user_nvm_service_algorithm ( (int32_t(*)(uint32_t)) addr_user_nvm_service_algorithm ) |
This user API function runs the service algorithm on a mapped sector, attempting to repair faulty pages or double mappings. More... | |
#define | user_nvm_reg_write ( (int32_t(*)(uint32_t, uint32_t )) addr_user_nvm_reg_write ) |
This user API function performs a write access to NVM SFRs. More... | |
#define | user_nvm_reg_read ( (int32_t(*)(uint32_t, uint32_t *)) addr_user_nvm_reg_read ) |
This user API function performs a read access to NVM SFRs. More... | |
#define | user_secure_download_start ( (int32_t(*)(uint8_t, uint8_t, uint8_t *)) addr_user_secure_download_start ) |
This user API function initiates the secure container and starts the secure download process. More... | |
#define | user_secure_download_update ( (int32_t(*)(uint32_t, uint8_t *)) addr_user_secure_download_update ) |
This user API function continues the secure download process. More... | |
#define | user_secure_download_finish ( (int32_t(*)(void)) addr_user_secure_download_finish ) |
This user API function finalizes the secure download process. More... | |
#define | user_cache_operation ( (int32_t(*)(user_cache_op_t, uint32_t)) addr_user_cache_operation ) |
This user API function provides an alternative to writing to cache registers in addition to direct register access. More... | |
#define | user_ubsl_size_restore ( (void(*)(void)) addr_user_ubsl_size_restore ) |
This user API function is used to restore the UBSL size in case of a Stop mode exit w/o reset. More... | |
#define | user_crypto_aes_cmac_generate_start ( (int32_t(*)(uint32_t)) addr_user_crypto_aes_cmac_generate_start ) |
This user API function initializes a CMAC generation. More... | |
#define | user_crypto_aes_cmac_generate_update ( (int32_t(*)(user_crypto_inp_buf_t *)) addr_user_crypto_aes_cmac_generate_update) |
This user API function updates the ongoing CMAC generation. More... | |
#define | user_crypto_aes_cmac_generate_finish ( (int32_t(*)(user_crypto_io_buf_t *, bool)) addr_user_crypto_aes_cmac_generate_finish) |
This user API function finalizes the ongoing CMAC generation. More... | |
#define | user_crypto_aes_cmac_verify_start ( (int32_t(*)(uint32_t)) addr_user_crypto_aes_cmac_verify_start ) |
This user API function initializes a CMAC verification operation. More... | |
#define | user_crypto_aes_cmac_verify_update ( (int32_t(*)(user_crypto_inp_buf_t *)) addr_user_crypto_aes_cmac_verify_update ) |
This user API function updates the ongoing CMAC verification. More... | |
#define | user_crypto_aes_cmac_verify_finish ( (int32_t(*)(user_crypto_cmac_t *)) addr_user_crypto_aes_cmac_verify_finish ) |
This user API function finalizes the ongoing CMAC verification. More... | |
#define | user_crypto_aes_start ( (int32_t(*)(user_crypto_fid_t, uint32_t, user_crypto_cbc_t *)) addr_user_crypto_aes_start ) |
This user API function initializes an AES operation. More... | |
#define | user_crypto_aes_update ( (int32_t(*)(user_crypto_io_buf_t *)) addr_user_crypto_aes_update ) |
This user API function updates the ongoing AES operation. More... | |
#define | user_crypto_aes_finish ( (int32_t(*)(user_crypto_io_buf_t *)) addr_user_crypto_aes_finish ) |
This user API function finalizes the ongoing AES operation. More... | |
#define | user_crypto_key_write ( (int32_t(*)(user_key_write_t *)) addr_user_crypto_key_write ) |
This user API function writes a cryptographic key to the target key slot. More... | |
#define | user_crypto_key_erase ( (int32_t(*)(user_key_erase_t *)) addr_user_crypto_key_erase ) |
This user API function erases a cryptographic key. More... | |
#define | user_crypto_key_verify ( (int32_t(*)(uint8_t, bool)) addr_user_crypto_key_verify ) |
This user API function verifies an existing cryptographic key. An additional key repair operation can be enabled by setting do_repair. More... | |
#define | user_nvm_ubsl_temp_protect_clear ( (int32_t(*)(uint32_t)) addr_user_nvm_ubsl_temp_protect_clear ) |
This user API function temporarily clears the write protection of the UBSL segment. More... | |
#define | user_nvm_ubsl_temp_protect_set ( (int32_t(*)(uint32_t)) addr_user_nvm_ubsl_temp_protect_set ) |
This user API function temporarily sets the write protection of the UBSL segment. More... | |
#define | user_secure_dualboot ( (int32_t(*)(uint32_t)) addr_user_secure_dualboot ) |
This user API function configures and enables the secondary UBSL image. More... | |
Typedefs | |
typedef struct user_100tp_read_t | user_100tp_read_t |
typedef struct user_100tp_write_t | user_100tp_write_t |
typedef struct user_key_t | user_key_t |
Key data structure aligned with CFS page (ignored reserved bytes) More... | |
typedef enum user_crypto_fid_t | user_crypto_fid_t |
typedef struct user_crypto_inp_buf_t | user_crypto_inp_buf_t |
typedef struct user_crypto_out_buf_t | user_crypto_out_buf_t |
typedef struct user_crypto_io_buf_t | user_crypto_io_buf_t |
typedef struct user_crypto_cmac_t | user_crypto_cmac_t |
typedef struct user_crypto_cbc_t | user_crypto_cbc_t |
typedef struct user_key_write_params_t | user_key_write_params_t |
typedef struct user_key_write_t | user_key_write_t |
typedef struct user_key_erase_params_t | user_key_erase_params_t |
typedef struct user_key_erase_t | user_key_erase_t |
typedef struct user_nvm_page_write_t | user_nvm_page_write_t |
typedef enum user_cache_op_t | user_cache_op_t |
typedef enum user_nvm_segment_t | user_nvm_segment_t |
Enumerations | |
enum | user_crypto_fid_t { CRYPTO_ECB_ENCRYPT = 0 , CRYPTO_ECB_DECRYPT = 1 , CRYPTO_CBC_ENCRYPT = 2 , CRYPTO_CBC_DECRYPT = 3 } |
enum | user_cache_op_t { CACHE_OP_AC = 0 , CACHE_OP_SC = 1 , CACHE_OP_BC = 2 , CACHE_OP_BT = 3 , CACHE_OP_BL = 4 , CACHE_OP_BU = 5 , CACHE_OP_EN = 6 , CACHE_OP_DIS = 7 } |
enum | user_nvm_segment_t { NVM_PASSWORD_SEGMENT_BOOT = 0 , NVM_PASSWORD_SEGMENT_CODE = 1 , NVM_PASSWORD_SEGMENT_DATA = 2 , NVM_PASSWORD_SEGMENT_TOTAL = 3 } |