Peripheral address mapping

nRF5340 Product Specification

Peripherals that have non-secure security mapping have their address starting with 0x4XXXXXXX. Peripherals that have secure security mapping have their address starting with 0x5XXXXXXX.

Peripherals with a user-selectable security mapping are available at an address starting with the following:

  • 0x4XXXXXXX, if the peripheral security attribute is set to non-secure
  • 0x5XXXXXXX, if the peripheral security attribute is set to secure
Note:

Access to a secure peripheral using the 0x4XXXXXXX address range will result in bus error, regardless if the CPU is executing secure or non-secure code.

Similarly, a CPU running secure code attempting to access a non-secure peripheral using the 0x5XXXXXXX address range will result in bus error.

Peripherals with a split security mapping are available at an address starting with the following:

  • 0x4XXXXXXX for non-secure access and 0x5XXXXXXX for secure access, if the peripheral security attribute is set to non-secure
    • Secure registers in the 0x4XXXXXXX range are not visible for secure or non-secure code, and an attempt to access such a register will result in write-ignore, read-as-zero behavior
    • Secure code can access both non-secure and secure registers in the 0x5XXXXXXX range
  • 0x5XXXXXXX, if the peripheral security attribute is set to secure

Any attempt to access the 0x50000000 to 0x5FFFFFFF address range from non-secure code will be ignored and generate a SecureFault exception.

The following table contains the address mapping for the three peripheral types in each configuration.

Table 3. Peripheral's address mapping in relation to its security-features and configuration
Security-features and configuration Mapped at 0x4XXXXXXX? Mapped at 0x5XXXXXXX?
Secure peripheral No Yes
Non-secure peripheral Yes No
Split-security peripheral, with attribute=secure No Yes
Split-security peripheral, with attribute=non-secure Yes, restricted functionality Yes