On 2/14/25 2:13 AM, Steven Price wrote: [...]
The ABI to the RMM (the RMI) is based on RMM v1.0-rel0 specification[1]. This series is based on v6.14-rc1. It is also available as a git repository: https://gitlab.arm.com/linux-arm/linux-cca cca-host/v7 Work in progress changes for kvmtool are available from the git repository below: https://gitlab.arm.com/linux-arm/kvmtool-cca cca/v5 [1] https://developer.arm.com/documentation/den0137/1-0rel0/ [2] https://lore.kernel.org/r/a7011738-a084-46fa-947f-395d90b37f8b%40arm.com
I had a chance to test it by following Jean's instructions [1-2]. The guest can boot up and kvmtool also can boot the guest. I'm listing the repositories I used in case some body else want to give it a try. [1] Jean's guide to build software components needed by ARM CCA stack https://linaro.atlassian.net/wiki/spaces/QEMU/pages/29051027459/Building+an+RME+stack+for+QEMU [2] Jean's guide to build firmware needed by the emulated host host ==== tf-rmm https://git.codelinaro.org/linaro/dcap/rmm.git (cca/v4) edk2: git@xxxxxxxxxx:tianocore/edk2.git (edk2-stable202411) tf-a: https://git.codelinaro.org/linaro/dcap/tf-a/trusted-firmware-a.git (cca/v4) qemu https://git.qemu.org/git/qemu.git (stable-9.2) linux https://git.gitlab.arm.com/linux-arm/linux-cca.git (cca-host/v7) buildroot https://github.com/buildroot/buildroot (master) guest ===== qemu https://git.codelinaro.org/linaro/dcap/qemu.git (cca/latest) kvmtool https://gitlab.arm.com/linux-arm/kvmtool-cca (cca/latest) linux https://git.gitlab.arm.com/linux-arm/linux-cca.git (cca-guest/v7) Command lines to start the host ================================ [gshan@virtlab723 host]$ cat start.sh #!/bin/sh HOST_PATH=/home/gshan/sandbox/qemu/host GUEST_PATH=/home/gshan/sandbox/qemu/guest sudo ${HOST_PATH}/qemu/build/qemu-system-aarch64 \ -M virt,virtualization=on,secure=on,gic-version=3,acpi=off \ -cpu max,x-rme=on -m 4G -smp 8 \ -serial mon:stdio -monitor none -nographic -nodefaults \ -bios ${HOST_PATH}/tf-a/flash.bin \ -kernel ${HOST_PATH}/linux/arch/arm64/boot/Image \ -initrd ${HOST_PATH}/buildroot/output/images/rootfs.cpio.xz \ -device pcie-root-port,bus=pcie.0,chassis=1,id=pcie.1 \ -device pcie-root-port,bus=pcie.0,chassis=2,id=pcie.2 \ -device pcie-root-port,bus=pcie.0,chassis=3,id=pcie.3 \ -device pcie-root-port,bus=pcie.0,chassis=4,id=pcie.4 \ -device virtio-9p-device,fsdev=shr0,mount_tag=shr0 \ -fsdev local,security_model=none,path=${GUEST_PATH},id=shr0 \ -netdev tap,id=tap1,script=/etc/qemu-ifup,downscript=/etc/qemu-ifdown \ -device virtio-net-pci,bus=pcie.2,netdev=tap1,mac=78:ac:44:2b:43:f0 Command lines to start the guest ================================ [gshan@virtlab723 guest]$ cat start_guest.sh #!/bin/sh key="VGhlIHJlYWxtIGd1ZXN0IHBlcnNvbmFsaXphdGlvbiBrZXkga" key+="W4gZm9ybWF0IG9mIGJhc2U2NCAgICAgICAgIA==" qemu-system-aarch64 -enable-kvm \ -object rme-guest,id=rme0,measurement-algorithm=sha512,personalization-value=${key} \ -M virt,gic-version=3,its=on,confidential-guest-support=rme0 \ -cpu host -smp 2 -m 1024M \ -serial mon:stdio -monitor none -nographic -nodefaults \ -kernel /mnt/linux/arch/arm64/boot/Image \ -initrd /mnt/buildroot/output/images/rootfs.cpio.xz \ -append earlycon=pl011,mmio,0x10009000000 Thanks, Gavin