Populate libxl_domain_build_info struct with bios and firmware
info from virDomainLoaderDef.
Note: Currently libxl only allows specifying the type of BIOS.
For type LIBXL_BIOS_TYPE_OVMF, the firmware path is configured
when building Xen using '--with-system-ovmf='. If not specified,
LIBXL_FIRMWARE_DIR/ovmf.bin is used. In the future, Xen will
support a user-specified firmware path. See
http://lists.xenproject.org/archives/html/xen-devel/2016-03/msg01628.html
Once that work is merged into xen.git, the libvirt libxl driver
will be able to honor a user-specified path. In the meantime use
the implicit path, which is tolerable since it is advertised in
domcapabilities.
Signed-off-by: Jim Fehlig <jfehlig(a)suse.com>
---
src/libxl/libxl_conf.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c
index 96f9635..acb6594 100644
--- a/src/libxl/libxl_conf.c
+++ b/src/libxl/libxl_conf.c
@@ -395,6 +395,19 @@ libxlMakeDomBuildInfo(virDomainDefPtr def,
return -1;
#endif
+ /*
+ * Currently libxl only allows specifying the type of BIOS.
+ * If the type is PFLASH, we assume OVMF and set libxl_bios_type
+ * to LIBXL_BIOS_TYPE_OVMF. The path to the OVMF firmware is
+ * configured when building Xen using '--with-system-ovmf='. If
+ * not specified, LIBXL_FIRMWARE_DIR/ovmf.bin is used. In the
+ * future, Xen will support a user-specified firmware path. See
+ *
http://lists.xenproject.org/archives/html/xen-devel/2016-03/msg01628.html
+ */
+ if (def->os.loader &&
+ def->os.loader->type == VIR_DOMAIN_LOADER_TYPE_PFLASH)
+ b_info->u.hvm.bios = LIBXL_BIOS_TYPE_OVMF;
+
if (def->emulator) {
if (!virFileExists(def->emulator)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
--
2.1.4