[svsm-devel] Launch coconut-svsm using IGVM

Tom Lendacky thomas.lendacky at amd.com
Wed Mar 27 22:49:58 CET 2024


On 2/9/24 09:51, Jörg Rödel wrote:
> Hi Claudio,
> 
> On Fri, Feb 09, 2024 at 02:46:03PM +0000, Claudio Siqueira de Carvalho wrote:
>> I was doing some research on IGVM, but I did not find any example. Does anybody
>> have an example of an IGVM file and a QEMU command line that I could use to
>> launch the coconut-svsm?
>>
>> This might be helpful for other people too.
> 
> The COCONUT build process will generate two IGVM files, one for use with
> QEMU and one for use with Hyper-V.
> 
> To use it with QEMU, you need an IGVM-enabled QEMU, instructions on how
> to get one can be found in here:
> 
> 	https://github.com/roy-hopkins/svsm/blob/igvm_install_doc/Documentation/INSTALL.md
> 
> This is a file from Roy's pending PR on updating the documentation for
> the IGVM switch.

I just tried building everything fresh on a new system based on the 
installation instructions and can't get the firmware to launch. Doing some 
debugging, the firmware loading appears to be off by a page (0x1000). In 
other words, the code that should be at the CS:RIP 0xfffffff0 is actually 
located at 0xffffeff0, with all 0's at 0xfffffff0.

I don't have a full grasp on the Qemu IGVM support to understand if it is 
the IGVM file that is built wrong or the Qemu IGVM support that ends up 
off by a page. It appears that the firmware is handled as the last item in 
igvm_process() and if process_mem_page() is invoked with "i - 1" instead 
of "i", then the firmware begins booting.

Thanks,
Tom

> 
> Hope that helps.
> 
> Regards,
> 
> 	Joerg


More information about the Svsm-devel mailing list