提交 436dcf0b 编写于 作者: M Michal Privoznik

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: NMichal Privoznik <mprivozn@redhat.com>
上级 bc03a231
...@@ -506,6 +506,12 @@ ...@@ -506,6 +506,12 @@
# however, have different variables store. Therefore the nvram is # however, have different variables store. Therefore the nvram is
# a list of strings when a single item is in form of: # a list of strings when a single item is in form of:
# ${PATH_TO_UEFI_FW}:${PATH_TO_UEFI_VARS}. # ${PATH_TO_UEFI_FW}:${PATH_TO_UEFI_VARS}.
# Later, when libvirt creates per domain variable store, this # Later, when libvirt creates per domain variable store, this list is
# list is searched for the master image. # searched for the master image. The UEFI firmware can be called
#nvram = [ "/usr/share/OVMF/OVMF_CODE.fd:/usr/share/OVMF/OVMF_VARS.fd" ] # 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, ...@@ -149,8 +149,10 @@ virQEMUDriverConfigLoaderNVRAMParse(virQEMUDriverConfigPtr cfg,
} }
#define VIR_QEMU_LOADER_FILE_PATH "/usr/share/OVMF/OVMF_CODE.fd" #define VIR_QEMU_OVMF_LOADER_PATH "/usr/share/AAVMF/AAVMF_CODE.fd"
#define VIR_QEMU_NVRAM_FILE_PATH "/usr/share/OVMF/OVMF_VARS.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) virQEMUDriverConfigPtr virQEMUDriverConfigNew(bool privileged)
{ {
...@@ -306,13 +308,15 @@ virQEMUDriverConfigPtr virQEMUDriverConfigNew(bool privileged) ...@@ -306,13 +308,15 @@ virQEMUDriverConfigPtr virQEMUDriverConfigNew(bool privileged)
#else #else
if (VIR_ALLOC_N(cfg->loader, 1) < 0 || if (VIR_ALLOC_N(cfg->loader, 2) < 0 ||
VIR_ALLOC_N(cfg->nvram, 1) < 0) VIR_ALLOC_N(cfg->nvram, 2) < 0)
goto error; goto error;
cfg->nloader = 1; cfg->nloader = 2;
if (VIR_STRDUP(cfg->loader[0], VIR_QEMU_LOADER_FILE_PATH) < 0 || if (VIR_STRDUP(cfg->loader[0], VIR_QEMU_OVMF_LOADER_PATH) < 0 ||
VIR_STRDUP(cfg->nvram[0], VIR_QEMU_NVRAM_FILE_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; goto error;
#endif #endif
......
...@@ -76,4 +76,5 @@ module Test_libvirtd_qemu = ...@@ -76,4 +76,5 @@ module Test_libvirtd_qemu =
{ "log_timestamp" = "0" } { "log_timestamp" = "0" }
{ "nvram" { "nvram"
{ "1" = "/usr/share/OVMF/OVMF_CODE.fd:/usr/share/OVMF/OVMF_VARS.fd" } { "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 @@ ...@@ -5,6 +5,7 @@
<arch>x86_64</arch> <arch>x86_64</arch>
<os supported='yes'> <os supported='yes'>
<loader supported='yes'> <loader supported='yes'>
<value>/usr/share/AAVMF/AAVMF_CODE.fd</value>
<value>/usr/share/OVMF/OVMF_CODE.fd</value> <value>/usr/share/OVMF/OVMF_CODE.fd</value>
<enum name='type'> <enum name='type'>
<value>rom</value> <value>rom</value>
......
...@@ -127,6 +127,7 @@ fillQemuCaps(virDomainCapsPtr domCaps, ...@@ -127,6 +127,7 @@ fillQemuCaps(virDomainCapsPtr domCaps,
VIR_FREE(loader->values.values[--loader->values.nvalues]); VIR_FREE(loader->values.values[--loader->values.nvalues]);
if (fillStringValues(&loader->values, if (fillStringValues(&loader->values,
"/usr/share/AAVMF/AAVMF_CODE.fd",
"/usr/share/OVMF/OVMF_CODE.fd", "/usr/share/OVMF/OVMF_CODE.fd",
NULL) < 0) NULL) < 0)
return -1; return -1;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册