On Thu, 4 May 2023 at 17:13, Jean-Philippe Brucker
<jean-phili...@linaro.org> wrote:
>
> Hello,
>
> On Tue, Apr 25, 2023 at 05:03:58PM +0100, Sami Mujawar wrote:
> > We are happy to announce an early RFC version of the Arm Confidential
> > Compute Architecture (CCA) support for the Kvmtool guest firmware.
> > The intention is to seek early feedback in the following areas:
> >  * Integration of the Arm CCA in ArmVirtPkg
> >  * Generalise the operations wherever possible with other Confidential
> >    Compute solutions and Virtual Machine Managers (VMMs)
>
> Experimental support for ArmVirtQemu is available at [1]. Most of it
> simply includes Sami's libraries into ArmVirtQemu, but there are a few
> things specific to QEMU, one of which I still haven't figured out.
>
> The early debug support in PEI is problematic. A realm must access the
> emulated serial port through unprotected Intermediate Physical Address
> (IPA aka GPA) which is the upper half of the IPA space. The IPA address
> must have the most significant bit set. Once the MMU is enabled and
> ArmCcaConfigureMmio() runs, the page tables point to the right IPA so
> there is no problem. Before that however, EarlyFdtPL011SerialPortLib would
> need to access the device using the unprotected IPA address. So far I
> haven't managed to implement this, so the early serial debug is just
> disabled.
>

Did you spot the changes I made recently for booting at EL1 with hard
coded [initial] page tables in flash? It seems to me that mapping the
serial port in there shouldn't be that hard.

> Another QEMU-specific: in direct kernel boot (-kernel on the
> command-line), the FwCfg device provides kernel, initrd and other blobs to
> the guest firmware. Since these are not in guest RAM before VM boot, they
> are not part of the Realm Initial Measurement, which provides image
> attestation. In order for the Realm owner to authenticate these images,
> I added a BlobVerifier that adds the hash of these blobs to the Realm
> Extended Measurement.
>
> I haven't looked at supporting ArmVirtQemuKernel yet. The latest QEMU VMM
> support for Arm CCA is at [2], and a typical invocation would be:
>
> qemu-system-aarch64 -M confidential-guest-support=rme0 -object 
> rme-guest,id=rme0
>   -M virt -enable-kvm -M gic-version=3 -cpu host,sve=off -smp 2 -m 256M
>   -bios QEMU_EFI.fd -kernel Image -initrd rootfs.cpio
>   -overcommit mem-lock=on -no-acpi -nographic -append 'earlycon 
> console=ttyAMA0'
>
> Thanks,
> Jean
>
> [1] https://jpbrucker.net/git/edk2/ branch cca/qemu
> [2] https://jpbrucker.net/git/qemu/ branch cca/rfc-v2

Thanks, this looks very interesting.


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#104033): https://edk2.groups.io/g/devel/message/104033
Mute This Topic: https://groups.io/mt/98496036/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to