From 5b53b2e6a1c3dc35d8da6bae772c613af4de2288a70702cb224d9724deffb5bc Mon Sep 17 00:00:00 2001 From: Joey Lee Date: Fri, 2 Dec 2022 16:49:44 +0000 Subject: [PATCH] Accepting request 1039618 from home:joeyli:branches:Virtualization Add ovmf-Revert-OvmfPkg-PlatformInitLib-dynamic-mmio-window-s.patch to avoid Page-Fault exception when booting with edk2-stable202211 ovmf. (bsc#1205978) OBS-URL: https://build.opensuse.org/request/show/1039618 OBS-URL: https://build.opensuse.org/package/show/Virtualization/ovmf?expand=0&rev=241 --- ...latformInitLib-dynamic-mmio-window-s.patch | 61 +++++++++++++++++++ ovmf.changes | 8 +++ ovmf.spec | 3 + 3 files changed, 72 insertions(+) create mode 100644 ovmf-Revert-OvmfPkg-PlatformInitLib-dynamic-mmio-window-s.patch diff --git a/ovmf-Revert-OvmfPkg-PlatformInitLib-dynamic-mmio-window-s.patch b/ovmf-Revert-OvmfPkg-PlatformInitLib-dynamic-mmio-window-s.patch new file mode 100644 index 0000000..a2e2a69 --- /dev/null +++ b/ovmf-Revert-OvmfPkg-PlatformInitLib-dynamic-mmio-window-s.patch @@ -0,0 +1,61 @@ +From 0e12a96d9f8475e164c634be9d672ca7cdb26567 Mon Sep 17 00:00:00 2001 +From: "Lee, Chun-Yi" +Date: Fri, 2 Dec 2022 20:11:45 +0800 +Subject: [PATCH] Revert "OvmfPkg/PlatformInitLib: dynamic mmio window size" + +This reverts commit ecb778d0ac62560aa172786ba19521f27bc3f650. + +Signed-off-by: Lee, Chun-Yi +--- + OvmfPkg/Library/PlatformInitLib/MemDetect.c | 28 --------------------- + 1 file changed, 28 deletions(-) + +diff --git a/OvmfPkg/Library/PlatformInitLib/MemDetect.c b/OvmfPkg/Library/PlatformInitLib/MemDetect.c +index b8feae4309..822e4aefc3 100644 +--- a/OvmfPkg/Library/PlatformInitLib/MemDetect.c ++++ b/OvmfPkg/Library/PlatformInitLib/MemDetect.c +@@ -606,33 +606,6 @@ PlatformAddressWidthFromCpuid ( + } + } + +-VOID +-EFIAPI +-PlatformDynamicMmioWindow ( +- IN OUT EFI_HOB_PLATFORM_INFO *PlatformInfoHob +- ) +-{ +- UINT64 AddrSpace, MmioSpace; +- +- AddrSpace = LShiftU64 (1, PlatformInfoHob->PhysMemAddressWidth); +- MmioSpace = LShiftU64 (1, PlatformInfoHob->PhysMemAddressWidth - 3); +- +- if ((PlatformInfoHob->PcdPciMmio64Size < MmioSpace) && +- (PlatformInfoHob->PcdPciMmio64Base + MmioSpace < AddrSpace)) +- { +- DEBUG ((DEBUG_INFO, "%a: using dynamic mmio window\n", __func__)); +- DEBUG ((DEBUG_INFO, "%a: Addr Space 0x%Lx (%Ld GB)\n", __func__, AddrSpace, RShiftU64 (AddrSpace, 30))); +- DEBUG ((DEBUG_INFO, "%a: MMIO Space 0x%Lx (%Ld GB)\n", __func__, MmioSpace, RShiftU64 (MmioSpace, 30))); +- PlatformInfoHob->PcdPciMmio64Size = MmioSpace; +- PlatformInfoHob->PcdPciMmio64Base = AddrSpace - MmioSpace; +- } else { +- DEBUG ((DEBUG_INFO, "%a: using classic mmio window\n", __func__)); +- } +- +- DEBUG ((DEBUG_INFO, "%a: Pci64 Base 0x%Lx\n", __func__, PlatformInfoHob->PcdPciMmio64Base)); +- DEBUG ((DEBUG_INFO, "%a: Pci64 Size 0x%Lx\n", __func__, PlatformInfoHob->PcdPciMmio64Size)); +-} +- + /** + Iterate over the PCI host bridges resources information optionally provided + in fw-cfg and find the highest address contained in the PCI MMIO windows. If +@@ -794,7 +767,6 @@ PlatformAddressWidthInitialization ( + if (PlatformInfoHob->PhysMemAddressWidth != 0) { + // physical address width is known + PlatformInfoHob->FirstNonAddress = FirstNonAddress; +- PlatformDynamicMmioWindow (PlatformInfoHob); + return; + } + +-- +2.35.3 + diff --git a/ovmf.changes b/ovmf.changes index d7405b1..a714607 100644 --- a/ovmf.changes +++ b/ovmf.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Fri Dec 2 12:27:15 UTC 2022 - Joey Lee + +- Add ovmf-Revert-OvmfPkg-PlatformInitLib-dynamic-mmio-window-s.patch + to avoid Page-Fault exception when booting with edk2-stable202211 + ovmf. (bsc#1205978) + - This is a revert patch for workaround problem temporary. + ------------------------------------------------------------------- Tue Nov 29 14:48:03 UTC 2022 - Joey Lee diff --git a/ovmf.spec b/ovmf.spec index dca24c0..b218e4e 100644 --- a/ovmf.spec +++ b/ovmf.spec @@ -58,6 +58,8 @@ Patch9: %{name}-Revert-UefiCpuPkg-Replace-Opcode-with-the-correspond.pat Patch10: %{name}-Revert-SourceLevelDebugPkg-Replace-Opcode-with-the-c.patch Patch11: %{name}-Revert-MdePkg-Replace-Opcode-with-the-corresponding-.patch Patch12: %{name}-Revert-MdeModulePkg-Replace-Opcode-with-the-correspo.patch +# Bug 1205978 - Got Page-Fault exception when VM is booting with edk2-stable202211 ovmf +Patch13: %{name}-Revert-OvmfPkg-PlatformInitLib-dynamic-mmio-window-s.patch BuildRequires: bc BuildRequires: cross-arm-binutils BuildRequires: cross-arm-gcc%{gcc_version} @@ -181,6 +183,7 @@ rm -rf $PKG_TO_REMOVE %patch11 -p1 %patch12 -p1 %endif +%patch13 -p1 # add openssl pushd CryptoPkg/Library/OpensslLib/openssl