KMU HAL

group nrf_kmu_hal

Hardware access layer for managing the Key Management Unit (KMU) peripheral.

Enums

enum nrf_kmu_task_t

KMU tasks.

Values:

enumerator NRF_KMU_TASK_PUSH_KEYSLOT

Push a key slot over secure APB.

enum nrf_kmu_event_t

KMU events.

Values:

enumerator NRF_KMU_EVENT_KEYSLOT_PUSHED

Key successfully pushed over secure APB.

enumerator NRF_KMU_EVENT_KEYSLOT_REVOKED

Key has been revoked and cannot be tasked for selection.

enumerator NRF_KMU_EVENT_KEYSLOT_ERROR

No key slot selected or no destination address defined or error during push mechanism.

enum nrf_kmu_int_mask_t

KMU interrupts.

Values:

enumerator NRF_KMU_INT_PUSHED_MASK

Interrupt on KEYSLOT_PUSHED event.

enumerator NRF_KMU_INT_REVOKED_MASK

Interrupt on KEYSLOT_REVOKED event.

enumerator NRF_KMU_INT_ERROR_MASK

Interrupt on KEYSLOT_ERROR event.

enum nrf_kmu_status_t

KMU operation status.

Values:

enumerator NRF_KMU_STATUS_BLOCKED_MASK

Access violation detected and blocked.

enumerator NRF_KMU_STATUS_SELECTED_MASK

Key slot ID successfully selected by KMU.

Functions

NRF_STATIC_INLINE void nrf_kmu_task_trigger(NRF_KMU_Type *p_reg, nrf_kmu_task_t task)

Function for activating a specific KMU task.

Parameters
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • task[in] Task to be activated.

NRF_STATIC_INLINE uint32_t nrf_kmu_task_address_get(NRF_KMU_Type const *p_reg, nrf_kmu_task_t task)

Function for getting the address of a specific KMU task register.

Parameters
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • task[in] Requested task.

Returns

Address of the specified task register.

NRF_STATIC_INLINE void nrf_kmu_event_clear(NRF_KMU_Type *p_reg, nrf_kmu_event_t event)

Function for clearing a specific KMU event.

Parameters
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • event[in] Event to clear.

NRF_STATIC_INLINE bool nrf_kmu_event_check(NRF_KMU_Type const *p_reg, nrf_kmu_event_t event)

Function for retrieving the state of the KMU event.

Parameters
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • event[in] Event to be checked.

Return values
  • true – The event has been generated.

  • false – The event has not been generated.

NRF_STATIC_INLINE uint32_t nrf_kmu_event_address_get(NRF_KMU_Type const *p_reg, nrf_kmu_event_t event)

Function for getting the address of a specific KMU event register.

Parameters
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • event[in] Requested event.

Returns

Address of the specified event register.

NRF_STATIC_INLINE void nrf_kmu_int_enable(NRF_KMU_Type *p_reg, uint32_t mask)

Function for enabling specified interrupts.

Parameters
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • mask[in] Interrupts to be enabled.

NRF_STATIC_INLINE void nrf_kmu_int_disable(NRF_KMU_Type *p_reg, uint32_t mask)

Function for disabling specified interrupts.

Parameters
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • mask[in] Interrupts to be disabled.

NRF_STATIC_INLINE uint32_t nrf_kmu_int_enable_check(NRF_KMU_Type const *p_reg, uint32_t mask)

Function for checking if the specified interrupts are enabled.

Parameters
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • mask[in] Mask of interrupts to be checked.

Returns

Mask of enabled interrupts.

NRF_STATIC_INLINE uint32_t nrf_kmu_intpend_get(NRF_KMU_Type const *p_reg)

Function for retrieving the state of interrupts.

Function returns bitmask. Please use nrf_kmu_int_mask_t to check interrupts status.

Parameters
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns

Bitmask with pending interrupts bits.

NRF_STATIC_INLINE uint32_t nrf_kmu_status_get(NRF_KMU_Type const *p_reg)

Function for getting status bits of the KMU operation.

Function returns bitmask. Please use nrf_kmu_status_t to check operations status.

Parameters
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns

Bitmask with operation status bits.

NRF_STATIC_INLINE void nrf_kmu_keyslot_set(NRF_KMU_Type *p_reg, uint8_t keyslot_id)

Function for selecting the key slot ID.

Parameters
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • keyslot_id[in] Key slot ID to be read over AHB or pushed over secure APB when TASKS_PUSH_KEYSLOT is started.

NRF_STATIC_INLINE uint8_t nrf_kmu_keyslot_get(NRF_KMU_Type const *p_reg)

Function for getting the key slot ID.

Parameters
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns

Key slot ID.