tools/firmware/ovmf: Use OvmfXen platform file if exist and update OVMF
authorAnthony PERARD <anthony.perard@citrix.com>
Mon, 19 Jul 2021 13:48:45 +0000 (14:48 +0100)
committerIan Jackson <iwj@xenproject.org>
Tue, 27 Jul 2021 13:26:57 +0000 (14:26 +0100)
A platform introduced in EDK II named OvmfXen is now the one to use for
Xen instead of OvmfX64. It comes with PVH support.

Also, the Xen support in OvmfX64 is deprecated,
    "deprecation notice: *dynamic* multi-VMM (QEMU vs. Xen) support in OvmfPkg"
    https://edk2.groups.io/g/devel/message/75498
and has been removed upstream.

We need to also update to a newer version of OVMF as OvmfXen in the
release "edk2-stable202105" doesn't work well with Xen, so we need the
fix b37cfdd28071 ("OvmfPkg/XenPlatformPei: Relocate shared_info page
mapping").

Also, don't set anymore the number of thread for parallel build when
building the newer platform, OvmfPkg/build.sh is now doing parallel
build by default.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Acked-by: Ian Jackson <iwj@xenproject.org>
Config.mk
tools/firmware/ovmf-makefile

index f9dce4549b7cee0fe15cdd152f66ab0bd5331322..4d723eec1d0d8e54d5bc6fdc8675aaed35c5a800 100644 (file)
--- a/Config.mk
+++ b/Config.mk
@@ -244,7 +244,7 @@ QEMU_TRADITIONAL_URL ?= git://xenbits.xen.org/qemu-xen-traditional.git
 SEABIOS_UPSTREAM_URL ?= git://xenbits.xen.org/seabios.git
 MINIOS_UPSTREAM_URL ?= git://xenbits.xen.org/mini-os.git
 endif
-OVMF_UPSTREAM_REVISION ?= e1999b264f1f9d7230edf2448f757c73da567832
+OVMF_UPSTREAM_REVISION ?= b37cfdd2807181aed2fee1e17bd7ec1190db266a
 QEMU_UPSTREAM_REVISION ?= master
 MINIOS_UPSTREAM_REVISION ?= 051b87bb9c19609976fb038f386920e1ce5454c5
 
index 55f999214545a2890688a5ac46708f19217ed074..1f619a5189933225f34822d681a930a7dbe0147f 100644 (file)
@@ -17,8 +17,14 @@ all: build
 .PHONY: build
 build:
        if test -e .git ; then $(GIT) submodule update --init --recursive ; fi
-       OvmfPkg/build.sh -a X64 -b $(TARGET) -n 4
-       cp Build/OvmfX64/$(TARGET)_GCC*/FV/OVMF.fd ovmf.bin
+       set -ex; \
+       if test -e OvmfPkg/OvmfXen.dsc; then \
+         OvmfPkg/build.sh -a X64 -b $(TARGET) -p OvmfPkg/OvmfXen.dsc; \
+         cp Build/OvmfXen/$(TARGET)_GCC*/FV/OVMF.fd ovmf.bin; \
+       else \
+         OvmfPkg/build.sh -a X64 -b $(TARGET) -n 4; \
+         cp Build/OvmfX64/$(TARGET)_GCC*/FV/OVMF.fd ovmf.bin; \
+       fi
 
 .PHONY: clean
 clean: