Getting Started
This chapter has two paths: a fast host-side contributor check, and a complete SoC build. Use the first to explore the framework without hardware.
Requirements
The workspace requires Rust 1.87 or newer and just. The setup recipe installs the
additional Rust targets and development tools used by the repository:
just init
just setup
Run just at any time to list the current recipes. On Linux, the main host check is:
just check
Focused checks are quicker while iterating:
just test ipc host
just test cfg host
just test dbg host
On macOS, run Rust builds through the repository’s Linux container. The base image is enough for focused subsystem checks:
just linux-image
just linux 'just test ipc host'
just linux 'just test cfg host'
The full image adds the WPE and OP-TEE dependencies needed by the complete workspace and melt-pot builds.
Tour the reference project
examples/melt-pot/ contains equivalent systems for STM32MP25 and i.MX95. Each has:
Consortium.toml whole-system configuration
app/ Linux application endpoint
mcu/ real-time firmware endpoint
ta/ optional OP-TEE trusted application
../shared/ message types shared by both processors
website/ optional Cog/WPE frontend
Start with examples/melt-pot/stm32mp25/Consortium.toml or
examples/melt-pot/imx95/Consortium.toml. These manifests track the current builder and
chip databases.
The endpoint crates call include!("consortium.gen.rs"). That file is intentionally
generated by the pipeline, so a plain cargo check in an endpoint directory may fail
before the first system build. The shared crate remains an ordinary workspace member
and can be checked independently.
Build the complete example
The complete pipeline needs a Linux environment and the target-facing dependencies used by the selected HMI and TEE configuration. From a prepared Linux host:
cargo run -p csti -- build \
--manifest examples/melt-pot/imx95/Consortium.toml \
--dist dist/imx95 \
--release \
--skip-tee-sign
On macOS, the repository’s full Linux image supplies the Linux-only dependencies:
just linux-image-full
just linux-full 'cargo run -p csti -- build --manifest examples/melt-pot/imx95/Consortium.toml --dist dist/imx95 --release --skip-tee-sign'
--skip-tee-sign is useful on development machines without OP-TEE signing keys. It
still builds the trusted application and stages its unsigned ELF.
The command creates a local staging tree; it does not copy files to a board or modify a live target. Continue with Project Manifest before adapting the example, then read Build and Deployment for the output layout.
Read the book locally
mdbook serve docs/book/
The development server prints the local URL and rebuilds the book when Markdown files change.