Build System

Yocto with bitbake is the build engine used to build TRS. However, due to the fact that a TRS builds various components such as firmware (Trusted Substrate), root-filesystem, and kernel independently, we have wrapped the setup, configuration, and build commands in a simple high-level Makefile. That way it easy for people to get started with TRS by minimizing the number of commands needed to get it working. Interested parties can also look at the inner working of the Makefile to better understand how things come together.

Putting it in a Makefile makes it easy to additionally address any build dependencies, i.e., we can control the build sequence, which may be desirable and needed for an umbrella project such as TRS.

Target Platforms

TRS supports multiple platforms, including Arm application profiles, execution states, and extension types. However, TRS use the same OS and root filesystem image for all devices. Therefore, there is currently not a need to describe the platforms as such. Refer to the Firmware - Trusted Substrate section to learn how to configure and build firmware for different target systems.

Distribution Image Features

TRS distro features can be found under ./trs/meta-trs/conf/distro/trs.conf. In summary we append the following DISTRO_FEATURES in TRS.

grep: ../../meta-trs/conf/distro/trs.conf: No such file or directory

As can be seen, we inherit and use EWAOL’s ewaol-baremetal build for our baremetal environment. Likewise for our virtualization build, we get Xen by enabling ewaol-virtualization that can be found in ./meta-ewaol/meta-ewaol-distro/conf/distro/ewaol.conf