Hi,
 
> I think if we want to embrace IGVM, we should embrace it fully and make it
> replace the region list. At the end of the day, IGVM is effectively a region
> list plus data.
> 
> How difficult would it be to put up a prototype that uses only IGVM as
> vmfwupdate payload? We can definitely assemble that IGVM in ukify.py or as
> part of the boot stub. Or for the prototype even pre-assemble by hand.

Played around with igvm yesterday (no vmfwupdate yet), with traditional
firmware wrapped into an igvm.

igvm support in qemu needs a fix for that to work properly.
https://github.com/coconut-svsm/qemu/pull/18

Launching a VM using igvm works.  seabios+ovmf images created using this:
https://gitlab.com/kraxel/virt-firmware-rs/-/blob/main/efi-tools/src/bin/igvm-wrap.rs

There are some noteworthy differences between igvm and non-igvm mode
though:

 * When launching without igvm qemu goes create the pc bios rom memory
   region, and the alias to map the top 128k of that below 1G ('pc.bios'
   and 'isa-bios' in 'info mtree').

 * When launching with igvm qemu doesn't do that (at least with the
   current, not-yet upstream patches).  One can compensate for that by
   creating two regions in the igvm (below 4G and below 1M).  There are
   still some small differences, the memory regions are ram not rom,
   also the chipset emulation for rom shadowing has no effect.

take care,
  Gerd


Reply via email to