Skip to content
This repository has been archived by the owner on Jul 25, 2023. It is now read-only.
/ terios Public archive

A prototype nanokernel for trusted execution on CHERI-enabled Arm Morello boards.

License

Notifications You must be signed in to change notification settings

kiancross/terios

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

teriOS

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.

Compiling

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.

Documentation

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.

  1. Morello Fixed Virtual Platform (FVP)
    1. Installing the FVP
    2. Running the FVP
  2. Compiling code
    1. Obtaining the cross compilation toolchain
  3. Arm Development Studio (Compilation and Debugging)
    1. Installing the Arm Development Studio
    2. Configuring the Arm Development Studio
    3. Debugging at EL3
    4. Debugging at EL2 (TF-A BL33 payload)

There is also some additional third-party documentation. However, be aware that some parts are now outdated, and certain steps are no longer necessary.

About

A prototype nanokernel for trusted execution on CHERI-enabled Arm Morello boards.

Resources

License

Stars

Watchers

Forks