[libvirt/f21] Don't reject aarch64 + uefi
Cole Robinson
crobinso at fedoraproject.org
Tue Dec 2 20:21:15 UTC 2014
commit 0ceadbef5096f03ad395b046885d4cf7d98e5027
Author: Cole Robinson <crobinso at redhat.com>
Date: Tue Dec 2 15:21:18 2014 -0500
Don't reject aarch64 + uefi
...emu-Support-OVMF-on-armv7l-aarch64-guests.patch | 30 +++++++
0007-qemu-Drop-OVMF-whitelist.patch | 84 ++++++++++++++++++++
libvirt.spec | 11 +++-
3 files changed, 124 insertions(+), 1 deletions(-)
---
diff --git a/0006-qemu-Support-OVMF-on-armv7l-aarch64-guests.patch b/0006-qemu-Support-OVMF-on-armv7l-aarch64-guests.patch
new file mode 100644
index 0000000..1221b88
--- /dev/null
+++ b/0006-qemu-Support-OVMF-on-armv7l-aarch64-guests.patch
@@ -0,0 +1,30 @@
+From: Michal Privoznik <mprivozn at redhat.com>
+Date: Wed, 19 Nov 2014 16:25:56 +0100
+Subject: [PATCH] qemu: Support OVMF on armv7l aarch64 guests
+
+Currently, we are whitelisting architectures, that we know how to run
+OVMF on. So far, only x86_64 was enabled. However, looking at qemu
+code, the same commandline can be used to enable OVMF for armv7l and
+aarch64.
+
+Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
+(cherry picked from commit 6d8054b68407a3385b33c867a425ad8278b0b8f0)
+---
+ src/qemu/qemu_command.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
+index 9619d28..b12cf55 100644
+--- a/src/qemu/qemu_command.c
++++ b/src/qemu/qemu_command.c
+@@ -7571,7 +7571,9 @@ qemuBuildDomainLoaderCommandLine(virCommandPtr cmd,
+
+ case VIR_DOMAIN_LOADER_TYPE_PFLASH:
+ /* UEFI is supported only for x86_64 currently */
+- if (def->os.arch != VIR_ARCH_X86_64) {
++ if (def->os.arch != VIR_ARCH_X86_64 &&
++ def->os.arch != VIR_ARCH_ARMV7L &&
++ def->os.arch != VIR_ARCH_AARCH64) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("pflash is not supported for %s guest architecture"),
+ virArchToString(def->os.arch));
diff --git a/0007-qemu-Drop-OVMF-whitelist.patch b/0007-qemu-Drop-OVMF-whitelist.patch
new file mode 100644
index 0000000..2b73c24
--- /dev/null
+++ b/0007-qemu-Drop-OVMF-whitelist.patch
@@ -0,0 +1,84 @@
+From: Michal Privoznik <mprivozn at redhat.com>
+Date: Wed, 19 Nov 2014 18:16:12 +0100
+Subject: [PATCH] qemu: Drop OVMF whitelist
+
+As discussed on the upstream list, it's better not to make this
+kind of predictions in libvirt. It may happen that qemu learns
+how to enable OVMF on other architectures too and we shouldn't
+try to chase that.
+
+Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
+(cherry picked from commit 36148120c1c1e6ad7f4eb6f0995eb7b18ba95922)
+---
+ src/qemu/qemu_capabilities.c | 9 +++------
+ src/qemu/qemu_command.c | 10 ----------
+ 2 files changed, 3 insertions(+), 16 deletions(-)
+
+diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
+index 59a38b2..363e4e2 100644
+--- a/src/qemu/qemu_capabilities.c
++++ b/src/qemu/qemu_capabilities.c
+@@ -3627,7 +3627,6 @@ virQEMUCapsGetDefaultMachine(virQEMUCapsPtr qemuCaps)
+ static int
+ virQEMUCapsFillDomainLoaderCaps(virQEMUCapsPtr qemuCaps,
+ virDomainCapsLoaderPtr capsLoader,
+- virArch arch,
+ char **loader,
+ size_t nloader)
+ {
+@@ -3655,8 +3654,7 @@ virQEMUCapsFillDomainLoaderCaps(virQEMUCapsPtr qemuCaps,
+ VIR_DOMAIN_CAPS_ENUM_SET(capsLoader->type,
+ VIR_DOMAIN_LOADER_TYPE_ROM);
+
+- if (arch == VIR_ARCH_X86_64 &&
+- virQEMUCapsGet(qemuCaps, QEMU_CAPS_DRIVE) &&
++ if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DRIVE) &&
+ virQEMUCapsGet(qemuCaps, QEMU_CAPS_DRIVE_FORMAT))
+ VIR_DOMAIN_CAPS_ENUM_SET(capsLoader->type,
+ VIR_DOMAIN_LOADER_TYPE_PFLASH);
+@@ -3673,14 +3671,13 @@ virQEMUCapsFillDomainLoaderCaps(virQEMUCapsPtr qemuCaps,
+ static int
+ virQEMUCapsFillDomainOSCaps(virQEMUCapsPtr qemuCaps,
+ virDomainCapsOSPtr os,
+- virArch arch,
+ char **loader,
+ size_t nloader)
+ {
+ virDomainCapsLoaderPtr capsLoader = &os->loader;
+
+ os->device.supported = true;
+- if (virQEMUCapsFillDomainLoaderCaps(qemuCaps, capsLoader, arch,
++ if (virQEMUCapsFillDomainLoaderCaps(qemuCaps, capsLoader,
+ loader, nloader) < 0)
+ return -1;
+ return 0;
+@@ -3776,7 +3773,7 @@ virQEMUCapsFillDomainCaps(virDomainCapsPtr domCaps,
+
+ domCaps->maxvcpus = maxvcpus;
+
+- if (virQEMUCapsFillDomainOSCaps(qemuCaps, os, domCaps->arch,
++ if (virQEMUCapsFillDomainOSCaps(qemuCaps, os,
+ loader, nloader) < 0 ||
+ virQEMUCapsFillDomainDeviceDiskCaps(qemuCaps, disk) < 0 ||
+ virQEMUCapsFillDomainDeviceHostdevCaps(qemuCaps, hostdev) < 0)
+diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
+index b12cf55..423692e 100644
+--- a/src/qemu/qemu_command.c
++++ b/src/qemu/qemu_command.c
+@@ -7570,16 +7570,6 @@ qemuBuildDomainLoaderCommandLine(virCommandPtr cmd,
+ break;
+
+ case VIR_DOMAIN_LOADER_TYPE_PFLASH:
+- /* UEFI is supported only for x86_64 currently */
+- if (def->os.arch != VIR_ARCH_X86_64 &&
+- def->os.arch != VIR_ARCH_ARMV7L &&
+- def->os.arch != VIR_ARCH_AARCH64) {
+- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+- _("pflash is not supported for %s guest architecture"),
+- virArchToString(def->os.arch));
+- goto cleanup;
+- }
+-
+ if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DRIVE)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("this QEMU binary doesn't support -drive"));
diff --git a/libvirt.spec b/libvirt.spec
index a2b78f0..d61f861 100644
--- a/libvirt.spec
+++ b/libvirt.spec
@@ -363,7 +363,7 @@
Summary: Library providing a simple virtualization API
Name: libvirt
Version: 1.2.9.1
-Release: 1%{?dist}%{?extra_release}
+Release: 2%{?dist}%{?extra_release}
License: LGPLv2+
Group: Development/Libraries
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
@@ -380,6 +380,9 @@ Patch0002: 0002-PowerPC-Add-support-for-launching-VM-in-compat-mode.patch
Patch0003: 0003-PowerPC-Improve-PVR-handling-to-fall-back-to-cpu-gen.patch
Patch0004: 0004-docs-Add-documentation-for-compat-mode.patch
Patch0005: 0005-Test-Add-a-testcase-for-PowerPC-compat-mode-cpu-spec.patch
+# Don't reject aarch64 + uefi
+Patch0006: 0006-qemu-Support-OVMF-on-armv7l-aarch64-guests.patch
+Patch0007: 0007-qemu-Drop-OVMF-whitelist.patch
%if %{with_libvirtd}
Requires: libvirt-daemon = %{version}-%{release}
@@ -1211,6 +1214,9 @@ driver
%patch0003 -p1
%patch0004 -p1
%patch0005 -p1
+# Don't reject aarch64 + uefi
+%patch0006 -p1
+%patch0007 -p1
%build
%if ! %{with_xen}
@@ -2288,6 +2294,9 @@ exit 0
%doc examples/systemtap
%changelog
+* Tue Dec 02 2014 Cole Robinson <crobinso at redhat.com> - 1.2.9.1-2
+- Don't reject aarch64 + uefi
+
* Sat Nov 15 2014 Cole Robinson <crobinso at redhat.com> - 1.2.9.1-1
- Rebased to version 1.2.9.1
- ppc64le fixes (bz #1163439)
More information about the scm-commits
mailing list