The access ports can be protected to secure the internal assets and resources of the device. While the control access port (CTRL-AP) is always accessible from an external debugger, the system applies various protection mechanisms to control and restrict access to the individual AHB access ports. These mechanisms ensure both secure and non-secure access can be selectively managed and protected.
Protection is controlled by specific registers, which enable or disable debug access at different levels. These registers are part of UICR and TAMPC. The access port is normally protected. The hardware and software configurations of these registers control the access protection policies as shown in the following table.
| Registers | Description |
|---|---|
| UICR.APPROTECT |
Hardware control of non-secure debug access. A device reset is required for this configuration to take effect. Unprotected – CPU controls DBGEN/NIDEN, locks disabled. Other values – DBGEN/NIDEN disabled and locked. |
| CPU control of non-secure debug access. The registers can be locked. |
| Registers | Description |
|---|---|
| UICR.SECUREAPPROTECT |
Hardware control of secure debug access. A device reset is required for this configuration to take effect. Unprotected – CPU controls SPIDEN/SPNIDEN, locks disabled. Other values – SPIDEN/SPNIDEN disabled and locked. |
| CPU control of secure debug access. The registers can be locked. Non-secure invasive debug access must be enabled for secure debug access to be enabled. |
| Registers | Description |
|---|---|
| UICR.AUXAPPROTECT |
Hardware control of AUX-AP debug access. A device reset is required for this configuration to take effect. Unprotected – CPU controls AUX-AP DBGEN, lock disabled. Other values – AUX-AP DBGEN disabled and locked. |
| TAMPC.PROTECT.AP[0].DBGEN | Software control of AUX-AP debug access. The registers can be locked. |
| Registers | Description |
|---|---|
|
Hardware control of RRAMC ERASEALL protection in addition to access ports. A device reset is required for this configuration to take effect. Any value other than Unprotected disables RRAMC ERASEALL. |
|
| UICR.ERASEPROTECT |
Hardware control of RRAMC ERASEALL and CTRL-AP ERASEALL protection. A device reset is required for this configuration to take effect. Any value other than Unprotected disables the erase all operations. |
| TAMPC.PROTECT.ERASEPROTECT | Software control of RRAMC ERASEALL and CTRL-AP ERASEALL protection. The register can be locked. |
The reset behavior of the TAMPC access port and ERASEALL protection is defined in Signal protector. On-chip software must write to the TAMPC registers before a debug access port is opened.
- Power-on reset
- Brownout reset
- Watchdog timer reset
- Pin reset
The debugger can read the access port protection status in the core's AHB-AP, using the Arm AHB-AP Control/Status Word register (CSW), defined in the Arm CoreSight SoC-400 Technical Reference Manual. The DbgStatus field indicates that the AHB-AP can perform AHB transfers, while the SPIStatus field indicates if secure AHB transfers are permitted. For a list of all debug access ports, see Debug access port.