Reviewed-by: Ray Ni <ray...@intel.com> > -----Original Message----- > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Kun Qin > Sent: Wednesday, January 27, 2021 3:49 AM > To: devel@edk2.groups.io > Cc: Dong, Eric <eric.d...@intel.com>; Ni, Ray <ray...@intel.com>; Laszlo > Ersek <ler...@redhat.com>; Kumar, Rahul1 > <rahul1.ku...@intel.com> > Subject: [edk2-devel] [PATCH v4 19/20] UefiCpuPkg: CpuIo2Smm: Support of > CpuIo driver under StandaloneMm > > This change adds a new CpuIo driver instance for MM_STANDALONE type. The > new driver entrypoint is implemented in a separate file to match the > interface definition of MM_STANDALONE modules. > > Cc: Eric Dong <eric.d...@intel.com> > Cc: Ray Ni <ray...@intel.com> > Cc: Laszlo Ersek <ler...@redhat.com> > Cc: Rahul Kumar <rahul1.ku...@intel.com> > > Signed-off-by: Kun Qin <ku...@outlook.com> > --- > > Notes: > v4: > - Break SMM instance abstraction and file renaming into a separate > patch [Ray] > > v3: > - Revert file name change of "CpuIo2Smm" for review and git history > concern [Laszlo] > - Break driver entrypoint into separate patch [Laszlo] > > v2: > - Removed "EFIAPI" for internal functions. > > UefiCpuPkg/CpuIo2Smm/CpuIo2StandaloneMm.c | 32 ++++++++++++++ > UefiCpuPkg/CpuIo2Smm/CpuIo2StandaloneMm.inf | 45 ++++++++++++++++++++ > UefiCpuPkg/UefiCpuPkg.dsc | 5 +++ > 3 files changed, 82 insertions(+) > > diff --git a/UefiCpuPkg/CpuIo2Smm/CpuIo2StandaloneMm.c > b/UefiCpuPkg/CpuIo2Smm/CpuIo2StandaloneMm.c > new file mode 100644 > index 000000000000..9cff4b7166db > --- /dev/null > +++ b/UefiCpuPkg/CpuIo2Smm/CpuIo2StandaloneMm.c > @@ -0,0 +1,32 @@ > +/** @file > + Produces the SMM CPU I/O Protocol. > + > +Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR> > +Copyright (c) Microsoft Corporation. > +SPDX-License-Identifier: BSD-2-Clause-Patent > + > +**/ > + > +#include <PiMm.h> > + > +#include "CpuIo2Mm.h" > + > +/** > + The module Entry Point for Standalone MM CpuIoProtocol driver > + > + @param[in] ImageHandle The firmware allocated handle for the EFI image. > + @param[in] SystemTable A pointer to the EFI System Table. > + > + @retval EFI_SUCCESS The entry point is executed successfully. > + @retval Other Some error occurs when executing this entry point. > + > +**/ > +EFI_STATUS > +EFIAPI > +StandaloneMmCpuIo2Initialize ( > + IN EFI_HANDLE ImageHandle, > + IN EFI_MM_SYSTEM_TABLE *SystemTable > + ) > +{ > + return CommonCpuIo2Initialize (); > +} > diff --git a/UefiCpuPkg/CpuIo2Smm/CpuIo2StandaloneMm.inf > b/UefiCpuPkg/CpuIo2Smm/CpuIo2StandaloneMm.inf > new file mode 100644 > index 000000000000..ec37a9d9198a > --- /dev/null > +++ b/UefiCpuPkg/CpuIo2Smm/CpuIo2StandaloneMm.inf > @@ -0,0 +1,45 @@ > +## @file > +# Produces the SMM CPU I/O 2 Protocol by using the services of the I/O > Library. > +# > +# Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR> > +# Copyright (c) Microsoft Corporation. > +# SPDX-License-Identifier: BSD-2-Clause-Patent > +# > +## > + > +[Defines] > + INF_VERSION = 0x00010005 > + BASE_NAME = CpuIo2StandaloneMm > + FILE_GUID = E3121A26-BB1C-4A18-8E23-2EA3F0412248 > + MODULE_TYPE = MM_STANDALONE > + VERSION_STRING = 1.0 > + PI_SPECIFICATION_VERSION = 0x00010032 > + ENTRY_POINT = StandaloneMmCpuIo2Initialize > + > +# > +# The following information is for reference only and not required by the > build tools. > +# > +# VALID_ARCHITECTURES = IA32 X64 > +# > + > +[Sources] > + CpuIo2StandaloneMm.c > + CpuIo2Mm.c > + CpuIo2Mm.h > + > +[Packages] > + MdePkg/MdePkg.dec > + > +[LibraryClasses] > + StandaloneMmDriverEntryPoint > + BaseLib > + DebugLib > + IoLib > + MmServicesTableLib > + BaseMemoryLib > + > +[Protocols] > + gEfiSmmCpuIo2ProtocolGuid ## PRODUCES > + > +[Depex] > + TRUE > diff --git a/UefiCpuPkg/UefiCpuPkg.dsc b/UefiCpuPkg/UefiCpuPkg.dsc > index c3c27afff88e..9128cef076dd 100644 > --- a/UefiCpuPkg/UefiCpuPkg.dsc > +++ b/UefiCpuPkg/UefiCpuPkg.dsc > @@ -38,6 +38,7 @@ [LibraryClasses] > > UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf > > UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf > > UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf > + > StandaloneMmDriverEntryPoint|MdePkg/Library/StandaloneMmDriverEntryPoint/StandaloneMmDriverEntryPoint.inf > > DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf > PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf > PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf > @@ -96,6 +97,9 @@ [LibraryClasses.common.DXE_SMM_DRIVER] > HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf > > CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/SmmCpuExceptionHandlerLib.inf > > +[LibraryClasses.common.MM_STANDALONE] > + > MmServicesTableLib|MdePkg/Library/StandaloneMmServicesTableLib/StandaloneMmServicesTableLib.inf > + > [LibraryClasses.common.UEFI_APPLICATION] > > UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf > > MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf > @@ -126,6 +130,7 @@ [Components.IA32, Components.X64] > NULL|UefiCpuPkg/Library/CpuCommonFeaturesLib/CpuCommonFeaturesLib.inf > } > UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf > + UefiCpuPkg/CpuIo2Smm/CpuIo2StandaloneMm.inf > UefiCpuPkg/CpuMpPei/CpuMpPei.inf > UefiCpuPkg/CpuS3DataDxe/CpuS3DataDxe.inf > UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib.inf > -- > 2.30.0.windows.1 > > > > >
-=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#70894): https://edk2.groups.io/g/devel/message/70894 Mute This Topic: https://groups.io/mt/80139837/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-