[edk2-devel] [PATCH v4 19/20] UefiCpuPkg: CpuIo2Smm: Support of CpuIo driver under StandaloneMm
Ni, Ray
ray.ni at intel.com
Fri Jan 29 07:07:49 UTC 2021
Reviewed-by: Ray Ni <ray.ni at intel.com>
> -----Original Message-----
> From: devel at edk2.groups.io <devel at edk2.groups.io> On Behalf Of Kun Qin
> Sent: Wednesday, January 27, 2021 3:49 AM
> To: devel at edk2.groups.io
> Cc: Dong, Eric <eric.dong at intel.com>; Ni, Ray <ray.ni at intel.com>; Laszlo Ersek <lersek at redhat.com>; Kumar, Rahul1
> <rahul1.kumar at 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.dong at intel.com>
> Cc: Ray Ni <ray.ni at intel.com>
> Cc: Laszlo Ersek <lersek at redhat.com>
> Cc: Rahul Kumar <rahul1.kumar at intel.com>
>
> Signed-off-by: Kun Qin <kun.q at 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/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-
More information about the edk2-devel-archive
mailing list