RTEMS 6.1-rc1
Data Structures | Enumerator | Variables
Key_manager

Data Structures

struct  _domain_slot_config
 Key Manager slot configuration structure. More...
 

Variables

keymgr_lock_t _domain_slot_config::lockControl
 
keymgr_allow_t _domain_slot_config::allowUser
 
keymgr_allow_t _domain_slot_config::allowNonSecure
 
keymgr_lock_t _domain_slot_config::lockList
 
uint8_t _domain_slot_config::whiteList
 

Driver version

enum  _keymgr_lock { kKEYMGR_Unlock = 0u , kKEYMGR_Lock = 1u }
 
enum  _keymgr_allow { kKEYMGR_Disallow = 0u , kKEYMGR_Allow = 1u }
 
enum  _keymgr_slot {
  kKEYMGR_Slot0 = 0u , kKEYMGR_Slot1 = 1u , kKEYMGR_Slot2 = 2u , kKEYMGR_Slot3 = 3u ,
  kKEYMGR_Slot4 = 4u
}
 
typedef enum _keymgr_lock keymgr_lock_t
 
typedef enum _keymgr_allow keymgr_allow_t
 
typedef enum _keymgr_slot keymgr_slot_t
 
typedef struct _domain_slot_config domain_slot_config_t
 Key Manager slot configuration structure.
 
status_t KEYMGR_MasterKeyControll (KEY_MANAGER_Type *base, keymgr_select_t select, keymgr_lock_t lock)
 Configures Master key settings. More...
 
status_t KEYMGR_OTFAD1KeyControll (KEY_MANAGER_Type *base, keymgr_select_t select, keymgr_lock_t lock)
 Configures OTFAD1 key settings. More...
 
status_t KEYMGR_OTFAD2KeyControll (KEY_MANAGER_Type *base, keymgr_select_t select, keymgr_lock_t lock)
 Configures OTFAD2 key settings. More...
 
void KEYMGR_IEEKeyReload (KEY_MANAGER_Type *base)
 Restart load key signal for IEE. More...
 
void KEYMGR_PUFKeyLock (KEY_MANAGER_Type *base, keymgr_lock_t lock)
 Lock the key select from PUF. More...
 
status_t KEYMGR_SlotControl (KEY_MANAGER_Type *base, domain_slot_config_t *config, keymgr_slot_t slot)
 Configures Slot Domain control. More...
 
void KEYMGR_Init (KEY_MANAGER_Type *base)
 Resets Key Manager module to factory default values. More...
 
status_t KEYMGR_GetDefaultConfig (domain_slot_config_t *config)
 Sets the default configuration of Key manager slot. More...
 
#define FSL_KEYMGR_DRIVER_VERSION   (MAKE_VERSION(2, 0, 2))
 Key Manager driver version. Version 2.0.2. More...
 
#define KEYMGR_IEE_RELOAD   1u
 
#define KEYMGR_SEL_OCOTP   0u
 
#define KEYMGR_SEL_UDF   0u
 
#define KEYMGR_SEL_PUF   1u
 
#define keymgr_select_t   uint8_t
 

Detailed Description

Macro Definition Documentation

◆ FSL_KEYMGR_DRIVER_VERSION

#define FSL_KEYMGR_DRIVER_VERSION   (MAKE_VERSION(2, 0, 2))

Key Manager driver version. Version 2.0.2.

Current version: 2.0.2

Change log:

  • Version 2.0.2
    • Fix MISRA-2012 issues
  • Version 2.0.1
    • Fix MISRA-2012 issues
  • Version 2.0.0
    • Initial version

Function Documentation

◆ KEYMGR_GetDefaultConfig()

status_t KEYMGR_GetDefaultConfig ( domain_slot_config_t config)

Sets the default configuration of Key manager slot.

This function initialize Key Manager slot config structure to default values.

Parameters
configPointer to slot configuration structure.

brief Sets the default configuration of Key manager slot.

This function initialize Key Manager slot config structure to default values.

param config Pointer to slot configuration structure.

◆ KEYMGR_IEEKeyReload()

void KEYMGR_IEEKeyReload ( KEY_MANAGER_Type base)

Restart load key signal for IEE.

This function genrates Key Manager's restart signal for IEE key.

Parameters
baseKey Manager peripheral address.

brief Restart load key signal for IEE.

This function genrates Key Manager's restart signal for IEE key.

param base Key Manager peripheral address.

◆ KEYMGR_Init()

void KEYMGR_Init ( KEY_MANAGER_Type base)

Resets Key Manager module to factory default values.

This function performs hardware reset of Key Manager module.

Parameters
baseKey Manager peripheral address.

brief Enables clock for Key Manager module.

This function enables clocks for Key Manager module.

param base Key Manager peripheral address.

◆ KEYMGR_MasterKeyControll()

status_t KEYMGR_MasterKeyControll ( KEY_MANAGER_Type base,
keymgr_select_t  select,
keymgr_lock_t  lock 
)

Configures Master key settings.

This function configures Key Manager's setting for Master key.

Parameters
baseKey Manager peripheral address.
selectselect source for Master key.
locksetting for lock Master key.
Returns
status of Master key control operation

brief Configures Master key settings.

This function configures Key Manager's setting for Master key.

param base Key Manager peripheral address. param select select source for Master key. param lock setting for lock Master key. return status of Master key control operation

◆ KEYMGR_OTFAD1KeyControll()

status_t KEYMGR_OTFAD1KeyControll ( KEY_MANAGER_Type base,
keymgr_select_t  select,
keymgr_lock_t  lock 
)

Configures OTFAD1 key settings.

This function configures Key Manager's setting for OTFAD1 key.

Parameters
baseKey Manager peripheral address.
selectselect source for OTFAD1 key.
locksetting for lock OTFAD1 key.
Returns
status of OTFAD1 key control operation

brief Configures OTFAD1 key settings.

This function configures Key Manager's setting for OTFAD1 key.

param base Key Manager peripheral address. param select select source for OTFAD1 key. param lock setting for lock OTFAD1 key. return status of OTFAD1 key control operation

◆ KEYMGR_OTFAD2KeyControll()

status_t KEYMGR_OTFAD2KeyControll ( KEY_MANAGER_Type base,
keymgr_select_t  select,
keymgr_lock_t  lock 
)

Configures OTFAD2 key settings.

This function configures Key Manager's setting for OTFAD2 key.

Parameters
baseKey Manager peripheral address.
selectselect source for OTFAD2 key.
locksetting for lock OTFAD2 key.
Returns
status of OTFAD2 key control operation

brief Configures OTFAD2 key settings.

This function configures Key Manager's setting for OTFAD2 key.

param base Key Manager peripheral address. param select select source for OTFAD2 key. param lock setting for lock OTFAD2 key. return status of OTFAD2 key control operation

◆ KEYMGR_PUFKeyLock()

void KEYMGR_PUFKeyLock ( KEY_MANAGER_Type base,
keymgr_lock_t  lock 
)

Lock the key select from PUF.

This function locks selection of key for PUF.

Parameters
baseKey Manager peripheral address.
lockSetting for selection of key for PUF.

brief Lock the key select from PUF.

This function locks selection of key for PUF.

param base Key Manager peripheral address.

◆ KEYMGR_SlotControl()

status_t KEYMGR_SlotControl ( KEY_MANAGER_Type base,
domain_slot_config_t config,
keymgr_slot_t  slot 
)

Configures Slot Domain control.

This function configures domain slot control which locks and allows writes.

Parameters
baseKey Manager peripheral address.
configPointer to slot configuration structure.
slotSelect slot to be configured.
Returns
status of slot control operation

brief Configures Slot Domain control.

This function configures domain slot control which locks and allows writes.

param base Key Manager peripheral address. param config Pointer to slot configuration structure. param slot Select slot to be configured.

Variable Documentation

◆ allowNonSecure

keymgr_allow_t _domain_slot_config::allowNonSecure

Allow non-secure write access to domain control register or domain register.

◆ allowUser

keymgr_allow_t _domain_slot_config::allowUser

Allow user write access to domain control register or domain register.

◆ lockControl

keymgr_lock_t _domain_slot_config::lockControl

Lock control register of slot.

◆ lockList

keymgr_lock_t _domain_slot_config::lockList

Lock whitelist. SLOTx_CTRL[WHITE_LIST] cannot be changed.

◆ whiteList

uint8_t _domain_slot_config::whiteList

Domains that on the Whitelist can change given slot. Each field represents one domain. Bit0~Bit3 represent DOMAIN0~DOMAIN3 respectively.