teriOS is a prototype nanokernel aimed at exploring the potential of CHERI-enabled Arm Morello boards for implementing trusted execution environments.
The contents of this repository will be particularly valuable to developers interested in running bare-metal pure capability code across all exception levels on Arm Morello boards.
teriOS can schedule multiple tasks, using a timer interrupt to initiate a context switch. An example system call (SVC) is also implemented to print text to the UART.
The code, located in the src
directory, has been tested on the Morello FVP, rather than the SoC. It has been tested and compiled using the Arm Development Studio. However, creating a Makefile
should be straightforward. Once compiled, it can be loaded by constructing a BL33 payload. The documentation below explains this further.
A comprehensive project report accompanies this repository, providing in-depth documentation on the design and implementation of teriOS, along with relevant background information, related work, and future prospects.
The documentation below outlines the process for setting up and configuring the development environment.
- Morello Fixed Virtual Platform (FVP)
- Compiling code
- Arm Development Studio (Compilation and Debugging)
There is also some additional third-party documentation. However, be aware that some parts are now outdated, and certain steps are no longer necessary.