[libvirt] OVMF exposure in libvirt

Michal Privoznik mprivozn at redhat.com
Mon Jul 14 07:32:34 UTC 2014


Dear list,

there's been a lot of development in QEMU on this part. And I think it's 
settled down enough long so I can start looking at it. So I'd like to 
hear you opinion what's the best way to expose this in libvirt.

OVMF can bee looked at as a UEFI enablement in guest. Standard UEFI 
consists of two parts:

a) the firmware binary image (RO)
b) UEFI variables flash (RW)

IIUC both of these are to be passed to qemu on the command line as:

       -drive file=img_1,if=pflash,format=raw,readonly \
       -drive file=img_2,if=pflash,format=raw

Subsequently, -bios parameter should be dropped. The idea of splitting 
the UEFI into two files allows distros to update the UEFI firmware (FW 
for short) without modifying guest written UEFI variables file (the 
variables should have unified name so they should be transferable 
between two versions of UEFI FW).

So my question is: how to expose this in the domain XML? We have the 
<os/> element which handles the booting arguments. It can have <loader/> 
(which would be great for the FW, wouldn't it?). But then we need to 
invent a different element (say <vars/>) which would contain path the 
the UEFI vars file. Moreover, the element would exclude other elements 
like <boot/>, <bios/> or <smbios/>. So my proposal is:

<os>
   <type>hvm</type>
   <loader>/path/to/uefi.fw</loader>
   <vars>/path/to/uefi.nvvarstore</vars>
</os>

Does this make any sense or am I just blabbing?

Michal

BTW OVMF stands for Open Virtual Machine Firmware.




More information about the libvir-list mailing list