12.2 Arm TrustZone for ARMv8-M

Arm TrustZone for ARMv8-M technology is an optional core extension implemented on PIC32CM LS00/LS60 devices, which enables the system and the software to be partitioned into Secure and Non-Secure domains.

Secure software can access both Secure and Non-Secure memories and resources, while Non-Secure software can only access Non-Secure memories and resources.

Arm TrustZone for ARMv8-M allows Secure and Non-Secure code to run on a single CPU.
Note: The system always starts up in Secure state.
Figure 12-1. TrustZone for ARMv8-M
Important: For more details, refer to TrustZone Technology for ARMv8-M Architecture, which is available on the Arm web site (www.arm.com).
The memory space is partitioned into Non-Secure and Secure memory regions:
  • Non-Secure (NS): Non-Secure addresses are used for memory and peripherals accessible by all software, that is, running on the device.
  • Secure (S): Secure addresses are used for memory and peripherals accessible only by Secure software or hosts.
  • Non-Secure Callable (NSC): NSC is a special type of Secure memory location. It allows software to transition from Non-Secure to Secure state.