diff --git a/0029-OvmfPkg-Microvm-take-PcdResizeXterm-from-the-QEMU-co.patch b/0029-OvmfPkg-Microvm-take-PcdResizeXterm-from-the-QEMU-co.patch
new file mode 100644
index 0000000..a8b737d
--- /dev/null
+++ b/0029-OvmfPkg-Microvm-take-PcdResizeXterm-from-the-QEMU-co.patch
@@ -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
+
diff --git a/edk2-microvm.json b/edk2-microvm.json
new file mode 100644
index 0000000..3d5b393
--- /dev/null
+++ b/edk2-microvm.json
@@ -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": [
+    ]
+}
diff --git a/edk2.spec b/edk2.spec
index a5e38f5..ac39e33 100644
--- a/edk2.spec
+++ b/edk2.spec
@@ -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