Acked-by: Liming Gao <gaolim...@byosoft.com.cn> > -----邮件原件----- > 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Li, Zhihao > 发送时间: 2022年4月25日 16:47 > 收件人: devel@edk2.groups.io > 抄送: Michael D Kinney <michael.d.kin...@intel.com>; Liming Gao > <gaolim...@byosoft.com.cn>; Eric Dong <eric.d...@intel.com>; Ray Ni > <ray...@intel.com>; Michael Kubacki <mikub...@linux.microsoft.com>; > Siyuan Fu <siyuan...@intel.com> > 主题: [edk2-devel] [PATCH v2 1/1] MdePkg: add SmmCpuRendezvousLib.h > and SmmCpuRendezvousLibNull implement. > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3912 > > UefiCpuPkg define a new Protocol with the new services > SmmWaitForAllProcessor(), which can be used by SMI handler > to optionally wait for other APs to complete SMM rendezvous in > relaxed AP mode. > > VariableSmm and VariableStandaloneMM driver in MdeModulePkg need > to use this services but MdeModulePkg can't depend on UefiCpuPkg. > > Thus, the solution is moving SmmCpuRendezvouslib.h from UefiCpuPkg > to MdePkg and creating SmmCpuRendezvousLib NullLib version > implementation in MdePkg as dependency for the pkg that can't > depend on UefiCpuPkg. > > Cc: Michael D Kinney <michael.d.kin...@intel.com> > Cc: Liming Gao <gaolim...@byosoft.com.cn> > Cc: Eric Dong <eric.d...@intel.com> > Cc: Ray Ni <ray...@intel.com> > Cc: Michael Kubacki <mikub...@linux.microsoft.com> > Cc: Siyuan Fu <siyuan...@intel.com> > > Signed-off-by: Zhihao Li <zhihao...@intel.com> > --- > MdePkg/Library/SmmCpuRendezvousLibNull/SmmCpuRendezvousLibNull.c > | 29 ++++++++++++++++++++ > {UefiCpuPkg => MdePkg}/Include/Library/SmmCpuRendezvousLib.h > | 0 > MdePkg/Library/SmmCpuRendezvousLibNull/SmmCpuRendezvousLibNull.inf > | 26 ++++++++++++++++++ > MdePkg/MdeLibs.dsc.inc > | 3 +- > MdePkg/MdePkg.dec > | 5 +++- > MdePkg/MdePkg.dsc > | 3 +- > UefiCpuPkg/UefiCpuPkg.dec > | 3 -- > 7 files changed, 63 insertions(+), 6 deletions(-) > > diff --git > a/MdePkg/Library/SmmCpuRendezvousLibNull/SmmCpuRendezvousLibNull.c > b/MdePkg/Library/SmmCpuRendezvousLibNull/SmmCpuRendezvousLibNull.c > new file mode 100644 > index 000000000000..474195bbb374 > --- /dev/null > +++ > b/MdePkg/Library/SmmCpuRendezvousLibNull/SmmCpuRendezvousLibNull.c > @@ -0,0 +1,29 @@ > +/** @file > > + SMM CPU Rendezvous sevice implement. > > + > > + Copyright (c) 2022, Intel Corporation. All rights reserved.<BR> > > + SPDX-License-Identifier: BSD-2-Clause-Patent > > + > > +**/ > > + > > +#include <Library/DebugLib.h> > > +#include <Library/SmmCpuRendezvousLib.h> > > + > > +/** > > + This routine wait for all AP processors to arrive in SMM. > > + > > + @param[in] BlockingMode Blocking mode or non-blocking mode. > > + > > + @retval EFI_SUCCESS All avaiable APs arrived. > > + @retval EFI_TIMEOUT Wait for all APs until timeout. > > + @retval OTHER Fail to register SMM CPU Rendezvous service > Protocol. > > +**/ > > +EFI_STATUS > > +EFIAPI > > +SmmWaitForAllProcessor ( > > + IN BOOLEAN BlockingMode > > + ) > > +{ > > + ASSERT (FALSE); > > + return EFI_SUCCESS; > > +} > > diff --git a/UefiCpuPkg/Include/Library/SmmCpuRendezvousLib.h > b/MdePkg/Include/Library/SmmCpuRendezvousLib.h > similarity index 100% > rename from UefiCpuPkg/Include/Library/SmmCpuRendezvousLib.h > rename to MdePkg/Include/Library/SmmCpuRendezvousLib.h > diff --git > a/MdePkg/Library/SmmCpuRendezvousLibNull/SmmCpuRendezvousLibNull.i > nf > b/MdePkg/Library/SmmCpuRendezvousLibNull/SmmCpuRendezvousLibNull.i > nf > new file mode 100644 > index 000000000000..7c9bac9af2ff > --- /dev/null > +++ > b/MdePkg/Library/SmmCpuRendezvousLibNull/SmmCpuRendezvousLibNull.i > nf > @@ -0,0 +1,26 @@ > +## @file > > +# SMM CPU Rendezvous service lib. > > +# > > +# This is SMM CPU rendezvous service lib that wait for all > > +# APs to enter SMM mode. > > +# > > +# Copyright (c) 2022, Intel Corporation. All rights reserved.<BR> > > +# SPDX-License-Identifier: BSD-2-Clause-Patent > > +# > > +## > > + > > +[Defines] > > + INF_VERSION = 0x00010005 > > + BASE_NAME = SmmCpuRendezvousLibNull > > + FILE_GUID = > 1e5790ea-d013-4d7b-9047-b4342a762027 > > + MODULE_TYPE = DXE_SMM_DRIVER > > + LIBRARY_CLASS = > SmmCpuRendezvousLib|MM_STANDALONE DXE_SMM_DRIVER > > + > > +[Sources] > > + SmmCpuRendezvousLibNull.c > > + > > +[Packages] > > + MdePkg/MdePkg.dec > > + > > +[LibraryClasses] > > + DebugLib > > diff --git a/MdePkg/MdeLibs.dsc.inc b/MdePkg/MdeLibs.dsc.inc > index 3c70daf87a0c..9d7b234b8565 100644 > --- a/MdePkg/MdeLibs.dsc.inc > +++ b/MdePkg/MdeLibs.dsc.inc > @@ -5,7 +5,7 @@ > # by using "!include MdePkg/MdeLibs.dsc.inc" to specify the library > instances > > # of some EDKII basic/common library classes. > > # > > -# Copyright (c) 2021, Intel Corporation. All rights reserved.<BR> > > +# Copyright (c) 2021 - 2022, Intel Corporation. All rights reserved.<BR> > > # > > # SPDX-License-Identifier: BSD-2-Clause-Patent > > # > > @@ -13,3 +13,4 @@ > > > [LibraryClasses] > > > RegisterFilterLib|MdePkg/Library/RegisterFilterLibNull/RegisterFilterLibNull.i > nf > > + > SmmCpuRendezvousLib|MdePkg/Library/SmmCpuRendezvousLibNull/SmmC > puRendezvousLibNull.inf > > diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec > index faeb28c80cbd..f1ebf9e251c1 100644 > --- a/MdePkg/MdePkg.dec > +++ b/MdePkg/MdePkg.dec > @@ -4,7 +4,7 @@ > # It also provides the definitions(including PPIs/PROTOCOLs/GUIDs) of > > # EFI1.10/UEFI2.7/PI1.7 and some Industry Standards. > > # > > -# Copyright (c) 2007 - 2021, Intel Corporation. All rights reserved.<BR> > > +# Copyright (c) 2007 - 2022, Intel Corporation. All rights reserved.<BR> > > # Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR> > > # (C) Copyright 2016 - 2021 Hewlett Packard Enterprise Development > LP<BR> > > # > > @@ -272,6 +272,9 @@ > # > > CcProbeLib|Include/Library/CcProbeLib.h > > > > + ## @libraryclass Provides function for SMM CPU Rendezvous Library. > > + SmmCpuRendezvousLib|Include/Library/SmmCpuRendezvousLib.h > > + > > [LibraryClasses.IA32, LibraryClasses.X64, LibraryClasses.AARCH64] > > ## @libraryclass Provides services to generate random number. > > # > > diff --git a/MdePkg/MdePkg.dsc b/MdePkg/MdePkg.dsc > index c8d282882ec1..3d8874e64782 100644 > --- a/MdePkg/MdePkg.dsc > +++ b/MdePkg/MdePkg.dsc > @@ -1,7 +1,7 @@ > ## @file > > # EFI/PI MdePkg Package > > # > > -# Copyright (c) 2007 - 2021, Intel Corporation. All rights reserved.<BR> > > +# Copyright (c) 2007 - 2022, Intel Corporation. All rights reserved.<BR> > > # Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR> > > # (C) Copyright 2020 Hewlett Packard Enterprise Development LP<BR> > > # > > @@ -131,6 +131,7 @@ > > > MdePkg/Library/RegisterFilterLibNull/RegisterFilterLibNull.inf > > MdePkg/Library/CcProbeLibNull/CcProbeLibNull.inf > > + > MdePkg/Library/SmmCpuRendezvousLibNull/SmmCpuRendezvousLibNull.inf > > > > [Components.IA32, Components.X64, Components.ARM, > Components.AARCH64] > > # > > diff --git a/UefiCpuPkg/UefiCpuPkg.dec b/UefiCpuPkg/UefiCpuPkg.dec > index 525cde463435..1951eb294c6c 100644 > --- a/UefiCpuPkg/UefiCpuPkg.dec > +++ b/UefiCpuPkg/UefiCpuPkg.dec > @@ -62,9 +62,6 @@ > ## @libraryclass Provides function for loading microcode. > > MicrocodeLib|Include/Library/MicrocodeLib.h > > > > - ## @libraryclass Provides function for SMM CPU Rendezvous Library. > > - SmmCpuRendezvousLib|Include/Library/SmmCpuRendezvousLib.h > > - > > [Guids] > > gUefiCpuPkgTokenSpaceGuid = { 0xac05bf33, 0x995a, 0x4ed4, > { 0xaa, 0xb8, 0xef, 0x7a, 0xe8, 0xf, 0x5c, 0xb0 }} > > gMsegSmramGuid = { 0x5802bce4, 0xeeee, 0x4e33, > { 0xa1, 0x30, 0xeb, 0xad, 0x27, 0xf0, 0xe4, 0x39 }} > > -- > 2.26.2.windows.1 > > > > >
-=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#89339): https://edk2.groups.io/g/devel/message/89339 Mute This Topic: https://groups.io/mt/90721535/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-