Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Step:FrontRunner
ovmf
ovmf-bsc1199156-OvmfPkg-IncompatiblePciDeviceSu...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File ovmf-bsc1199156-OvmfPkg-IncompatiblePciDeviceSupportDxe-Ignore-Optio.patch of Package ovmf
From: "Lee, Chun-Yi" <joeyli.kernel@gmail.com> Date: Thu, 25 Aug 2022 21:39:25 +0800 Subject: [PATCH] OvmfPkg/IncompatiblePciDeviceSupportDxe: Ignore OptionRom in Sev guest Reference: https://bugzilla.tianocore.org/show_bug.cgi?id=4031 This patch is similar to the c477b2783f patch for Td guest. Host VMM may inject OptionRom which is untrusted in Sev guest. So PCI OptionRom needs to be ignored if it is Sev guest. According to "Table 20. ACPI 2.0 & 3.0 QWORD Address Space Descriptor Usage" PI spec 1.7, type-specific flags can be set to 0 when Address Translation Offset == 6 to skip device option ROM. Without this patch, Sev guest may shows invalid MMIO opcode error as following: Invalid MMIO opcode (F6) ASSERT /home/abuild/rpmbuild/BUILD/edk2-edk2-stable202202/OvmfPkg/Library/VmgExitLib/VmgExitVcHandler.c(1041): ((BOOLEAN)(0==1)) Joey Lee: Removed TdIsEnabled() from c477b2783f because we do not support it in 15-SP4 ovmf. Signed-off-by: "Lee, Chun-Yi" <jlee@suse.com> --- .../IncompatiblePciDeviceSupportDxe/IncompatiblePciDeviceSupport.c | 5 +++-- .../IncompatiblePciDeviceSupportDxe/IncompatiblePciDeviceSupport.inf | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) Index: edk2-edk2-stable202202/OvmfPkg/IncompatiblePciDeviceSupportDxe/IncompatiblePciDeviceSupport.c =================================================================== --- edk2-edk2-stable202202.orig/OvmfPkg/IncompatiblePciDeviceSupportDxe/IncompatiblePciDeviceSupport.c +++ edk2-edk2-stable202202/OvmfPkg/IncompatiblePciDeviceSupportDxe/IncompatiblePciDeviceSupport.c @@ -16,6 +16,7 @@ #include <Library/DebugLib.h> #include <Library/MemoryAllocationLib.h> +#include <Library/MemEncryptSevLib.h> #include <Library/PcdLib.h> #include <Library/UefiBootServicesTableLib.h> @@ -264,7 +265,7 @@ CheckDevice ( // // In Td guest OptionRom is not allowed. // - if (TdIsEnabled ()) { + if (MemEncryptSevIsEnabled()) { Length += sizeof mOptionRomConfiguration; } @@ -286,7 +287,7 @@ CheckDevice ( CopyMem (Ptr, &mMmio64Configuration, sizeof mMmio64Configuration); Length = sizeof mMmio64Configuration; - if (TdIsEnabled ()) { + if (MemEncryptSevIsEnabled()) { CopyMem (Ptr + Length, &mOptionRomConfiguration, sizeof mOptionRomConfiguration); Length += sizeof mOptionRomConfiguration; } Index: edk2-edk2-stable202202/OvmfPkg/IncompatiblePciDeviceSupportDxe/IncompatiblePciDeviceSupport.inf =================================================================== --- edk2-edk2-stable202202.orig/OvmfPkg/IncompatiblePciDeviceSupportDxe/IncompatiblePciDeviceSupport.inf +++ edk2-edk2-stable202202/OvmfPkg/IncompatiblePciDeviceSupportDxe/IncompatiblePciDeviceSupport.inf @@ -25,6 +25,7 @@ [LibraryClasses] DebugLib + MemEncryptSevLib MemoryAllocationLib PcdLib UefiBootServicesTableLib
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor