mirror of https://gitee.com/openkylin/libvirt.git
qemu: Add AAVMF to the list of known UEFIs
Well, even though users can pass the list of UEFI:NVRAM pairs at the configure time, we may maintain the list of widely available UEFI ourselves too. And as arm64 begin to rises, OVMF was ported there too. With a slight name change - it's called AAVMF, with AAVMF_CODE.fd being the UEFI firmware and AAVMF_VARS.fd being the NVRAM store file. Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
bc03a23149
commit
436dcf0b74
|
@ -506,6 +506,12 @@
|
|||
# however, have different variables store. Therefore the nvram is
|
||||
# a list of strings when a single item is in form of:
|
||||
# ${PATH_TO_UEFI_FW}:${PATH_TO_UEFI_VARS}.
|
||||
# Later, when libvirt creates per domain variable store, this
|
||||
# list is searched for the master image.
|
||||
#nvram = [ "/usr/share/OVMF/OVMF_CODE.fd:/usr/share/OVMF/OVMF_VARS.fd" ]
|
||||
# Later, when libvirt creates per domain variable store, this list is
|
||||
# searched for the master image. The UEFI firmware can be called
|
||||
# differently for different guest architectures. For instance, it's OVMF
|
||||
# for x86_64 and i686, but it's AAVMF for aarch64. The libvirt default
|
||||
# follows this scheme.
|
||||
#nvram = [
|
||||
# "/usr/share/OVMF/OVMF_CODE.fd:/usr/share/OVMF/OVMF_VARS.fd",
|
||||
# "/usr/share/AAVMF/AAVMF_CODE.fd:/usr/share/AAVMF/AAVMF_VARS.fd"
|
||||
#]
|
||||
|
|
|
@ -149,8 +149,10 @@ virQEMUDriverConfigLoaderNVRAMParse(virQEMUDriverConfigPtr cfg,
|
|||
}
|
||||
|
||||
|
||||
#define VIR_QEMU_LOADER_FILE_PATH "/usr/share/OVMF/OVMF_CODE.fd"
|
||||
#define VIR_QEMU_NVRAM_FILE_PATH "/usr/share/OVMF/OVMF_VARS.fd"
|
||||
#define VIR_QEMU_OVMF_LOADER_PATH "/usr/share/AAVMF/AAVMF_CODE.fd"
|
||||
#define VIR_QEMU_OVMF_NVRAM_PATH "/usr/share/AAVMF/AAVMF_VARS.fd"
|
||||
#define VIR_QEMU_AAVMF_LOADER_PATH "/usr/share/OVMF/OVMF_CODE.fd"
|
||||
#define VIR_QEMU_AAVMF_NVRAM_PATH "/usr/share/OVMF/OVMF_VARS.fd"
|
||||
|
||||
virQEMUDriverConfigPtr virQEMUDriverConfigNew(bool privileged)
|
||||
{
|
||||
|
@ -306,13 +308,15 @@ virQEMUDriverConfigPtr virQEMUDriverConfigNew(bool privileged)
|
|||
|
||||
#else
|
||||
|
||||
if (VIR_ALLOC_N(cfg->loader, 1) < 0 ||
|
||||
VIR_ALLOC_N(cfg->nvram, 1) < 0)
|
||||
if (VIR_ALLOC_N(cfg->loader, 2) < 0 ||
|
||||
VIR_ALLOC_N(cfg->nvram, 2) < 0)
|
||||
goto error;
|
||||
cfg->nloader = 1;
|
||||
cfg->nloader = 2;
|
||||
|
||||
if (VIR_STRDUP(cfg->loader[0], VIR_QEMU_LOADER_FILE_PATH) < 0 ||
|
||||
VIR_STRDUP(cfg->nvram[0], VIR_QEMU_NVRAM_FILE_PATH) < 0)
|
||||
if (VIR_STRDUP(cfg->loader[0], VIR_QEMU_OVMF_LOADER_PATH) < 0 ||
|
||||
VIR_STRDUP(cfg->nvram[0], VIR_QEMU_OVMF_NVRAM_PATH) < 0 ||
|
||||
VIR_STRDUP(cfg->loader[1], VIR_QEMU_AAVMF_LOADER_PATH) < 0 ||
|
||||
VIR_STRDUP(cfg->nvram[1], VIR_QEMU_AAVMF_NVRAM_PATH) < 0)
|
||||
goto error;
|
||||
#endif
|
||||
|
||||
|
|
|
@ -76,4 +76,5 @@ module Test_libvirtd_qemu =
|
|||
{ "log_timestamp" = "0" }
|
||||
{ "nvram"
|
||||
{ "1" = "/usr/share/OVMF/OVMF_CODE.fd:/usr/share/OVMF/OVMF_VARS.fd" }
|
||||
{ "2" = "/usr/share/AAVMF/AAVMF_CODE.fd:/usr/share/AAVMF/AAVMF_VARS.fd" }
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
<arch>x86_64</arch>
|
||||
<os supported='yes'>
|
||||
<loader supported='yes'>
|
||||
<value>/usr/share/AAVMF/AAVMF_CODE.fd</value>
|
||||
<value>/usr/share/OVMF/OVMF_CODE.fd</value>
|
||||
<enum name='type'>
|
||||
<value>rom</value>
|
||||
|
|
|
@ -127,6 +127,7 @@ fillQemuCaps(virDomainCapsPtr domCaps,
|
|||
VIR_FREE(loader->values.values[--loader->values.nvalues]);
|
||||
|
||||
if (fillStringValues(&loader->values,
|
||||
"/usr/share/AAVMF/AAVMF_CODE.fd",
|
||||
"/usr/share/OVMF/OVMF_CODE.fd",
|
||||
NULL) < 0)
|
||||
return -1;
|
||||
|
|
Loading…
Reference in New Issue