Mathieu The whole software stack for CCA is in development, meaning instructions will change frequently and repositories are temporary. Instructions to compile the stack, both manually and from the OP-TEE build environment, have been written from a Ubuntu 22.04 LTS based system.
Table of Contents |
---|
With the OP-TEE build environment
...
Code Block |
---|
mkdir cca-v2
cd cca-v2
repo init -u https://git.codelinaro.org/linaro/dcap/op-tee/manifest.git -b cca/v2-attestation
-m qemu_v8_cca.xml
repo sync -j8 --no-clone-bundle
cd build
make -j8 CCA_SUPPORT=y toolchains
make -j8 CCA_SUPPORT=y |
...
Status: QEMU support has been merged. Additional patches are needed until QEMU supports a couple features that are mandatory for RME (PMUv3p7 and ECV)PMUv3p7 is supported by QEMU.
Repo: extra patches are at https://git.codelinaro.org/linaro/dcap/rmm branch cca/v2
official repo is https://git.trustedfirmware.org/TF-RMM/tf-rmm.git/
...
Disable USE_VIRTCONSOLE in order to see all boot logs. Doing this enables the emulated PL011 serial and is much slower. Although edk2 does support virtio-console, it doesn’t display the debug output there (but you’ll still see RMM logs showing progress during boot).
When booting via grub2, the kernel parameters are stored in
grub.cfg
which is copied fromboard/aarch64-efi/grub.cfg
by the buildroot scriptboard/aarch64-efi/post-image.sh
. Bu default the kernel parameters do not define aconsole
, so Linux will determine the boot console from the device tree’s/chosen/stdout-path
property, which QEMU initializes to the default serial console. So if you want to boot with virtconsole, addconsole=hvc0
toboard/aarch64-efi/grub.cfg
before making buildroot.
Attestation Proof of Concept
A demonstration application called cca-workload-attestation has been integrated to the root file system. From a Realm VM, it provides users with the capability to query the RMM for a CCA attestation token that can either be printed to the console or saved to a file. It also demonstrates a typical interaction with an attestation service by communicating the CCA attestation token to a local instance of the Veraison services. Details on the cca-workload-attestation, the Veraison services and the endorser that populate the endorsement values can be found here.
Tips
Automate some things in the host boot
...