Skip to content

Support other runners

Jean-Philippe Brucker requested to merge jbru/runners into main

At the moment shrinkwrap only supports running the software stack on the fast model. This series adds support for running on other platforms: initially QEMU (TCG) but opening the way for other platforms such as QEMU-KVM, kvmtool, FPGAs etc.

Introduce the concept of "runners". The default is FVP, and existing configs do not need changes. Additional runners are added under the run.runners and buildex.runners sections, and the runner used is specified by run.runner.

To use the QEMU runner:

shrinkwrap build cca-3world.yaml -o qemu/cca.yaml
shrinkwrap run cca-3world.yaml
shrinkwrap run cca-3world.yaml -o qemu/multi-term.yaml  # to spawn multiple terminals

This uses the base config cca-3world.yaml so that, if building without the qemu/cca.yaml overlay, large components like Linux and Buildroot are kept. Only the components specific to the runner platform like TF-A, RMM and EDKII, which are specified in the runners sections, are rebuilt. The goal is to run multiplatform software components under different runners without rebuilding them, which can be useful during development and testing.

Note that transitioning between runners isn't entirely seamless at the moment: the RMM build dir must be removed manually to clear cached configuration, and edk2 needs --force-sync.

Merge request reports

Loading