How to easily run a SCMI server in various Execution Environments
Under construction
Running SCMI server with OP-TEE
The easiest way to test the SCMI server in OP-TEE is to built it for qemu Armv8. OP-TEE documentation provides detailed information to build a qemu Armv8 dev environment here.
The SCP-firmware is not yet part of the manifest but a PR is under review to add it : https://github.com/OP-TEE/manifest/pull/252
Similarly, SCMI server is not enabled by default for qemu_v8 platform but a PR is under review to enable compiling OP-TEE os with SCMI server: https://github.com/OP-TEE/build/pull/695. In the meantime, a manifest using the PR has been created https://github.com/vingu-linaro/manifest/tree/optee-with-scmi .
You just need to add WITH_SCMI=y option in the make command to enable the SCMI server. The whole sequence to use the pending PRs can be summarized:
$ mkdir <project-dir>
$ cd <project-dir>
$ repo init -u https://github.com/vingu-linaro/manifest.git -b optee-with-scmi -m qemu_v8.xml
$ repo sync
$ cd build
$ make toolchains
$ make run WITH_SCMI=y
When booting with SCMI server, we use a dedicated DT instead of the one that is built on the fly by Qemu in order to provide a scmi node. The dts file is available in the build/qemu_v8 directory if someone needs to change it and is based on the dtb generated by Qemu.
The configuration of the scmi server is located in the directory : <project-dir>/SCP-firmware/product/optee-fvp/fw/
. The following scmi protocols have been enable with mock devices:
clock protocol
performance domain protocol with one domain connected to cpufreq
power domain protocol
sensor protocol
The logs are enabled by default so you should see SCMI requests in the secure world console.
Running SCMI server in Secure partition
TBF