ARM TrustZone is ARM’s solution for creating a Trusted Execution Environment (TEE). It divides the SoC system into two worlds: a secure (S) world and a normal one (N). A key feature ARM implemented for TrustZone is the propagation of the secure state to HW access. At runtime, software on ARMv8 CPUs can switch between states using the “Secure Monitor Call” (SMC) instruction to an TEE OS.

Further reading:
- https://developer.arm.com/documentation/ddi0333/h/programmer-s-model/secure-world-and-non-secure-world-operation-with-trustzone/how-the-secure-model-works
- https://developer.arm.com/documentation/100690/0201/Arm-TrustZone-technology
- https://blog.quarkslab.com/introduction-to-trusted-execution-environment-arms-trustzone.html
- https://sergioprado.blog/introduction-to-trusted-execution-environment-tee-arm-trustzone/
- https://source.android.com/docs/security/features/trusty?hl=de
- https://www.trustedfirmware.org/projects/op-tee/