3. Global security controller (GTZC)

3.1 GTZC introduction

This section includes the description of the two following sub-blocks:

This sub-block defines the secure/privileged state of slave peripherals. It also controls the unprivileged area size for the watermark memory peripheral controller (MPCWM).

This sub-block gathers all illegal access events in the system and generates a secure interrupt towards the secure CPU2 NVIC.

These sub-blocks are used to configure system security and privilege such as:

3.2 GTZC main features

When the system is non-secure (ESE = 0), TZIC is not accessible.

Note: Security and privileged are only available when the system is secure (ESE = 1).

3.3 GTZC security system architecture

The STM32WL5x supports security model with isolation between the two following worlds:

AHB and APB peripherals can be categorized as:

Application information

The TZSC and TZIC sub-blocks can be used in one of the following ways:

The STM32 security architecture with secure, securable and security-aware peripherals is shown in the figure below.

Figure 4. GTZC security architecture

Figure 4. GTZC security architecture diagram showing the system components and their security levels. At the top, CPU1 (Non-secure), CPU2 (Secure), and DMA/DMAMUX (Security-aware) are connected to an AHB bus. Below the bus, various components are shown: SPI3, Crypto (AES), RNG, PKA, AHB2AP Sec-gate, AHB-PPC STUB, GTZC (containing TZSC and TZIC), MPCWM, SRAM1, SRAM2, and Flash. The diagram uses labels like 'Master priv', 'Master sec/priv', and 'Security-aware' to indicate the privilege and security levels of the components. Arrows show the flow of signals and data between the components and the bus. The bottom of the diagram is divided into 'Securable peripherals' and 'Securable memories'.

The diagram illustrates the GTZC security architecture. At the top, three main components are shown: CPU1 (Non-secure), CPU2 (Secure), and DMA/DMAMUX (Security-aware). CPU1 is connected to the AHB bus via a 'Master priv' interface. CPU2 and DMA/DMAMUX are connected via 'Master sec/priv' interfaces. The AHB bus is the central communication backbone. Below the bus, several components are connected:

The diagram is labeled with 'MSv60798V2' in the bottom right corner.

Figure 4. GTZC security architecture diagram showing the system components and their security levels. At the top, CPU1 (Non-secure), CPU2 (Secure), and DMA/DMAMUX (Security-aware) are connected to an AHB bus. Below the bus, various components are shown: SPI3, Crypto (AES), RNG, PKA, AHB2AP Sec-gate, AHB-PPC STUB, GTZC (containing TZSC and TZIC), MPCWM, SRAM1, SRAM2, and Flash. The diagram uses labels like 'Master priv', 'Master sec/priv', and 'Security-aware' to indicate the privilege and security levels of the components. Arrows show the flow of signals and data between the components and the bus. The bottom of the diagram is divided into 'Securable peripherals' and 'Securable memories'.

3.4 GTZC functional description

3.4.1 GTZC block diagram

Figure 5 describes the combined feature of TZSC and TZIC. Each sub-block is controlled by its own AHB configuration port. TZSC defines which peripheral is secured and/or privileged. TZIC centralizes the illegal access events.

When the device is non-secure (ESE = 0), TZIC has no function, memories are non-secure and unprivileged and illegal interrupts are disabled. Peripherals can still be made privileged.

Figure 5. GTZC block diagram

Figure 5. GTZC block diagram. The diagram shows the internal structure of the Global Security Controller (GTZC). It contains two main sub-blocks: TZSC (TrustZone Security Controller) and TZIC (TrustZone Interrupt Controller). The TZSC block includes registers SECCFGR, PRIVCFGGR, and MPCWMR. The TZIC block includes registers IER, MISR, and ICR. External signals include AHB (AHB slaves), ESE (Security enable from user option), tzsc_periph[n]_sec (TZSC peripheral [n] security control from User option), tzsc_mpcwm[n]_sec (TZSC MPCWM [n] security control from User option), n x ila_event (from peripherals), tzsc_periph[n]_sec (output), tzsc_periph[n]_priv (output), tzsc_mpcwm[n]_priv (output), tzsc_ila_event (output), and tzic_ila_it (output). Internal signals include ila_events (input) and tzic_ila_event (output). The diagram is labeled MSV60799V1.
Figure 5. GTZC block diagram. The diagram shows the internal structure of the Global Security Controller (GTZC). It contains two main sub-blocks: TZSC (TrustZone Security Controller) and TZIC (TrustZone Interrupt Controller). The TZSC block includes registers SECCFGR, PRIVCFGGR, and MPCWMR. The TZIC block includes registers IER, MISR, and ICR. External signals include AHB (AHB slaves), ESE (Security enable from user option), tzsc_periph[n]_sec (TZSC peripheral [n] security control from User option), tzsc_mpcwm[n]_sec (TZSC MPCWM [n] security control from User option), n x ila_event (from peripherals), tzsc_periph[n]_sec (output), tzsc_periph[n]_priv (output), tzsc_mpcwm[n]_priv (output), tzsc_ila_event (output), and tzic_ila_it (output). Internal signals include ila_events (input) and tzic_ila_event (output). The diagram is labeled MSV60799V1.

3.4.2 GTZC internal signals

Table 5. GTZC internal signals

Internal signal nameSignal typeDescription
AHBInput/outputAHB slaves TZSC and TZIC register access ports
ESEInputSecurity enable from user option ESE
tzsc_periph[n]_secInputTZSC peripheral [n] security control from User option
tzsc_mpcwm[n]_secInputTZSC MPCWM [n] security control from User option
tzsc_periph[n]_secOutputTZSC peripheral [n] security control
tzsc_periph[n]_privOutputTZSC peripheral [n] privileged control
tzsc_mpcwm[n]_privOutputTZSC internal memories MPCWM [n] privileged control
tzsc_ila_eventOutputTZSC illegal access event
tzic_ila_eventOutputTZIC illegal access event
ila_eventsInputPeripheral illegal access events
tzic_ila_itOutputTZIC illegal access interrupt

3.4.3 Illegal access definition

The existing types of illegal access are listed below:

Any non-secure read write transaction trying to access a secure resource is considered as illegal. The addressed resource generates an illegal access event for illegal read /write access.

Note: Some registers have only write security protection and can be accessed read non-secure (refer to individual register descriptions).

Any unprivileged transaction trying to access a privileged resource is considered as illegal. In all cases, the addressed resource generates an illegal access event for illegal read /write access.

Note: Some registers have only write privileged protection and can be accessed read unprivileged (refer to individual register descriptions).

Any secure_memory fetch access transaction trying to access a non-secure memory resource is considered as illegal. The addressed resource generates an illegal access event and a bus error.

Any non-secure_memory fetch access transaction trying to access a secure memory resource is considered as illegal. The addressed resource generates an illegal access event and a bus error.

Any unprivileged memory fetch access transaction trying to access a privileged memory resource is considered as illegal. The addressed resource generates an illegal access event and a bus error.

Any peripheral fetch access is considered as illegal. The bus bridge generates a bus error for all peripheral fetch access (no illegal access event).

Note: Secure read/write transactions to non-secure memory and peripheral are granted and legal. Privileged read/write transactions to unprivileged memory and peripheral are granted and legal.

Privileged fetch transactions to unprivileged memory are granted and legal.

Table 6. Memory access error generation

Memory access type (1)Hide protected memory (HDPADIS = 1)Secure privileged memorySecure unprivileged memoryNon-secure privileged memoryNon-secure unprivileged memory
Accesslla_eventBus errorAccesslla_eventBus errorAccesslla_eventBus errorAccesslla_eventBus errorAccesslla_eventBus error
SecurePrivilegedFetchIllegalNoYesGrantNoNoGrantNoNoIllegalSYesIllegalSYes
ReadYes (2)GrantNoNoGrantNoNo
WriteNoIllegalS and PYesIllegalSYes
UnprivilegedFetchP (3)YesIllegalPYes
ReadNo
WriteNo
Non-securePrivilegedFetchIllegalS (4)YesIllegalSYesIllegalSYesGrantNoNoGrantNoNo
ReadNo
WriteNo
UnprivilegedFetchS and P (3/4)YesS and PYesIllegalPYes
ReadNo
WriteNo
Illegal and error event generated
Granted
  1. 1. Illegal: security infringement
    S: lla_event due to illegal security infringement
    P: lla_event due to illegal privileged infringement
    S and P: lla_event due to secure and privileged infringement
  2. 2. Only for CPU accesses. A DMA access does not generate a bus error.
  3. 3. When hide protected area is privileged.
  4. 4. When hide protected area is secure.

Table 7. Peripheral access error generation

Peripheral access type (1)Secure privileged peripheralSecure unprivileged peripheralNon-secure privileged peripheralNon-secure unprivileged peripheral
Accessila_eventBus errorAccessila_eventBus errorAccessila_eventBus errorAccessila_eventBus error
SecurePrivilegeFetchFailNoYesFailNoYesFailNoYesFailNoYes
ReadGrantNoGrantNoGrantNoGrantNo
WriteGrantNoGrantNoGrantNoGrantNo
UnprivilegedFetchFailPYesFailNoYesIllegalPYesFailYes
ReadIllegalNoGrantNoNoGrantNo
WriteIllegalNoGrantNoNoGrantNo
Non-securePrivilegeFetchFailNoYesFailNoYesFailNoYesFailNoYes
ReadIllegalSNoIllegalNoGrantNoGrantNo
WriteIllegalSNoIllegalNoGrantNoGrantNo
UnprivilegedFetchFailNoYesFailNoYesFailPYesFailYes
ReadIllegalS and PNoIllegalSNoIllegalNoGrantNo
WriteIllegalS and PNoIllegalSNoIllegalNoGrantNo
Fail, illegal and event generated
Granted

1. Fail: All fetches from peripherals are rejected without ila generation.

Illegal: security infringement

S: ila_event due to illegal security infringement

P: ila_event due to illegal privileged infringement

S and P: ila_event due to secure and privileged infringement

3.4.4 Security controller (TZSC)

This block is composed of a configurable set of registers, providing the following features:

address with a length defined through GTZC_TZSC_MPCWM1_UPWWMR.LGTH[11:0]. Only the area which is also defined as unprivileged in GTZC_TZSC_MPCWM1_UPWMR.LGTH[11:0] is unprivileged writable.

Note: Where n represents the target memory (1 = Flash memory, 2 = SRAM1 and 3 = SRAM2).

Figure 6. Memory protection control water mark

Diagram illustrating memory protection control water marks. A vertical axis on the left shows 'Memory base address' at the bottom. Two upward-pointing arrows represent length settings: the outer arrow is labeled UPWMR.LGTH[11:0] and the inner arrow is labeled UPWWMR.LGTH[11:0]. To the right, three horizontal bands represent privilege levels: the top band is 'Privileged', the middle band is 'Privileged and unprivileged read, execute', and the bottom band is 'Unprivileged read, execute and writable'. The diagram shows how the length settings define the memory area for these privilege levels. MSv61500V1 is noted in the bottom right corner.
Diagram illustrating memory protection control water marks. A vertical axis on the left shows 'Memory base address' at the bottom. Two upward-pointing arrows represent length settings: the outer arrow is labeled UPWMR.LGTH[11:0] and the inner arrow is labeled UPWWMR.LGTH[11:0]. To the right, three horizontal bands represent privilege levels: the top band is 'Privileged', the middle band is 'Privileged and unprivileged read, execute', and the bottom band is 'Unprivileged read, execute and writable'. The diagram shows how the length settings define the memory area for these privilege levels. MSv61500V1 is noted in the bottom right corner.

3.4.5 Security illegal access controller (TZIC)

This block concentrates all illegal access source events. It is used only when the system is security enabled (ESE = 1). When the system is non-secure (ESE = 0), the generation of an illegal access interrupt is blocked in hardware.

TZIC allows the trace of which event has triggered the illegal interrupt tzic_ila_it . Register masks are available in TZIC_IER to filter unwanted events. Enabled illegal events generate an interrupt to the secure CPU2 NVIC (TZIC_ILA).

For each illegal event source, a status flag and a clear bit exist (respectively within TZIC_MISR and TZIC_ICR registers). The reset value of the enable register TZIC_IER is such that all illegal events are enabled.

3.4.6 Power-on/reset state

The power-on and reset state of TZSC clear all bits of SECCFGR1 and PRIVCFGR1 registers to 0, which respectively means non-secure and unprivileged.

Concerning the internal memories, the reset values of the TZSC MPCWMn_UPWMR and MPCWMn_UPWWMR registers are set to 0x0FFF 0000, making the complete internal memories unprivileged.

CPU1 non-secure privileged boot code can program the non-secure privileged attributes, making components non-secure privileged as needed.

CPU2 secure privileged boot code can program the secure privileged attributes, making components secure privileged as needed.

3.4.7 Interrupts

TZIC is a secure peripheral that generates systematically an illegal access event when accessed by a non-secure access.

TZSC is a security-aware peripheral, meaning that secure and non-secure registers co-exist.

3.5 GTZC TZSC registers

All GTZC TZSC registers are accessed only by words (32-bit). Halfwords (16-bit) and bytes (8-bit) accesses are denied and generate a bus error.

The TZSC MPCWM privileged control registers MPCWMn_UPWMR from the different internal memories are defined in the table below.

Table 8. TZSC privileged MPCWMn register memory allocation

MPCWM indexMemoryDescription
1FlashUnprivileged and unprivileged writable control (security controlled by user option)
2SRAM1Unprivileged control (security controlled by user option)
3SRAM2Unprivileged control (security controlled by user option)

3.5.1 GTZC TZSC control register (GTZC_TZSC_CR)

Address offset: 0x000

Reset value: 0x0000 0000

Secure read and write access only

Note: When the system is non-secure (ESE = 0), this register cannot be written and is read zero.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.LCK
rs

Bits 31:1 Reserved, must be kept at reset value.

Bit 0 LCK : Lock the configuration of TZSC registers until next reset

The configuration is unlocked after a wake-up from Standby.

This bit is unset by default and once set, it cannot be reset until a global TZSC reset.

0: All TZSC registers not locked

1: All TZSC registers locked

3.5.2 GTZC TZSC security configuration register (GTZC_TZSC_SECCFGR1)

Address offset: 0x010

Reset value: 0x0000 0000

Secure write access only.

A bit of this register can be written only by a secure privileged transaction, when the corresponding bit in GTZC_TZSC_PRIVCFGR1 is set to privileged. If unprivileged, the register bit can be written by secure privileged and secure unprivileged transactions.

Read access is authorized for any type of transaction, secure/non-secure, privileged/unprivileged.

An illegal access event on a privileged access is only generated when all peripheral register bits in GTZC_TZSC_PRIVCFGR1 are configured as privileged.

When TZSC configuration is locked in GTZC_TZSC_CR.LCK, this register can no longer be modified.

Note: When the system is non-secure (ESE = 0) this register cannot be written and is read zero. Peripherals cannot be secured.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.PKA
SEC
Res.Res.Res.Res.Res.Res.Res.Res.Res.RNG
SEC
AES
SEC
Res.Res.
rwrwrw

Bits 31:14 Reserved, must be kept at reset value.

Bit 13 PKASEC : Secure access mode enabled for PKA

0: Non-secure

1: Secure

Bits 12:4 Reserved, must be kept at reset value.

Bit 3 RNGSEC : Secure access mode enabled for RNG

0: Non-secure

1: Secure

Bit 2 AESSEC : Secure access mode enabled for AES

0: Non-secure

1: Secure

Bits 1:0 Reserved, must be kept at reset value.

3.5.3 GTZC TZSC privileged configuration register (GTZC_TZSC_PRIVCFGR1)

Address offset: 0x020

Reset value: 0x0000 0000

Privileged write access only.

A bit of this register can be written only by a secure privileged transaction, when the corresponding bit in GTZC_TZSC_SECCFGR1 register or the flash user option is set to secure. If non-secure, the register bit can be written by secure privileged and non-secure privileged transactions.

Read access is authorized for any type of transaction, secure/non-secure, privileged/unprivileged.

An illegal access event on a secure access is only generated when all peripheral register bits in GTZC_TZSC_SECCFGR1 are configured as secure.

When TZSC configuration is locked in GTZC_TZSC_CR.LCK, this register cannot be modified.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.PKAPRIVRes.Res.Res.Res.Res.Res.Res.Res.SUBGHZSPIPRIVRNGPRIVAESPRIVRes.Res.
rwrwrwrw

Bits 31:14 Reserved, must be kept at reset value.

Bit 13 PKAPRIV : Privileged access mode enabled for PKA

0: Unprivileged

1: Privileged

Bits 12:5 Reserved, must be kept at reset value.

Bit 4 SUBGHZSPIPRIV : Privileged access mode enabled for sub-GHz SPI

0: Unprivileged

1: Privileged

Bit 3 RNGPRIV : Privileged access mode enabled for RNG

0: Unprivileged

1: Privileged

Bit 2 AESPRIV : Privileged access mode enabled for AES

0: Unprivileged

1: Privileged

Bits 1:0 Reserved, must be kept at reset value.

3.5.4 GTZC TZSC unprivileged watermark 1 register (GTZC_TZSC_MPCWM1_UPWMR)

Address offset: 0x130

Reset value: 0x0FFF 0000

Privileged write access only.

This register can be written only by secure privileged transaction, when the corresponding flash user option FSD is configured as secure. If non-secure, this register can be written by secure privileged and non-secure privileged transaction.

Read access is authorized for any type of transaction, secure/non-secure, privileged/unprivileged.

When TZSC configuration is locked in GTZC_TZSC_CR.LCK, this register cannot be modified.

Note: When the system is non-secure (ESE = 0), this register can be written and read, however bits have no function.

31302928272625242322212019181716
Res.Res.Res.Res.LGTH[11:0]
rwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.

Bits 31:28 Reserved, must be kept at reset value.

Bits 27:16 LGTH[11:0] : Define the length of user flash unprivileged area (in 2-Kbyte resolution, starting from the user flash base address)

Note: This register has only effect when security is enabled (ESE = 1). When security is disabled, the memory is completely unprivileged, whatever the value.

0x000: No unprivileged area, privileged 0x00000 to 0x3FFFF

0x001: Unprivileged 0x00000 to 0x007FF, privileged 0x00800 to 0x3FFFF

0x002: Unprivileged 0x00000 to 0x00FFF, privileged 0x01000 to 0x3FFFF

0x003: Unprivileged 0x00000 to 0x017FF, privileged 0x01800 to 0x3FFFF

.....

0x080 and greater: Unprivileged 0x00000 to 0x3FFFF, no privileged area

Note: 0x800 and greater are truncated to 0x800.

Bits 15:0 Reserved, must be kept at reset value.

3.5.5 GTZC TZSC unprivileged writable watermark 1 register (GTZC_TZSC_MPCWM1_UPWWMR)

Address offset: 0x134

Reset value: 0x0FFF 0000

Privileged write access only.

This register can be written only by secure privileged transaction when the corresponding flash user option FSD is configured as secure. If non-secure, this register can be written by secure privileged and non-secure privileged transaction.

Read access is authorized for any type of transaction, secure/non-secure, privileged/unprivileged.

When TZSC configuration is locked in GTZC_TZSC_CR.LCK, this register cannot be modified.

Note: When the system is non-secure (ESE = 0), this register can be written and read, however bits have no function.

31302928272625242322212019181716
Res.Res.Res.Res.LGTH[11:0]
rwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.

Bits 31:28 Reserved, must be kept at reset value.

Bits 27:16 LGTH[11:0] : Define the length of flash unprivileged writable area (in 2-Kbyte resolution, starting from the user flash base address)

Only the area which is also defined as unprivileged in

GTZC_TZSC_MPCWM1_UPWMR.LGTH[11:0] is unprivileged writable.

Note: This register has only effect when security is enabled (ESE = 1). When security is disabled, the memory is completely unprivileged writable, whatever the value.

0x000: No unprivileged writable area, privileged and unprivileged read execute 0x00000 to 0x3FFFF

0x001: Unprivileged writable 0x00000 to 0x007FF, privileged and unprivileged read execute 0x00800 to 0x3FFFF

0x002: Unprivileged writable 0x00000 to 0x00FFF, privileged and unprivileged read execute 0x01000 to 0x3FFFF

0x003: Unprivileged writable 0x00000 to 0x017FF, privileged and unprivileged read execute 0x01800 to 0x3FFFF

.....

0x080 and greater: Unprivileged writable 0x00000 to 0x3FFFF, no privileged and unprivileged read execute area

Note: 0x800 and greater are truncated to 0x800

Bits 15:0 Reserved, must be kept at reset value.

3.5.6 GTZC TZSC unprivileged watermark 2 register (GTZC_TZSC_MPCWM2_UPWMR)

Address offset: 0x138

Reset value: 0x0FFF 0000

Privileged write access only.

This register can be written only by secure privileged transaction, when the corresponding flash user option NBRSD is configured as secure. If non-secure, this register can be written by secure privileged and non-secure privileged transaction.

Read access is authorized for any type of transaction, secure/non-secure, privileged/unprivileged.

When TZSC configuration is locked in GTZC_TZSC_CR.LCK, this register cannot be modified.

Note: When the system is non-secure (ESE = 0), this register can be written and read, however bits have no function.

31302928272625242322212019181716
Res.Res.Res.Res.LGTH[11:0]
rwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.

Bits 31:28 Reserved, must be kept at reset value.

Bits 27:16 LGTH[11:0] : Define the length of SRAM1 unprivileged area (in 1-Kbyte resolution, starting from the SRAM1 base address)

Note: This register has only effect when security is enabled (ESE = 1). When security is disabled, the memory is completely unprivileged, whatever the value.

0x000: No unprivileged area, privileged 0x0000 to 0x7FFF

0x001: Unprivileged 0x0000 to 0x03FF, privileged 0x0400 to 0x7FFF

0x002: Unprivileged 0x0000 to 0x07FF, privileged 0x0800 to 0x7FFF

0x003: Unprivileged 0x0000 to 0x0BFF, privileged 0x0C00 to 0x7FFF

.....

0x020 and greater: Unprivileged 0x0000 to 0x7FFF, no privileged area

Note: 0x800 and greater are truncated to 0x800

Bits 15:0 Reserved, must be kept at reset value.

3.5.7 GTZC TZSC unprivileged watermark 3 register (GTZC_TZSC_MPCWM3_UPWMR)

Address offset: 0x140

Reset value: 0x0FFF 0000

Privileged write access only.

This register can be written only by secure privileged transaction, when the corresponding flash user option BRSD is configured as secure. If non-secure, this register can be written by secure privileged and non-secure privileged transaction.

Read access is authorized for any type of transaction, secure/non-secure, privileged/unprivileged.

When TZSC configuration is locked in GTZC_TZSC_CR.LCK, this register cannot be modified.

Note: When the system is non-secure (ESE = 0), this register can be written and read, however bits have no function.

31302928272625242322212019181716
Res.Res.Res.Res.LGTH[11:0]
rwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.

Bits 31:28 Reserved, must be kept at reset value.

Bits 27:16 LGTH[11:0] : Define the length of SRAM2 unprivileged area (in 1-Kbyte resolution, starting from the SRAM2 base address)

Note: This register has only effect when security is enabled (ESE = 1). When security is disabled, the memory is completely unprivileged, whatever the value.

0x000: No unprivileged area, privileged 0x0000 to 0x7FFF

0x001: Unprivileged 0x0000 to 0x03FF, privileged 0x0400 to 0x7FFF

0x002: Unprivileged 0x0000 to 0x07FF, privileged 0x0800 to 0x7FFF

0x003: Unprivileged 0x0000 to 0x0BFF, privileged 0x0C00 to 0x7FFF

.....

0x020 and greater: Unprivileged 0x0000 to 0x7FFF, no privileged area

Note: 0x800 and greater are truncated to 0x800

Bits 15:0 Reserved, must be kept at reset value.

3.5.8 GTZC TZSC register map

Table 9. GTZC TZSC register map and reset values

OffsetRegister313029282726252423222120191817161514131211109876543210
0x000GTZC_TZSC_CRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.LCK
Reset value0
0x004 to 0x00CReservedReserved
0x010GTZC_TZSC_SECCFGGR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PKASECRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.RNGSECAESSECRes.
Reset value000
0x014 to 0x01CReservedReserved
0x020GTZC_TZSC_PRIVCFGGR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PKAPRIVRes.Res.Res.Res.Res.Res.Res.Res.Res.SUBGHZSPIPRIVRNGPRIVAESPRIVRes.
Reset value0000
0x024 to 0x12CReservedReserved
0x130GTZC_TZSC_MPCWM1_UPWMRRes.Res.Res.Res.LGTH[11:0]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
Reset value111111111111
0x134GTZC_TZSC_MPCWM1_UPWMRRes.Res.Res.Res.LGTH[11:0]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
Reset value111111111111
0x138GTZC_TZSC_MPCWM2_UPWMRRes.Res.Res.Res.LGTH[11:0]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
Reset value111111111111
0x13CReservedReserved
0x140GTZC_TZSC_MPCWM3_UPWMRRes.Res.Res.Res.LGTH[11:0]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
Reset value111111111111

Refer to Section 2.6 for the register boundary addresses.

3.6 GTZC TZIC registers

All GTZC TZIC registers are accessed by words (32-bit), halfwords (16-bit) and bytes (8-bit).

3.6.1 GTZC TZIC interrupt enable register 1 (GTZC_TZIC_IER1)

Address offset: 0x000

Reset value: 0xFFFF FFFF

when security is enabled (ESE = 1)

Reset value: 0x0000 0000

when security is disabled (ESE = 0)

This register can only be accessed by a secure privileged access for read and write.

A non-secure or unprivileged access is ignored and return zero data, and an illegal access event is generated.

Note: When the system is non-secure (ESE = 0), this register cannot be written and is read zero. No illegal access interrupt is generated.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.PKAIESRAM2 IESRAM1 IEFLASH IEDMAMUX1IEDMA2 IEDMA1 IEFLASH IFIEPWRIESUBG HZSP IIERNGIEAESIETZSC IETZICIE
rwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:14 Reserved, must be kept at reset value.

Bit 13 PKAIE : Illegal access event interrupt enable bit for PKA

Bit 12 SRAM2IE : Illegal access event interrupt enable bit for SRAM2

Bit 11 SRAM1IE : Illegal access event interrupt enable bit for SRAM1

Bit 10 FLASHIE : Illegal access event interrupt enable bit for flash memory

Bit 9 DMAMUX1IE : Illegal access event interrupt enable bit for DMAMUX1

Bit 8 DMA2IE : Illegal access event interrupt enable bit for DMA2

  1. Bit 7 DMA1IE : Illegal access event interrupt enable bit for DMA1
    0: Disabled (masked)
    1: Enabled (unmasked)
  2. Bit 6 FLASHIE : Illegal access event interrupt enable bit for FLASH interface
    0: Disabled (masked)
    1: Enabled (unmasked)
  3. Bit 5 PWRIE : Illegal access event interrupt enable bit for PWR
    0: Disabled (masked)
    1: Enabled (unmasked)
  4. Bit 4 SUBGHZSPIE : Illegal access event interrupt enable bit for sub-GHz SPI
    0: Disabled (masked)
    1: Enabled (unmasked)
  5. Bit 3 RNGIE : Illegal access event interrupt enable bit for RNG
    0: Disabled (masked)
    1: Enabled (unmasked)
  6. Bit 2 AESIE : Illegal access event interrupt enable bit for AES
    0: Disabled (masked)
    1: Enabled (unmasked)
  7. Bit 1 TZSCIE : Illegal access event interrupt enable bit for GTZC TZSC
    0: Disabled (masked)
    1: Enabled (unmasked)
  8. Bit 0 TZICIE : Illegal access event interrupt enable bit for GTZC TZIC
    0: Disabled (masked)
    1: Enabled (unmasked)

3.6.2 GTZC TZIC status register 1 (GTZC_TZIC_MISR1)

Address offset: 0x010

Reset value: 0x0000 0000

This register can only be accessed by a secure privileged access for read and write. A non-secure or unprivileged access is ignored and return zero data and an illegal access event is generated.

Note: When the system is non-secure (ESE = 0) this register cannot be written and reads zero.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.PKAMFSRAM2 MFSRAM1 MFFLASH MFDMAM UX1MFDMA2 MFDMA1 MFFLASHI FMFPWR MFSUBG HZSPI MFRNG MFAESMFTZSC MFTZIC MF
rrrrrrrrrrrrrr

Bits 31:14 Reserved, must be kept at reset value.

  1. Bit 13 PKAMF : Illegal access event interrupt status flag before masking for PKA
    0: No illegal access event interrupt pending
    1: Illegal access event interrupt pending
  2. Bit 12 SRAM2MF : Illegal access event interrupt status flag before masking for SRAM2
    0: No illegal access event interrupt pending
    1: Illegal access event interrupt pending
  3. Bit 11 SRAM1MF : Illegal access event interrupt status flag before masking for SRAM1
    0: No illegal access event interrupt pending
    1: Illegal access event interrupt pending
  4. Bit 10 FLASHMF : Illegal access event interrupt status flag before masking for flash memory
    0: No illegal access event interrupt pending
    1: Illegal access event interrupt pending
  5. Bit 9 DMAMUX1MF : Illegal access event interrupt status flag before masking for DMAMUX1
    0: No illegal access event interrupt pending
    1: Illegal access event interrupt pending.
  6. Bit 8 DMA2MF : Illegal access event interrupt status flag before masking for DMA2
    0: No illegal access event interrupt pending
    1: Illegal access event interrupt pending
  7. Bit 7 DMA1MF : Illegal access event interrupt status flag before masking for DMA1
    0: No illegal access event interrupt pending
    1: Illegal access event interrupt pending
  8. Bit 6 FLASHIFMF : Illegal access event interrupt status flag before masking for flash interface
    0: No illegal access event interrupt pending
    1: Illegal access event interrupt pending
  9. Bit 5 PWRMF : Illegal access event interrupt status flag before masking for PWR
    0: No illegal access event interrupt pending
    1: Illegal access event interrupt pending
  10. Bit 4 SUBGHZSPIMF : Illegal access event interrupt status flag before masking for sub-GHz SPI
    0: No illegal access event interrupt pending
    1: Illegal access event interrupt pending
  11. Bit 3 RNGMF : Illegal access event interrupt status flag before masking for RNG
    0: No illegal access event interrupt pending
    1: Illegal access event interrupt pending
  12. Bit 2 AESMF : Illegal access event interrupt status flag before masking for AES
    0: No illegal access event interrupt pending
    1: Illegal access event interrupt pending
  13. Bit 1 TZSCMF : Illegal access event interrupt status flag before masking for GTZC TZSC
    0: No illegal access event interrupt pending
    1: Illegal access event interrupt pending
  14. Bit 0 TZICMF : Illegal access event interrupt status flag before masking for GTZC TZIC
    0: No illegal access event interrupt pending
    1: Illegal access event interrupt pending

3.6.3 GTZC TZIC interrupt status clear register 1 (GTZC_TZIC_ICR1)

Address offset: 0x020

Reset value: 0x0000 0000

This register can only be accessed by a secure privileged access for read and write. A non-secure or unprivileged access is ignored and return zero data and an illegal access event is generated.

Note: When the system is non-secure (ESE = 0), this register cannot be written and reads zero.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.PKACFSRAM2 CFSRAM1 CFFLASH CFDMAMUX1CFDMA2 CFDMA1 CFFLASHI FCFPWR CFSUBG HZSPI CFRNG CFAESCFTZSC CFTZIC CF
rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1

Bits 31:14 Reserved, must be kept at reset value.

Bit 13 PKACF : Illegal access event interrupt status flag clear bit for PKA

0: No action

1: Clear status flag

Bit 12 SRAM2CF : Illegal access event interrupt status flag clear bit for SRAM2

0: No action

1: Clear status flag

Bit 11 SRAM1CF : Illegal access event interrupt status flag clear bit for SRAM1

0: No action

1: Clear status flag

Bit 10 FLASHCF : Illegal access event interrupt status flag clear bit for flash memory

0: No action

1: Clear status flag

Bit 9 DMAMUX1CF : Illegal access event interrupt status flag clear bit for DMAMUX1

0: No action

1: Clear status flag

Bit 8 DMA2CF : Illegal access event interrupt status flag clear bit for DMA2

0: No action

1: Clear status flag

Bit 7 DMA1CF : Illegal access event interrupt status flag clear bit for DMA1

0: No action

1: Clear status flag

Bit 6 FLASHIFCF : Illegal access event interrupt status flag clear bit for flash interface

0: No action

1: Clear status flag

Bit 5 PWRCF : Illegal access event interrupt status flag clear bit for PWR

0: No action

1: Clear status flag

Bit 4 SUBGHZSPICF : Illegal access event interrupt status flag clear bit for sub-GHz SPI

0: No action

1: Clear status flag

Bit 3 RNGCF : Illegal access event interrupt status flag clear bit for RNG

0: No action

1: Clear status flag

Bit 2 AESCF : Illegal access event interrupt status flag clear bit for AES

0: No action

1: Clear status flag

Bit 1 TZSCCF : Illegal access event interrupt status flag clear bit for GTZC TZSC

0: No action

1: Clear status flag

Bit 0 TZICCF : Illegal access event interrupt status flag clear bit for GTZC TZIC

0: No action

1: Clear status flag

3.6.4 GTZC TZIC register map

Table 10. TZIC register map and reset values

OffsetRegister313029282726252423222120191817161514131211109876543210
0x000GTZC_TZIC_IER1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PKAIESRAM2IESRAM1IEFLASHIEDMAMUX1IEDMA2IEDMA1IEFLASHFIEPWRIESUBGHZSPIERNGIEAESIETZSCIETZICIE
Reset valuexxxxxxxxxxxxxx
0x004 to 0x00CReservedReserved
0x010GTZC_TZIC_MISR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PKAMFSRAM2MFSRAM1MFFLASHMFDMAMUX1MFDMA2MFDMA1MFFLASHIFMFPWRMFSUBGHZSPIMFRNGMFAESMFTZSCMFTZICMF
Reset value00000000000000
0x014 to 0x01CReservedReserved
0x020GTZC_TZIC_ICR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PKACFSRAM2CFSRAM1CFFLASHCFDMAMUX1CFDMA2CFDMA1CFFLASHIFCFPWRCFSUBGHZSPICFRNGCFAESCFTZSCFTZICF
Reset value00000000000000

Refer to Section 2.6 for the register boundary addresses.