From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail04.groups.io (mail04.groups.io [45.79.224.9]) by spool.mail.gandi.net (Postfix) with ESMTPS id 90B0D740038 for ; Mon, 15 Apr 2024 13:30:38 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=H08gEBIPfkfVmktfRV7skzM3ITLmTCYvgNZEbJgxrek=; c=relaxed/simple; d=groups.io; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Resent-Date:Resent-From:Reply-To:List-Unsubscribe-Post:List-Unsubscribe; s=20240206; t=1713187837; v=1; b=n8o/cPmwg121cKbyQ7MjrRI9/LuP/cGTUC/hIPiecfXx31n7QfFO9/z/Gw0ZY+C/G1DdjB7z 0Deelghsqp/C0hevXa+AAFtWiyoD96na5JO0/YTUQOtpBaLDNmx8YXw3rs6s07JGG94J6HFPAwk 6dRtxHVSv8l37jkJRc83Aw3yQ0UBv0dWs7ryuUlKBo71uAVZFQqVq9zMQ+sL+wYah95NjFBj6FF TtF1DuGAZs+YQoAy2MOkvuRxCrGEigi5tzmtdSe/8wZgu6yvDHjdYDPe5bSK+L66BMOdoI8OIQ3 ftYObEmH44rUeSjF3hR5oZatAZt5T0WoPaSN/KTtXYxWA== X-Received: by 127.0.0.2 with SMTP id t7nFYY7687511x7Bz5fSMjeB; Mon, 15 Apr 2024 06:30:37 -0700 X-Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.7]) by mx.groups.io with SMTP id smtpd.web10.21064.1713187828784399677 for ; Mon, 15 Apr 2024 06:30:36 -0700 X-CSE-ConnectionGUID: qRJL0TlSR7eL8+v84SlYiA== X-CSE-MsgGUID: az1V27sPQc2+Zkk5agt/ow== X-IronPort-AV: E=McAfee;i="6600,9927,11044"; a="33961801" X-IronPort-AV: E=Sophos;i="6.07,203,1708416000"; d="scan'208";a="33961801" X-Received: from fmviesa007.fm.intel.com ([10.60.135.147]) by fmvoesa101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Apr 2024 06:30:37 -0700 X-CSE-ConnectionGUID: iuPHfBpEQqCyIq3UWVZCrg== X-CSE-MsgGUID: OvPAr2rGRDGF1wTj90B6Qg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,203,1708416000"; d="scan'208";a="22000544" X-Received: from sh1gapp1009.ccr.corp.intel.com ([10.239.189.219]) by fmviesa007.fm.intel.com with ESMTP; 15 Apr 2024 06:30:34 -0700 From: "Wu, Jiaxin" To: devel@edk2.groups.io Cc: Ray Ni , Zeng Star , Ard Biesheuvel , Jiewen Yao , Gerd Hoffmann , Rahul Kumar Subject: [edk2-devel] [PATCH v2 04/10] OvmfPkg/SmmRelocationLib: Add library instance for OVMF Date: Mon, 15 Apr 2024 21:30:15 +0800 Message-Id: <20240415133021.10516-5-jiaxin.wu@intel.com> In-Reply-To: <20240415133021.10516-1-jiaxin.wu@intel.com> References: <20240415133021.10516-1-jiaxin.wu@intel.com> Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Resent-Date: Mon, 15 Apr 2024 06:30:36 -0700 Resent-From: jiaxin.wu@intel.com Reply-To: devel@edk2.groups.io,jiaxin.wu@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: uOd9rdL7v9gTQHjz8UCPEtsRx7686176AA= X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20240206 header.b="n8o/cPmw"; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=intel.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 45.79.224.9 as permitted sender) smtp.mailfrom=bounce@groups.io There are below 2 differences between AMD & OVMF according existing implementation: 1.The mode of the CPU check is different between the AMD & OVMF. OVMF: CpuSaveState->x86.SMMRevId & 0Xffff AMD: LMAValue = (UINT32)AsmReadMsr64 (EFER_ADDRESS) & LMA 2.Existing SmBase configuration is different between the AMD & OVMF. OVMF: AmdCpuState->x64.SMBASE = mSmBaseForAllCpus[CpuIndex]; AMD: if ((CpuSaveState->x86.SMMRevId & 0xFFFF) == 0) { CpuSaveState->x86.SMBASE = mSmBaseForAllCpus[CpuIndex]; } else { CpuSaveState->x64.SMBASE = mSmBaseForAllCpus[CpuIndex]; } This patch provides the SmmRelocationLib library instance for OVMF to handle the logic difference, and it won't change the existing implementation code logic. Cc: Ray Ni Cc: Zeng Star Cc: Ard Biesheuvel Cc: Jiewen Yao Cc: Gerd Hoffmann Cc: Rahul Kumar Signed-off-by: Jiaxin Wu --- OvmfPkg/AmdSev/AmdSevX64.dsc | 3 + OvmfPkg/CloudHv/CloudHvX64.dsc | 2 + .../Library/SmmRelocationLib/Ia32/Semaphore.c | 0 .../Library/SmmRelocationLib/Ia32/SmmInit.nasm | 0 .../SmmRelocationLib/InternalSmmRelocationLib.h | 0 .../Library/SmmRelocationLib/SmmRelocationLib.c | 0 .../Library/SmmRelocationLib/SmmRelocationLib.inf | 3 +- .../SmmRelocationLib/SmramSaveStateConfig.c | 65 +++++++--------------- .../Library/SmmRelocationLib/X64/Semaphore.c | 0 .../Library/SmmRelocationLib/X64/SmmInit.nasm | 0 OvmfPkg/Microvm/MicrovmX64.dsc | 3 + OvmfPkg/OvmfPkgIa32.dsc | 2 + OvmfPkg/OvmfPkgIa32X64.dsc | 2 + OvmfPkg/OvmfPkgX64.dsc | 1 + 14 files changed, 34 insertions(+), 47 deletions(-) copy {UefiCpuPkg => OvmfPkg}/Library/SmmRelocationLib/Ia32/Semaphore.c (100%) copy {UefiCpuPkg => OvmfPkg}/Library/SmmRelocationLib/Ia32/SmmInit.nasm (100%) copy {UefiCpuPkg => OvmfPkg}/Library/SmmRelocationLib/InternalSmmRelocationLib.h (100%) copy {UefiCpuPkg => OvmfPkg}/Library/SmmRelocationLib/SmmRelocationLib.c (100%) copy {UefiCpuPkg => OvmfPkg}/Library/SmmRelocationLib/SmmRelocationLib.inf (91%) copy UefiCpuPkg/Library/SmmRelocationLib/AmdSmramSaveStateConfig.c => OvmfPkg/Library/SmmRelocationLib/SmramSaveStateConfig.c (64%) copy {UefiCpuPkg => OvmfPkg}/Library/SmmRelocationLib/X64/Semaphore.c (100%) copy {UefiCpuPkg => OvmfPkg}/Library/SmmRelocationLib/X64/SmmInit.nasm (100%) diff --git a/OvmfPkg/AmdSev/AmdSevX64.dsc b/OvmfPkg/AmdSev/AmdSevX64.dsc index 60e916b4fd..f844268cd8 100644 --- a/OvmfPkg/AmdSev/AmdSevX64.dsc +++ b/OvmfPkg/AmdSev/AmdSevX64.dsc @@ -170,10 +170,13 @@ BlobVerifierLib|OvmfPkg/AmdSev/BlobVerifierLibSevHashes/BlobVerifierLibSevHashes.inf MemEncryptTdxLib|OvmfPkg/Library/BaseMemEncryptTdxLib/BaseMemEncryptTdxLib.inf PeiHardwareInfoLib|OvmfPkg/Library/HardwareInfoLib/PeiHardwareInfoLib.inf DxeHardwareInfoLib|OvmfPkg/Library/HardwareInfoLib/DxeHardwareInfoLib.inf ImagePropertiesRecordLib|MdeModulePkg/Library/ImagePropertiesRecordLib/ImagePropertiesRecordLib.inf +!if $(SMM_REQUIRE) == TRUE + SmmRelocationLib|OvmfPkg/Library/SmmRelocationLib/SmmRelocationLib.inf +!endif !if $(SOURCE_DEBUG_ENABLE) == TRUE PeCoffExtraActionLib|SourceLevelDebugPkg/Library/PeCoffExtraActionLibDebug/PeCoffExtraActionLibDebug.inf DebugCommunicationLib|SourceLevelDebugPkg/Library/DebugCommunicationLibSerialPort/DebugCommunicationLibSerialPort.inf !else diff --git a/OvmfPkg/CloudHv/CloudHvX64.dsc b/OvmfPkg/CloudHv/CloudHvX64.dsc index b522fa1059..918c3dff19 100644 --- a/OvmfPkg/CloudHv/CloudHvX64.dsc +++ b/OvmfPkg/CloudHv/CloudHvX64.dsc @@ -183,10 +183,12 @@ PeiHardwareInfoLib|OvmfPkg/Library/HardwareInfoLib/PeiHardwareInfoLib.inf DxeHardwareInfoLib|OvmfPkg/Library/HardwareInfoLib/DxeHardwareInfoLib.inf ImagePropertiesRecordLib|MdeModulePkg/Library/ImagePropertiesRecordLib/ImagePropertiesRecordLib.inf !if $(SMM_REQUIRE) == FALSE LockBoxLib|OvmfPkg/Library/LockBoxLib/LockBoxBaseLib.inf +!else + SmmRelocationLib|OvmfPkg/Library/SmmRelocationLib/SmmRelocationLib.inf !endif CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf FrameBufferBltLib|MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib.inf MemEncryptTdxLib|OvmfPkg/Library/BaseMemEncryptTdxLib/BaseMemEncryptTdxLib.inf diff --git a/UefiCpuPkg/Library/SmmRelocationLib/Ia32/Semaphore.c b/OvmfPkg/Library/SmmRelocationLib/Ia32/Semaphore.c similarity index 100% copy from UefiCpuPkg/Library/SmmRelocationLib/Ia32/Semaphore.c copy to OvmfPkg/Library/SmmRelocationLib/Ia32/Semaphore.c diff --git a/UefiCpuPkg/Library/SmmRelocationLib/Ia32/SmmInit.nasm b/OvmfPkg/Library/SmmRelocationLib/Ia32/SmmInit.nasm similarity index 100% copy from UefiCpuPkg/Library/SmmRelocationLib/Ia32/SmmInit.nasm copy to OvmfPkg/Library/SmmRelocationLib/Ia32/SmmInit.nasm diff --git a/UefiCpuPkg/Library/SmmRelocationLib/InternalSmmRelocationLib.h b/OvmfPkg/Library/SmmRelocationLib/InternalSmmRelocationLib.h similarity index 100% copy from UefiCpuPkg/Library/SmmRelocationLib/InternalSmmRelocationLib.h copy to OvmfPkg/Library/SmmRelocationLib/InternalSmmRelocationLib.h diff --git a/UefiCpuPkg/Library/SmmRelocationLib/SmmRelocationLib.c b/OvmfPkg/Library/SmmRelocationLib/SmmRelocationLib.c similarity index 100% copy from UefiCpuPkg/Library/SmmRelocationLib/SmmRelocationLib.c copy to OvmfPkg/Library/SmmRelocationLib/SmmRelocationLib.c diff --git a/UefiCpuPkg/Library/SmmRelocationLib/SmmRelocationLib.inf b/OvmfPkg/Library/SmmRelocationLib/SmmRelocationLib.inf similarity index 91% copy from UefiCpuPkg/Library/SmmRelocationLib/SmmRelocationLib.inf copy to OvmfPkg/Library/SmmRelocationLib/SmmRelocationLib.inf index 6581fa2dad..5ed0f5e93c 100644 --- a/UefiCpuPkg/Library/SmmRelocationLib/SmmRelocationLib.inf +++ b/OvmfPkg/Library/SmmRelocationLib/SmmRelocationLib.inf @@ -13,11 +13,11 @@ ## [Defines] INF_VERSION = 0x00010005 BASE_NAME = SmmRelocationLib - FILE_GUID = 853E97B3-790C-4EA3-945C-8F622FC47FE8 + FILE_GUID = 51834F51-CCE0-4743-B553-935D0C8A53FF MODULE_TYPE = PEIM VERSION_STRING = 1.0 LIBRARY_CLASS = SmmRelocationLib [Sources] @@ -40,11 +40,10 @@ [LibraryClasses] BaseLib BaseMemoryLib CpuExceptionHandlerLib - CpuLib DebugLib HobLib LocalApicLib MemoryAllocationLib PcdLib diff --git a/UefiCpuPkg/Library/SmmRelocationLib/AmdSmramSaveStateConfig.c b/OvmfPkg/Library/SmmRelocationLib/SmramSaveStateConfig.c similarity index 64% copy from UefiCpuPkg/Library/SmmRelocationLib/AmdSmramSaveStateConfig.c copy to OvmfPkg/Library/SmmRelocationLib/SmramSaveStateConfig.c index 95a1ce8d46..505b1d694a 100644 --- a/UefiCpuPkg/Library/SmmRelocationLib/AmdSmramSaveStateConfig.c +++ b/OvmfPkg/Library/SmmRelocationLib/SmramSaveStateConfig.c @@ -1,43 +1,15 @@ /** @file Config SMRAM Save State for SmmBases Relocation. - Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.
Copyright (c) 2024, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #include "InternalSmmRelocationLib.h" #include -#define EFER_ADDRESS 0XC0000080ul - -/** - Determine the mode of the CPU at the time an SMI occurs - - @retval EFI_MM_SAVE_STATE_REGISTER_LMA_32BIT 32 bit. - @retval EFI_MM_SAVE_STATE_REGISTER_LMA_64BIT 64 bit. - -**/ -UINT8 -CheckMmSaveStateRegisterLma ( - VOID - ) -{ - UINT8 SmmSaveStateRegisterLma; - UINT32 LMAValue; - - SmmSaveStateRegisterLma = EFI_SMM_SAVE_STATE_REGISTER_LMA_32BIT; - - LMAValue = (UINT32)AsmReadMsr64 (EFER_ADDRESS) & LMA; - if (LMAValue) { - SmmSaveStateRegisterLma = EFI_SMM_SAVE_STATE_REGISTER_LMA_64BIT; - } - - return SmmSaveStateRegisterLma; -} - /** This function configures the SmBase on the currently executing CPU. @param[in] CpuIndex The index of the CPU. @param[in,out] CpuState Pointer to SMRAM Save State Map for the @@ -50,15 +22,19 @@ EFIAPI ConfigureSmBase ( IN UINTN CpuIndex, IN OUT SMRAM_SAVE_STATE_MAP *CpuState ) { - AMD_SMRAM_SAVE_STATE_MAP *AmdCpuState; + AMD_SMRAM_SAVE_STATE_MAP *CpuSaveState; - AmdCpuState = (AMD_SMRAM_SAVE_STATE_MAP *)CpuState; + CpuSaveState = (AMD_SMRAM_SAVE_STATE_MAP *)CpuState; - AmdCpuState->x64.SMBASE = (UINT32)mSmBaseForAllCpus[CpuIndex]; + if ((CpuSaveState->x86.SMMRevId & 0xFFFF) == 0) { + CpuSaveState->x86.SMBASE = (UINT32)mSmBaseForAllCpus[CpuIndex]; + } else { + CpuSaveState->x64.SMBASE = (UINT32)mSmBaseForAllCpus[CpuIndex]; + } } /** This function updates the SMRAM save state on the currently executing CPU to resume execution at a specific address after an RSM instruction. This @@ -95,38 +71,37 @@ HookReturnFromSmm ( IN UINT64 NewInstructionPointer32, IN UINT64 NewInstructionPointer ) { UINT64 OriginalInstructionPointer; - AMD_SMRAM_SAVE_STATE_MAP *AmdCpuState; - - AmdCpuState = (AMD_SMRAM_SAVE_STATE_MAP *)CpuState; + AMD_SMRAM_SAVE_STATE_MAP *CpuSaveState; - if (CheckMmSaveStateRegisterLma () == EFI_MM_SAVE_STATE_REGISTER_LMA_32BIT) { - OriginalInstructionPointer = (UINT64)AmdCpuState->x86._EIP; - AmdCpuState->x86._EIP = (UINT32)NewInstructionPointer; + CpuSaveState = (AMD_SMRAM_SAVE_STATE_MAP *)CpuState; + if ((CpuSaveState->x86.SMMRevId & 0xFFFF) == 0) { + OriginalInstructionPointer = (UINT64)CpuSaveState->x86._EIP; + CpuSaveState->x86._EIP = (UINT32)NewInstructionPointer; // // Clear the auto HALT restart flag so the RSM instruction returns // program control to the instruction following the HLT instruction. // - if ((AmdCpuState->x86.AutoHALTRestart & BIT0) != 0) { - AmdCpuState->x86.AutoHALTRestart &= ~BIT0; + if ((CpuSaveState->x86.AutoHALTRestart & BIT0) != 0) { + CpuSaveState->x86.AutoHALTRestart &= ~BIT0; } } else { - OriginalInstructionPointer = AmdCpuState->x64._RIP; - if ((AmdCpuState->x64.EFER & LMA) == 0) { - AmdCpuState->x64._RIP = (UINT32)NewInstructionPointer32; + OriginalInstructionPointer = CpuSaveState->x64._RIP; + if ((CpuSaveState->x64.EFER & LMA) == 0) { + CpuSaveState->x64._RIP = (UINT32)NewInstructionPointer32; } else { - AmdCpuState->x64._RIP = (UINT32)NewInstructionPointer; + CpuSaveState->x64._RIP = (UINT32)NewInstructionPointer; } // // Clear the auto HALT restart flag so the RSM instruction returns // program control to the instruction following the HLT instruction. // - if ((AmdCpuState->x64.AutoHALTRestart & BIT0) != 0) { - AmdCpuState->x64.AutoHALTRestart &= ~BIT0; + if ((CpuSaveState->x64.AutoHALTRestart & BIT0) != 0) { + CpuSaveState->x64.AutoHALTRestart &= ~BIT0; } } return OriginalInstructionPointer; } diff --git a/UefiCpuPkg/Library/SmmRelocationLib/X64/Semaphore.c b/OvmfPkg/Library/SmmRelocationLib/X64/Semaphore.c similarity index 100% copy from UefiCpuPkg/Library/SmmRelocationLib/X64/Semaphore.c copy to OvmfPkg/Library/SmmRelocationLib/X64/Semaphore.c diff --git a/UefiCpuPkg/Library/SmmRelocationLib/X64/SmmInit.nasm b/OvmfPkg/Library/SmmRelocationLib/X64/SmmInit.nasm similarity index 100% copy from UefiCpuPkg/Library/SmmRelocationLib/X64/SmmInit.nasm copy to OvmfPkg/Library/SmmRelocationLib/X64/SmmInit.nasm diff --git a/OvmfPkg/Microvm/MicrovmX64.dsc b/OvmfPkg/Microvm/MicrovmX64.dsc index 2c6bb83beb..91d64cb3f8 100644 --- a/OvmfPkg/Microvm/MicrovmX64.dsc +++ b/OvmfPkg/Microvm/MicrovmX64.dsc @@ -189,10 +189,13 @@ FrameBufferBltLib|MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib.inf MemEncryptTdxLib|OvmfPkg/Library/BaseMemEncryptTdxLib/BaseMemEncryptTdxLib.inf PeiHardwareInfoLib|OvmfPkg/Library/HardwareInfoLib/PeiHardwareInfoLib.inf DxeHardwareInfoLib|OvmfPkg/Library/HardwareInfoLib/DxeHardwareInfoLib.inf ImagePropertiesRecordLib|MdeModulePkg/Library/ImagePropertiesRecordLib/ImagePropertiesRecordLib.inf +!if $(SMM_REQUIRE) == TRUE + SmmRelocationLib|OvmfPkg/Library/SmmRelocationLib/SmmRelocationLib.inf +!endif !if $(SOURCE_DEBUG_ENABLE) == TRUE PeCoffExtraActionLib|SourceLevelDebugPkg/Library/PeCoffExtraActionLibDebug/PeCoffExtraActionLibDebug.inf DebugCommunicationLib|SourceLevelDebugPkg/Library/DebugCommunicationLibSerialPort/DebugCommunicationLibSerialPort.inf !else diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc index 713f08764b..5cee69f6b5 100644 --- a/OvmfPkg/OvmfPkgIa32.dsc +++ b/OvmfPkg/OvmfPkgIa32.dsc @@ -188,10 +188,12 @@ PeiHardwareInfoLib|OvmfPkg/Library/HardwareInfoLib/PeiHardwareInfoLib.inf DxeHardwareInfoLib|OvmfPkg/Library/HardwareInfoLib/DxeHardwareInfoLib.inf ImagePropertiesRecordLib|MdeModulePkg/Library/ImagePropertiesRecordLib/ImagePropertiesRecordLib.inf !if $(SMM_REQUIRE) == FALSE LockBoxLib|OvmfPkg/Library/LockBoxLib/LockBoxBaseLib.inf +!else + SmmRelocationLib|OvmfPkg/Library/SmmRelocationLib/SmmRelocationLib.inf !endif CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf FrameBufferBltLib|MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib.inf !if $(SOURCE_DEBUG_ENABLE) == TRUE diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc index 90b15dc270..b4e1b5d1f7 100644 --- a/OvmfPkg/OvmfPkgIa32X64.dsc +++ b/OvmfPkg/OvmfPkgIa32X64.dsc @@ -193,10 +193,12 @@ PeiHardwareInfoLib|OvmfPkg/Library/HardwareInfoLib/PeiHardwareInfoLib.inf DxeHardwareInfoLib|OvmfPkg/Library/HardwareInfoLib/DxeHardwareInfoLib.inf ImagePropertiesRecordLib|MdeModulePkg/Library/ImagePropertiesRecordLib/ImagePropertiesRecordLib.inf !if $(SMM_REQUIRE) == FALSE LockBoxLib|OvmfPkg/Library/LockBoxLib/LockBoxBaseLib.inf +!else + SmmRelocationLib|OvmfPkg/Library/SmmRelocationLib/SmmRelocationLib.inf !endif CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf FrameBufferBltLib|MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib.inf !if $(SOURCE_DEBUG_ENABLE) == TRUE diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc index 56c920168d..38df57264f 100644 --- a/OvmfPkg/OvmfPkgX64.dsc +++ b/OvmfPkg/OvmfPkgX64.dsc @@ -209,10 +209,11 @@ !if $(SMM_REQUIRE) == FALSE LockBoxLib|OvmfPkg/Library/LockBoxLib/LockBoxBaseLib.inf CcProbeLib|OvmfPkg/Library/CcProbeLib/DxeCcProbeLib.inf !else CcProbeLib|MdePkg/Library/CcProbeLibNull/CcProbeLibNull.inf + SmmRelocationLib|OvmfPkg/Library/SmmRelocationLib/SmmRelocationLib.inf !endif CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf FrameBufferBltLib|MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib.inf !if $(SOURCE_DEBUG_ENABLE) == TRUE -- 2.16.2.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#117779): https://edk2.groups.io/g/devel/message/117779 Mute This Topic: https://groups.io/mt/105535808/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=-=-=-=-=-=-=-=-=-=-=-