- Using ARM trustzone to build a trusted language runtime for mobile applications - Trusted Language Runtime for mobile applications - very close to something that we would like to do (but Cortex-A9 processor, different from our use case of TrustZone-M)
- Demystifying Arm TrustZone: A Comprehensive Survey - An extensive and very useful survey on TrustZone (must read)
- Understanding the Prevailing Security Vulnerabilities in TrustZone-assisted TEE Systems - Why/How do security attacks still exist after TEEs? Looked like a good SoK paper addressing this question (maybe answers the "how" more).
- The ARM University Program, ARM Architecture Fundamentals - Very good basic introduction to the ARM architecture, assembly, etc.
- May the Trust be with You: Empowering TrustZone-M with Multiple Trusted Environments - Introduces TrustZone-M slightly and describes the uTango TEE on it.
- Using TrustZone on Cortex-M23 and Cortex-M33 - Shows a demo of the generated assembly and a walkthrough across the secure and non-secure memory regions while executing a sample application. Uses some proprietary tools like Keil.
- Designing a Trusted Execution environment in Zephyr OS - Zephyr's TrustZone maintainer talks about the changes in Zephyr to support TrustZone. Fairly high-level.
- Zephyr and Trusted Execution Environments - A user-experience talk on Zephyr's TrustZone APIs. Again no code shown, very high-level talk.
- Enclaves in OS/runtime - Very good introduction (in the context of Intel SGX)
- Secured Routines: Language-based Construction of Trusted Execution Environments - Contains paper, video, etc. Very relevant work.
- Enclosure: language-based restriction of untrusted libraries - Uses Intel SGX and more advanced support from Intel, which might not be entirely relevant. But the runtime abstractions are very similar to what we are thinking about.
- Trust as a Programming Primitive - Adrien Ghosn's PhD thesis (author of the two papers above). (Must Read)
- Uranus: Simple, Efficient SGX Programming and its Applications - Java annotations based abstractions.
- JE Programming Language - Video