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