Hi, I am a graduate student that is implementing a security project in Jetson TK1. I hope to use the TrustZone feature. I saw that NVIDIA have this thing called TLK and its github seem to contain some source code in this area.
http://nv-tegra.nvidia.com/gitweb/
https://devtalk.nvidia.com/default/topic/820702/porting-the-secure-os-like-the-tlk-in-trustzone/
I have yet to look through this, but I was wondering if there are any documentations/tutorials that specifically tells you how to do some of the following (or whether these are all the resources I have to go on):
- Boot into Secure World, load minimal OS and boot into Normal World a full host Linux OS
- Secure Monitor program that can be called to switch between the Secure World OS and Normal World OS
- Partitioning memory and peripherals between Normal World and Secure World
Some of the questions I have are: How do I know I am in the Secure World? Is there some way to put a terminal into the Secure World so I an have some kind of UI? Does that mean the graphics driver somehow need to be multiplexed between the Secure World and Normal World?
I am a bit overwhelmed since I am starting a bit from scratch here, so I am not sure I even know what I don’t know. So any help would be great! Especially regards to what Secure World OS can be loaded and how Secure World can interface with Normal World kernel structures to control for example network I/O.