(Excuse my delayed reply, still suffering from some flu or whatever...)

On Mon, Mar 17, 2025 at 10:56:04AM +0100, Gerd Hoffman wrote:
> Yep.  But we have to sort the details.
> 
>  (1) How we are going to load kernel + initrd in case the firmware is
>      igvm?  Just update the igvm to also include linux kernel and
>      initrd (see parallel reply from Jörg)?  If so, how does the
>      launched firmware find the kernel + initrd?
>      While digging around in the igvm spec I've seen there is the
>      concept of 'parameters'.  Can this be used to pass on the memory
>      location of kernel + initrd + cmdline?  Maybe the kernel hashes too?

The find the locations of the kernel, initrd, cmdline, ... I think IGVM
parameters, either directly or (preferably indirectly) are a good
solution. By "indirectly" I mean to put these regions on a separate and
measured page which also contains the region hashes.

This allows to put these regions as unmeasured memory into the IGVM and
speed up launching on some platforms.

>  (2) Will the igvm be generated on the fly from FUKI data?  Or should
>      the distros ship igvm images with firmware + kernel + initrd?

My preference would be that distros ship the tooling and components to
build IGVM files and build them during kernel update. If a distro comes
up with a generic initrd+cmdline it can also ship pre-built IGVM files.

>From that IGVM-file the tooling can also extract expected measurements
and place them on some trusted verifier (e.g. remote or TPM).

>  (3) How we are going to handle uki add-ons?
> 
>  (4) Do we want keep the region list?  Or declare that igvm should be
>      used in case a single region is not enough?  Or even go all-in and
>      use IGVM exclusively?

No strong opinion here, but I just want to mention again that by
allowing a workflow with a pre-defined setup order for CVMs, the
implemented order in QEMU/KVM can not be changed afterwards without
breaking measurements for users.

Regards,

        Joerg

Reply via email to