add microvm build

Update spec file to build microvm image for fedora.
Add patch which adds rh-only PcdResizeXterm variable.
Add firmware description json file.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
Gerd Hoffmann 2021-12-02 13:24:16 +01:00
parent 93714fc441
commit ee5593d9cc
3 changed files with 60 additions and 0 deletions

View File

@ -0,0 +1,25 @@
From 9120e7cff424f37e58f305d275124126aac27fd1 Mon Sep 17 00:00:00 2001
From: Gerd Hoffmann <kraxel@redhat.com>
Date: Thu, 2 Dec 2021 14:06:18 +0100
Subject: [PATCH 1/1] OvmfPkg/Microvm: take PcdResizeXterm from the QEMU
command line (RH only)
---
OvmfPkg/Microvm/MicrovmX64.dsc | 1 +
1 file changed, 1 insertion(+)
diff --git a/OvmfPkg/Microvm/MicrovmX64.dsc b/OvmfPkg/Microvm/MicrovmX64.dsc
index 617f92539518..80a01d551f3f 100644
--- a/OvmfPkg/Microvm/MicrovmX64.dsc
+++ b/OvmfPkg/Microvm/MicrovmX64.dsc
@@ -551,6 +551,7 @@ [PcdsDynamicDefault]
# only set when
# ($(SMM_REQUIRE) == FALSE)
gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0
+ gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0
--
2.33.1

22
edk2-microvm.json Normal file
View File

@ -0,0 +1,22 @@
{
"description": "OVMF for microvm",
"interface-types": [
"uefi"
],
"mapping": {
"device": "memory",
"filename": "/usr/share/edk2/ovmf/MICROVM.fd"
},
"targets": [
{
"architecture": "x86_64",
"machines": [
"microvm"
]
}
],
"features": [
],
"tags": [
]
}

View File

@ -77,6 +77,7 @@ Source56: 50-edk2-ovmf-ia32-sb.json
Source57: 60-edk2-ovmf-ia32.json
Source58: edk2-ovmf-nosb.json
Source59: 70-edk2-arm-verbose.json
Source60: edk2-microvm.json
Patch0008: 0008-BaseTools-do-not-build-BrotliCompress-RH-only.patch
Patch0009: 0009-MdeModulePkg-remove-package-private-Brotli-include-p.patch
@ -98,6 +99,7 @@ Patch0025: 0025-CryptoPkg-OpensslLib-list-RHEL8-specific-OpenSSL-fil.patch
Patch0026: 0026-OvmfPkg-QemuKernelLoaderFsDxe-suppress-error-on-no-k.patch
Patch0027: 0027-SecurityPkg-Tcg2Dxe-suppress-error-on-no-swtpm-in-si.patch
Patch0028: 0028-OvmfPkg-MemEncryptSevLib-Check-the-guest-type-before.patch
Patch0029: 0029-OvmfPkg-Microvm-take-PcdResizeXterm-from-the-QEMU-co.patch
# Fedora specific
Patch1000: fedora-Tweak-the-tools_def-to-support-cross-compiling.patch
@ -406,6 +408,9 @@ build ${CC_FLAGS} -a AARCH64 \
%if %{defined fedora}
# build microvm
build ${OVMF_FLAGS} -a X64 -p OvmfPkg/Microvm/MicrovmX64.dsc
# build ovmf-ia32
mkdir -p ovmf-ia32
build ${OVMF_FLAGS} -a IA32 -p OvmfPkg/OvmfPkgIa32.dsc
@ -547,6 +552,12 @@ install -m 0644 edk2-aarch64-verbose.json \
%if %{defined fedora}
# install microvm
install -m 0644 Build/MicrovmX64/DEBUG_%{TOOLCHAIN}/FV/MICROVM.fd \
%{buildroot}%{_datadir}/%{name}/ovmf/MICROVM.fd
install -p -m 0644 %{_sourcedir}/edk2-microvm.json \
%{buildroot}%{_datadir}/qemu/firmware/60-edk2-ovmf-microvm.json
# Install extra x86_64 json files
install -p -m 0644 %{_sourcedir}/edk2-ovmf-nosb.json \
%{buildroot}%{_datadir}/qemu/firmware/60-edk2-ovmf-nosb.json
@ -643,7 +654,9 @@ KERNEL_IMG=$(rpm -q -l $KERNEL_PKG | egrep '^/lib/modules/[^/]+/vmlinuz$')
%{_datadir}/qemu/firmware/50-edk2-ovmf-cc.json
%{_datadir}/qemu/firmware/50-edk2-ovmf.json
%if %{defined fedora}
%{_datadir}/%{name}/ovmf/MICROVM.fd
%{_datadir}/qemu/firmware/60-edk2-ovmf-nosb.json
%{_datadir}/qemu/firmware/60-edk2-ovmf-microvm.json
%endif
# endif build_ovmf
%endif