Contiki-NG
Loading...
Searching...
No Matches
tz-target-cfg.h File Reference

nRF5340 target configuration header More...

Go to the source code of this file.

Data Structures

struct  tz_nonsecure_setup_conf
 A convenient struct to include all required Non-Secure state configuration. More...
 
struct  memory_region_limits
 Store the addresses of memory regions. More...
 
struct  platform_data_t
 Holds the data necessary to do isolation for a specific peripheral. More...
 

Typedefs

typedef struct tz_nonsecure_setup_conf tz_nonsecure_setup_conf_t
 A convenient struct to include all required Non-Secure state configuration.
 

Functions

void configure_nonsecure_vtor_offset (uint32_t vtor_ns)
 Configure nonsecure vtor offset.
 
void spu_periph_init_cfg (void)
 Configures peripheral permissions via the System Protection Unit.
 
void tz_nonsecure_state_setup (const tz_nonsecure_setup_conf_t *p_ns_conf)
 Setup nonsecure state.
 
void spu_periph_configure_to_secure (uint32_t periph_num)
 Restrict access to peripheral to secure.
 
void spu_periph_configure_to_non_secure (uint32_t periph_num)
 Allow non-secure access to peripheral.
 
void spu_periph_config_uarte (void)
 Configures the NRF_UARTE0 non-secure.
 
void sau_and_idau_cfg (void)
 Configures SAU and IDAU.
 
void non_secure_configuration (void)
 Configure rom, ram and peripherials non-secure.
 
void enable_fault_handlers (void)
 Enables the fault handlers and sets priorities.
 
void system_reset_cfg (void)
 Configures the system reset request properties.
 
void nvic_interrupt_target_state_cfg (void)
 Configures all external interrupts to target the NS state, apart for the ones associated to secure peripherals (plus SPU)
 
void nvic_interrupt_enable (void)
 This function enable the interrupts associated to the secure peripherals (plus the isolation boundary violation interrupts)
 
void spu_report_violation (void)
 Report and clear any SPU violation captured by the previous boot's SPU_IRQHandler.
 

Detailed Description

nRF5340 target configuration header

This file contains the platform specific functions to configure the Cortex-M33 core, memory permissions and security attribution on the nRF5340 platform.

Memory permissions and security attribution are configured via the System Protection Unit (SPU) which is the nRF specific Implementation Defined Attribution Unit (IDAU).

Definition in file tz-target-cfg.h.

Function Documentation

◆ spu_periph_init_cfg()

void spu_periph_init_cfg ( void )

Configures peripheral permissions via the System Protection Unit.

The function does the following:

  • grants Non-Secure access to nRF peripherals that are not Secure-only
  • grants Non-Secure access to DDPI channels
  • grants Non-Secure access to GPIO pins

Definition at line 198 of file tz-target-cfg.c.

◆ spu_report_violation()

void spu_report_violation ( void )

Report and clear any SPU violation captured by the previous boot's SPU_IRQHandler.

Should be called early in secure initialization to surface the cause of an unexpected reset.

Definition at line 154 of file tz-target-cfg.c.