UICR HAL

group nrf_uicr_hal

Hardware access layer for managing the User Information Configuration Registers (UICR) peripheral.

Defines

NRF_UICR_HAS_MEM_CONFIG

Symbol indicating whether memory configuration through UICR is present.

NRF_UICR_HAS_PERIPH_CONFIG

Symbol indicating whether peripheral configuration through UICR is present.

NRF_UICR_HAS_FEATURE_CONFIG

Symbol indicating whether feature configuration through UICR is present.

NRF_UICR_HAS_MAILBOX

Symbol indicating whether mailbox configuration through UICR is present.

NRF_UICR_HAS_VTOR

Symbol indicating whether VTOR configuration through UICR is present.

NRF_UICR_HAS_PTREXT

Symbol indicating whether extended UICR is present.

NRF_UICR_HAS_FEATURE_GPIO

Symbol indicating whether GPIO feature is present.

NRF_UICR_HAS_BOOTCONF

Symbol indicating whether immutable boot region configuration is present.

Symbol indicating whether linking channels of DPPI as either source or sink is configured using the LINK.DIR and LINK.EN registers.

NRF_UICR_MEM_COUNT

Number of memory blocks.

NRF_UICR_PERIPH_COUNT

Number of peripherals.

NRF_UICR_GPIO_COUNT

Number of GPIOs.

NRF_UICR_GPIOTE_CH_COUNT

Number of GPIOTE channels.

NRF_UICR_IPCT_GLOBAL_COUNT

Number of global IPCTs.

NRF_UICR_DPPI_LOCAL_COUNT

Number of local IPCTs.

NRF_UICR_DPPI_GLOBAL_COUNT

Number of global DPPIs.

NRF_UICR_IPCMAP_COUNT

Number of IPCMAPs.

NRF_UICR_MAILBOX_COUNT

Number of MAILBOXes.

NRF_UICR_BOOTCONF_PERM_MASK

Immutable boot region permissions bitmask.

Enums

enum nrf_uicr_mem_config_perm_mask_t

Memory permissions mask.

Note

When bit is set, the selected action is not allowed.

Values:

enumerator NRF_UICR_MEM_CONFIG_PERM_READ_MASK

Read access.

enumerator NRF_UICR_MEM_CONFIG_PERM_WRITE_MASK

Write access.

enumerator NRF_UICR_MEM_CONFIG_PERM_EXECUTE_MASK

Software execute.

enumerator NRF_UICR_MEM_CONFIG_PERM_NONSECURE_MASK

Non-secure access.

enum nrf_uicr_feature_index_mask_t

Feature index mask.

Note

Ownership of the pin is indicated by bit not set.

Values:

enumerator NRF_UICR_FEATURE_INDEX_0_MASK

Feature index 0.

enumerator NRF_UICR_FEATURE_INDEX_1_MASK

Feature index 1.

enumerator NRF_UICR_FEATURE_INDEX_2_MASK

Feature index 2.

enumerator NRF_UICR_FEATURE_INDEX_3_MASK

Feature index 3.

enumerator NRF_UICR_FEATURE_INDEX_4_MASK

Feature index 4.

enumerator NRF_UICR_FEATURE_INDEX_5_MASK

Feature index 5.

enumerator NRF_UICR_FEATURE_INDEX_6_MASK

Feature index 6.

enumerator NRF_UICR_FEATURE_INDEX_7_MASK

Feature index 7.

enumerator NRF_UICR_FEATURE_INDEX_8_MASK

Feature index 8.

enumerator NRF_UICR_FEATURE_INDEX_9_MASK

Feature index 9.

enumerator NRF_UICR_FEATURE_INDEX_10_MASK

Feature index 10.

enumerator NRF_UICR_FEATURE_INDEX_11_MASK

Feature index 11.

enumerator NRF_UICR_FEATURE_INDEX_12_MASK

Feature index 12.

enumerator NRF_UICR_FEATURE_INDEX_13_MASK

Feature index 13.

enumerator NRF_UICR_FEATURE_INDEX_14_MASK

Feature index 14.

enumerator NRF_UICR_FEATURE_INDEX_15_MASK

Feature index 15.

enumerator NRF_UICR_FEATURE_INDEX_16_MASK

Feature index 16.

enumerator NRF_UICR_FEATURE_INDEX_17_MASK

Feature index 17.

enumerator NRF_UICR_FEATURE_INDEX_18_MASK

Feature index 18.

enumerator NRF_UICR_FEATURE_INDEX_19_MASK

Feature index 19.

enumerator NRF_UICR_FEATURE_INDEX_20_MASK

Feature index 20.

enumerator NRF_UICR_FEATURE_INDEX_21_MASK

Feature index 21.

enumerator NRF_UICR_FEATURE_INDEX_22_MASK

Feature index 22.

enumerator NRF_UICR_FEATURE_INDEX_23_MASK

Feature index 23.

enumerator NRF_UICR_FEATURE_INDEX_24_MASK

Feature index 24.

enumerator NRF_UICR_FEATURE_INDEX_25_MASK

Feature index 25.

enumerator NRF_UICR_FEATURE_INDEX_26_MASK

Feature index 26.

enumerator NRF_UICR_FEATURE_INDEX_27_MASK

Feature index 27.

enumerator NRF_UICR_FEATURE_INDEX_28_MASK

Feature index 28.

enumerator NRF_UICR_FEATURE_INDEX_29_MASK

Feature index 29.

enumerator NRF_UICR_FEATURE_INDEX_30_MASK

Feature index 30.

enumerator NRF_UICR_FEATURE_INDEX_31_MASK

Feature index 31.

enum nrf_uicr_feature_t

UICR features.

Values:

enumerator NRF_UICR_FEATURE_GPIO

GPIO port.

enumerator NRF_UICR_FEATURE_GPIOTE_CH

GPIOTE channel.

enumerator NRF_UICR_FEATURE_IPCT_LOCAL_CH

Local IPCT channel.

enumerator NRF_UICR_FEATURE_IPCT_LOCAL_INTERRUPT

Local IPCT interrupt.

enumerator NRF_UICR_FEATURE_IPCT_GLOBAL_CH

Global IPCT channel.

enumerator NRF_UICR_FEATURE_IPCT_GLOBAL_INTERRUPT

Global IPCT interrupt.

enumerator NRF_UICR_FEATURE_DPPI_LOCAL_CH

Local DPPI channel.

enumerator NRF_UICR_FEATURE_DPPI_LOCAL_CHG

Local DPPI channel group.

enumerator NRF_UICR_FEATURE_DPPI_GLOBAL_CH

Global DPPI channel.

enumerator NRF_UICR_FEATURE_DPPI_GLOBAL_CHG

Global DPPI channel group.

enumerator NRF_UICR_FEATURE_GRTC_CC

GRTC compare channel.

enum nrf_uicr_boot_region_perm_mask_t

Immutable boot region permissions mask.

Note

When bit is set, the selected action is allowed.

Values:

enumerator NRF_UICR_BOOT_REGION_PERM_READ_MASK

Read access.

enumerator NRF_UICR_BOOT_REGION_PERM_WRITE_MASK

Write access.

enumerator NRF_UICR_BOOT_REGION_PERM_EXECUTE_MASK

Software execute.

enumerator NRF_UICR_BOOT_REGION_PERM_SECURE_MASK

Secure-only access.

Functions

NRF_STATIC_INLINE nrf_uicr_mem_config_t nrf_uicr_mem_config_get(NRF_UICR_Type const *p_reg, uint8_t index)

Function for getting the configuration of the memory block.

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

  • index[in] Index of the memory block.

Returns:

Configuration of the specified memory block.

NRF_STATIC_INLINE uint32_t nrf_uicr_mem_size_get(NRF_UICR_Type const *p_reg, uint8_t index)

Function for getting the size of the memory block.

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

  • index[in] Index of the memory block.

Returns:

Size of the specified memory block in bytes.

NRF_STATIC_INLINE nrf_uicr_periph_config_t nrf_uicr_periph_config_get(NRF_UICR_Type const *p_reg, uint8_t index)

Function for getting the configuration of the peripheral.

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

  • index[in] Index of the peripheral.

Returns:

Configuration of the specified peripheral.

NRF_STATIC_INLINE uint32_t nrf_uicr_feature_own_get(NRF_UICR_Type const *p_reg, nrf_uicr_feature_t feature, uint8_t index)

Function for getting the ownership requests of the feature.

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

  • feature[in] Feature to be accessed.

  • index[in] Index of the feature. Only used for applicable features, otherwise skipped.

Returns:

Ownership requests mask of the specified feature.

NRF_STATIC_INLINE uint32_t nrf_uicr_feature_secure_get(NRF_UICR_Type const *p_reg, nrf_uicr_feature_t feature, uint8_t index)

Function for getting the permission requests of the feature.

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

  • feature[in] Feature to be accessed.

  • index[in] Index of the feature. Only used for applicable features, otherwise skipped.

Returns:

Permission requests mask of the specified feature.

Function for getting the linking requests of the feature.

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

  • feature[in] Feature to be accessed.

  • index[in] Index of the feature. Only used for applicable features, otherwise skipped.

Returns:

Linking requests masks for source and sink of the specified feature.

NRF_STATIC_INLINE nrf_uicr_ipcmap_config_t nrf_uicr_ipcmap_config_get(NRF_UICR_Type const *p_reg, uint8_t index)

Function for getting the configuration of the IPCMAP channel.

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

  • index[in] Index of the IPCMAP channel.

Returns:

Configuration of the specified IPCMAP channel.

NRF_STATIC_INLINE uint32_t nrf_uicr_mailbox_address_get(NRF_UICR_Type const *p_reg, uint8_t index)

Function for getting the address of the MAILBOX.

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

  • index[in] Index of the memory block.

Returns:

Start address of the specified MAILBOX.

NRF_STATIC_INLINE nrf_uicr_mailbox_config_t nrf_uicr_mailbox_config_get(NRF_UICR_Type const *p_reg, uint8_t index)

Function for getting the configuration of the MAILBOX.

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

  • index[in] Index of the MAILBOX.

Returns:

Configuration of the specified MAILBOX.

NRF_STATIC_INLINE uint32_t nrf_uicr_initsvtor_get(NRF_UICR_Type const *p_reg)

Function for getting the initial value of the secure VTOR (Vector Table Offset Register).

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

Returns:

Initial value of the secure VTOR.

NRF_STATIC_INLINE uint32_t nrf_uicr_initnsvtor_get(NRF_UICR_Type const *p_reg)

Function for getting the initial value of the non-secure VTOR.

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

Returns:

Initial value of the non-secure VTOR.

NRF_STATIC_INLINE uint32_t *nrf_uicr_ptrextuicr_get(NRF_UICR_Type const *p_reg)

Function for getting the pointer to the extended UICR.

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

Returns:

Pointer to the extended UICR.

NRF_STATIC_INLINE void nrf_uicr_boot_region_config_set(NRF_UICR_Type *p_reg, nrf_uicr_boot_region_config_t const *p_config)

Function for setting the configuration of the immutable boot region.

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

  • p_config[in] Pointer to the configuration structure.

NRF_STATIC_INLINE bool nrf_uicr_boot_region_config_get(NRF_UICR_Type const *p_reg, nrf_uicr_boot_region_config_t *p_config)

Function for getting the configuration of the immutable boot region.

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

  • p_config[in] Pointer to the structure to be filled with immutable boot region settings.

Return values:
  • true – Configuration is applied.

  • false – Register is equal to 0xFFFFFFFF, meaning that configuration is not applied.

NRF_STATIC_INLINE uint32_t nrf_uicr_gpio_instance_get(NRF_UICREXTENDED_Type const *p_reg, uint8_t index)

Function for getting the GPIO instance address associated with the specified GPIO entry.

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

  • index[in] Index of GPIO entry.

Returns:

GPIO instance address.

NRF_STATIC_INLINE uint32_t nrf_uicr_gpio_ctrlsel_get(NRF_UICREXTENDED_Type const *p_reg, uint32_t pin_number)

Function for getting the CTRLSEL configuration associated with the specified GPIO pin.

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

  • pin_number[in] Absolute pin number.

Returns:

CTRLSEL configuration.

struct nrf_uicr_mem_config_t
#include <nrf_uicr.h>

Memory configuration.

Public Members

uint32_t permissions

Permissions.

nrf_owner_t owner

Owner identifier.

uint32_t address

Block start address.

struct nrf_uicr_ipcmap_pair_t
#include <nrf_uicr.h>

IPCMAP pair.

Public Members

uint8_t ipct_channel

IPCT channel number.

nrf_domain_t domain

Domain ID.

struct nrf_uicr_ipcmap_config_t
#include <nrf_uicr.h>

IPCMAP configuration.

Public Members

nrf_uicr_ipcmap_pair_t source

Source side.

nrf_uicr_ipcmap_pair_t sink

Sink side.

#include <nrf_uicr.h>

DPPI link.

Public Members

Source side.

Sink side.

struct nrf_uicr_periph_config_t
#include <nrf_uicr.h>

Peripheral configuration.

Public Members

bool secattr

Security mapping.

bool dmasec

Security attribution for the DMA transfer.

nrf_processor_t processor

Processor ID.

uint32_t address

Peripheral address.

struct nrf_uicr_mailbox_config_t
#include <nrf_uicr.h>

MAILBOX configuration.

Public Members

uint16_t size

Memory size.

nrf_owner_t owner

Remote owner identification.

bool secure

Secure permission.

struct nrf_uicr_boot_region_config_t
#include <nrf_uicr.h>

Immutable boot region configuration.

Public Members

uint32_t permissions

Permissions created using nrf_uicr_boot_region_perm_mask_t.

bool writeonce

True if writes to the boot region are to be applied only when the current data is 0xFFFFFFFF.

bool lock

True if RRAMC configuration registers for the boot region are to be read-only.

uint16_t size_kb

Region size in kBs. */.