* Re: [edk2-devel] [edk2-platforms][PATCH v2 1/1] MinPlatformPkg/Acpi/AcpiSmm: Add Standalone MM support
[not found] <166A6D94DDC3B65B.3944@groups.io>
@ 2021-03-27 1:45 ` Michael Kubacki
2021-03-29 5:15 ` 回复: " gaoliming
2021-04-01 19:47 ` Nate DeSimone
0 siblings, 2 replies; 5+ messages in thread
From: Michael Kubacki @ 2021-03-27 1:45 UTC (permalink / raw)
To: devel, Chasel Chiu, Nate DeSimone, Liming Gao, Eric Dong
Sending a review reminder since it's been a few weeks.
Thanks,
Michael
On 3/8/2021 9:17 AM, Michael Kubacki wrote:
> From: Michael Kubacki <michael.kubacki@microsoft.com>
>
> REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3248
>
> Adds a new module called AcpiStandaloneMm that serves the same role
> as AcpiSmm but in a Standalone MM environment.
>
> This change follows a similar pattern to other changes that have
> added Standalone MM support to a SMM module. The SMM INF name and
> file path remain unaltered to allow backward compatibility and much
> of the code is shared between the driver instances with unique entry
> points for each respective module type.
>
> Cc: Chasel Chiu <chasel.chiu@intel.com>
> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
> Cc: Liming Gao <gaoliming@byosoft.com.cn>
> Cc: Eric Dong <eric.dong@intel.com>
> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
> ---
>
> Notes:
> V2 change: Add BZ link
>
> Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/{AcpiSmm.c => AcpiMm.c} | 33 +++++++++----------
> Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.c | 34 ++++++++++++++++++++
> Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiTraditionalMm.c | 34 ++++++++++++++++++++
> Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.h | 23 +++++++++++++
> Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.h | 24 --------------
> Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf | 21 ++++++------
> Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/{AcpiSmm.inf => AcpiStandaloneMm.inf} | 32 +++++++++---------
> Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc | 2 ++
> 8 files changed, 133 insertions(+), 70 deletions(-)
>
> diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.c b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.c
> similarity index 81%
> rename from Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.c
> rename to Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.c
> index 809f75d3c588..2cf559f3fe09 100644
> --- a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.c
> +++ b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.c
> @@ -1,12 +1,20 @@
> /** @file
> - Acpi Smm driver.
> + Functions shared between driver instances.
>
> Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> +Copyright (c) Microsoft Corporation.<BR>
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> **/
>
> -#include "AcpiSmm.h"
> +#include <PiMm.h>
> +#include <Library/BoardAcpiEnableLib.h>
> +#include <Library/DebugLib.h>
> +#include <Library/MmServicesTableLib.h>
> +#include <Library/PcdLib.h>
> +#include <Protocol/SmmSwDispatch2.h>
> +
> +#include "AcpiMm.h"
>
> /**
> Enable SCI
> @@ -53,20 +61,13 @@ DisableAcpiCallback (
> }
>
> /**
> - Initializes the Acpi Smm Driver
> -
> - @param[in] ImageHandle - Pointer to the loaded image protocol for this driver
> - @param[in] SystemTable - Pointer to the EFI System Table
> -
> - @retval Status - EFI_SUCCESS
> - @retval Assert, otherwise.
> + ACPI initialization logic shared between the Traditional MM and
> + Standalone MM driver instances.
>
> **/
> -EFI_STATUS
> -EFIAPI
> -InitializeAcpiSmm (
> - IN EFI_HANDLE ImageHandle,
> - IN EFI_SYSTEM_TABLE *SystemTable
> +VOID
> +InitializeAcpiMm (
> + VOID
> )
> {
> EFI_STATUS Status;
> @@ -77,7 +78,7 @@ InitializeAcpiSmm (
> //
> // Locate the ICH SMM SW dispatch protocol
> //
> - Status = gSmst->SmmLocateProtocol (&gEfiSmmSwDispatch2ProtocolGuid, NULL, (VOID**)&SwDispatch);
> + Status = gMmst->MmLocateProtocol (&gEfiSmmSwDispatch2ProtocolGuid, NULL, (VOID**) &SwDispatch);
> ASSERT_EFI_ERROR (Status);
>
> //
> @@ -103,6 +104,4 @@ InitializeAcpiSmm (
> &SwHandle
> );
> ASSERT_EFI_ERROR (Status);
> -
> - return EFI_SUCCESS;
> }
> diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.c b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.c
> new file mode 100644
> index 000000000000..f378942fdc07
> --- /dev/null
> +++ b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.c
> @@ -0,0 +1,34 @@
> +/** @file
> + Standalone MM driver for ACPI initialization.
> +
> +Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> +Copyright (c) Microsoft Corporation.<BR>
> +SPDX-License-Identifier: BSD-2-Clause-Patent
> +
> +**/
> +
> +#include <PiMm.h>
> +
> +#include "AcpiMm.h"
> +
> +/**
> + The Standalone MM driver entry point.
> +
> + @param[in] ImageHandle - Pointer to the loaded image protocol for this driver
> + @param[in] SystemTable - Pointer to the EFI MM System Table
> +
> + @retval Status - EFI_SUCCESS
> + @retval Assert, otherwise.
> +
> +**/
> +EFI_STATUS
> +EFIAPI
> +AcpiStandaloneMmEntryPoint (
> + IN EFI_HANDLE ImageHandle,
> + IN EFI_MM_SYSTEM_TABLE *MmSystemTable
> + )
> +{
> + InitializeAcpiMm ();
> +
> + return EFI_SUCCESS;
> +}
> diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiTraditionalMm.c b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiTraditionalMm.c
> new file mode 100644
> index 000000000000..9512926b9e2e
> --- /dev/null
> +++ b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiTraditionalMm.c
> @@ -0,0 +1,34 @@
> +/** @file
> + Traditional MM driver for ACPI initialization.
> +
> +Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> +Copyright (c) Microsoft Corporation.<BR>
> +SPDX-License-Identifier: BSD-2-Clause-Patent
> +
> +**/
> +
> +#include <PiMm.h>
> +
> +#include "AcpiMm.h"
> +
> +/**
> + The Traditional MM driver entry point.
> +
> + @param[in] ImageHandle - Pointer to the loaded image protocol for this driver
> + @param[in] SystemTable - Pointer to the EFI System Table
> +
> + @retval Status - EFI_SUCCESS
> + @retval Assert, otherwise.
> +
> +**/
> +EFI_STATUS
> +EFIAPI
> +AcpiTraditionalMmEntryPoint (
> + IN EFI_HANDLE ImageHandle,
> + IN EFI_SYSTEM_TABLE *SystemTable
> + )
> +{
> + InitializeAcpiMm ();
> +
> + return EFI_SUCCESS;
> +}
> diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.h b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.h
> new file mode 100644
> index 000000000000..051474b0e833
> --- /dev/null
> +++ b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.h
> @@ -0,0 +1,23 @@
> +/** @file
> + Internal header file for the ACPI MM driver.
> +
> +Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> +Copyright (c) Microsoft Corporation.<BR>
> +SPDX-License-Identifier: BSD-2-Clause-Patent
> +
> +**/
> +
> +#ifndef _ACPI_MM_H_
> +#define _ACPI_MM_H_
> +
> +/**
> + ACPI initialization logic shared between the Traditional MM and
> + Standalone MM driver instances.
> +
> +**/
> +VOID
> +InitializeAcpiMm (
> + VOID
> + );
> +
> +#endif
> diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.h b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.h
> deleted file mode 100644
> index e34ffb1b755b..000000000000
> --- a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.h
> +++ /dev/null
> @@ -1,24 +0,0 @@
> -/** @file
> - Header file for the Smm platform driver.
> -
> -Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> -SPDX-License-Identifier: BSD-2-Clause-Patent
> -
> -**/
> -
> -#ifndef _ACPI_SMM_H_
> -#define _ACPI_SMM_H_
> -
> -#include <PiSmm.h>
> -#include <Library/DebugLib.h>
> -#include <Library/HobLib.h>
> -#include <Library/IoLib.h>
> -#include <Library/PcdLib.h>
> -#include <Library/UefiBootServicesTableLib.h>
> -#include <Library/UefiLib.h>
> -#include <Library/SmmServicesTableLib.h>
> -#include <Library/BoardAcpiEnableLib.h>
> -#include <Protocol/SmmSwDispatch2.h>
> -
> -#endif
> -
> diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> index fbaf46752563..651d4a293e9b 100644
> --- a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> +++ b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> @@ -1,7 +1,8 @@
> ### @file
> -# Component information file for ACPI SMM module.
> +# Component information file for ACPI Traditional MM module.
> #
> # Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> +# Copyright (c) Microsoft Corporation.<BR>
> #
> # SPDX-License-Identifier: BSD-2-Clause-Patent
> #
> @@ -14,18 +15,15 @@ [Defines]
> VERSION_STRING = 1.0
> MODULE_TYPE = DXE_SMM_DRIVER
> PI_SPECIFICATION_VERSION = 1.20
> - ENTRY_POINT = InitializeAcpiSmm
> + ENTRY_POINT = AcpiTraditionalMmEntryPoint
>
> [LibraryClasses]
> - UefiDriverEntryPoint
> - UefiBootServicesTableLib
> + BoardAcpiEnableLib
> DebugLib
> - HobLib
> - IoLib
> + MmServicesTableLib
> PcdLib
> + UefiDriverEntryPoint
> UefiLib
> - SmmServicesTableLib
> - BoardAcpiEnableLib
>
> [Packages]
> MdePkg/MdePkg.dec
> @@ -36,13 +34,12 @@ [Pcd]
> gMinPlatformPkgTokenSpaceGuid.PcdAcpiDisableSwSmi ## CONSUMES
>
> [Sources]
> - AcpiSmm.h
> - AcpiSmm.c
> + AcpiMm.h
> + AcpiMm.c
> + AcpiTraditionalMm.c
>
> [Protocols]
> gEfiSmmSwDispatch2ProtocolGuid ## CONSUMES
>
> -[Guids]
> -
> [Depex]
> gEfiSmmSwDispatch2ProtocolGuid
> diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.inf
> similarity index 50%
> copy from Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> copy to Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.inf
> index fbaf46752563..f7d0861b512d 100644
> --- a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> +++ b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.inf
> @@ -1,7 +1,8 @@
> ### @file
> -# Component information file for ACPI SMM module.
> +# Component information file for ACPI Standalone MM module.
> #
> # Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> +# Copyright (c) Microsoft Corporation.<BR>
> #
> # SPDX-License-Identifier: BSD-2-Clause-Patent
> #
> @@ -9,40 +10,37 @@
>
> [Defines]
> INF_VERSION = 0x00010017
> - BASE_NAME = AcpiSmm
> - FILE_GUID = DF9A9FFC-A075-4867-A0B2-5E7540BB023E
> + BASE_NAME = AcpiStandaloneMm
> + FILE_GUID = F113611F-DEE7-4137-8623-0168675E9F6D
> VERSION_STRING = 1.0
> - MODULE_TYPE = DXE_SMM_DRIVER
> - PI_SPECIFICATION_VERSION = 1.20
> - ENTRY_POINT = InitializeAcpiSmm
> + MODULE_TYPE = MM_STANDALONE
> + PI_SPECIFICATION_VERSION = 0x00010032
> + ENTRY_POINT = AcpiStandaloneMmEntryPoint
>
> [LibraryClasses]
> - UefiDriverEntryPoint
> - UefiBootServicesTableLib
> + BoardAcpiEnableLib
> DebugLib
> - HobLib
> - IoLib
> + MmServicesTableLib
> PcdLib
> - UefiLib
> - SmmServicesTableLib
> - BoardAcpiEnableLib
> + StandaloneMmDriverEntryPoint
>
> [Packages]
> MdePkg/MdePkg.dec
> MinPlatformPkg/MinPlatformPkg.dec
>
> +# Note: All PCDs consumed in the Standalone MM instance must be either FixedAtBuild
> +# or PatchableInModule
> [Pcd]
> gMinPlatformPkgTokenSpaceGuid.PcdAcpiEnableSwSmi ## CONSUMES
> gMinPlatformPkgTokenSpaceGuid.PcdAcpiDisableSwSmi ## CONSUMES
>
> [Sources]
> - AcpiSmm.h
> - AcpiSmm.c
> + AcpiMm.h
> + AcpiMm.c
> + AcpiStandaloneMm.c
>
> [Protocols]
> gEfiSmmSwDispatch2ProtocolGuid ## CONSUMES
>
> -[Guids]
> -
> [Depex]
> gEfiSmmSwDispatch2ProtocolGuid
> diff --git a/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc b/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
> index 0460fd5a3206..998ee7909568 100644
> --- a/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
> +++ b/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
> @@ -117,6 +117,7 @@ [LibraryClasses.common.MM_STANDALONE]
> DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
> MemoryAllocationLib|StandaloneMmPkg/Library/StandaloneMmMemoryAllocationLib/StandaloneMmMemoryAllocationLib.inf
> MmServicesTableLib|MdePkg/Library/StandaloneMmServicesTableLib/StandaloneMmServicesTableLib.inf
> + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
> SpiFlashCommonLib|MinPlatformPkg/Flash/Library/SpiFlashCommonLibNull/SpiFlashCommonLibNull.inf
> StandaloneMmDriverEntryPoint|MdePkg/Library/StandaloneMmDriverEntryPoint/StandaloneMmDriverEntryPoint.inf
>
> @@ -147,6 +148,7 @@ [Components]
>
> MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.inf
> MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> + MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.inf
> MinPlatformPkg/Acpi/Library/DxeAslUpdateLib/DxeAslUpdateLib.inf
> MinPlatformPkg/Acpi/Library/BoardAcpiLibNull/BoardAcpiEnableLibNull.inf
> MinPlatformPkg/Acpi/Library/BoardAcpiLibNull/BoardAcpiTableLibNull.inf
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* 回复: [edk2-devel] [edk2-platforms][PATCH v2 1/1] MinPlatformPkg/Acpi/AcpiSmm: Add Standalone MM support
2021-03-27 1:45 ` [edk2-devel] [edk2-platforms][PATCH v2 1/1] MinPlatformPkg/Acpi/AcpiSmm: Add Standalone MM support Michael Kubacki
@ 2021-03-29 5:15 ` gaoliming
2021-04-01 19:47 ` Nate DeSimone
1 sibling, 0 replies; 5+ messages in thread
From: gaoliming @ 2021-03-29 5:15 UTC (permalink / raw)
To: devel, mikuback, 'Chasel Chiu', 'Nate DeSimone',
'Eric Dong'
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
> -----邮件原件-----
> 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Michael
> Kubacki
> 发送时间: 2021年3月27日 9:45
> 收件人: devel@edk2.groups.io; Chasel Chiu <chasel.chiu@intel.com>; Nate
> DeSimone <nathaniel.l.desimone@intel.com>; Liming Gao
> <gaoliming@byosoft.com.cn>; Eric Dong <eric.dong@intel.com>
> 主题: Re: [edk2-devel] [edk2-platforms][PATCH v2 1/1]
> MinPlatformPkg/Acpi/AcpiSmm: Add Standalone MM support
>
> Sending a review reminder since it's been a few weeks.
>
> Thanks,
> Michael
>
> On 3/8/2021 9:17 AM, Michael Kubacki wrote:
> > From: Michael Kubacki <michael.kubacki@microsoft.com>
> >
> > REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3248
> >
> > Adds a new module called AcpiStandaloneMm that serves the same role
> > as AcpiSmm but in a Standalone MM environment.
> >
> > This change follows a similar pattern to other changes that have
> > added Standalone MM support to a SMM module. The SMM INF name and
> > file path remain unaltered to allow backward compatibility and much
> > of the code is shared between the driver instances with unique entry
> > points for each respective module type.
> >
> > Cc: Chasel Chiu <chasel.chiu@intel.com>
> > Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
> > Cc: Liming Gao <gaoliming@byosoft.com.cn>
> > Cc: Eric Dong <eric.dong@intel.com>
> > Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
> > ---
> >
> > Notes:
> > V2 change: Add BZ link
> >
> > Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/{AcpiSmm.c => AcpiMm.c}
> | 33 +++++++++----------
> > Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.c
> | 34 ++++++++++++++++++++
> > Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiTraditionalMm.c
> | 34 ++++++++++++++++++++
> > Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.h
> | 23 +++++++++++++
> > Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.h
> | 24 --------------
> > Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> | 21 ++++++------
> > Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/{AcpiSmm.inf =>
> AcpiStandaloneMm.inf} | 32 +++++++++---------
> > Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
> | 2 ++
> > 8 files changed, 133 insertions(+), 70 deletions(-)
> >
> > diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.c
> b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.c
> > similarity index 81%
> > rename from Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.c
> > rename to Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.c
> > index 809f75d3c588..2cf559f3fe09 100644
> > --- a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.c
> > +++ b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.c
> > @@ -1,12 +1,20 @@
> > /** @file
> > - Acpi Smm driver.
> > + Functions shared between driver instances.
> >
> > Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> > +Copyright (c) Microsoft Corporation.<BR>
> > SPDX-License-Identifier: BSD-2-Clause-Patent
> >
> > **/
> >
> > -#include "AcpiSmm.h"
> > +#include <PiMm.h>
> > +#include <Library/BoardAcpiEnableLib.h>
> > +#include <Library/DebugLib.h>
> > +#include <Library/MmServicesTableLib.h>
> > +#include <Library/PcdLib.h>
> > +#include <Protocol/SmmSwDispatch2.h>
> > +
> > +#include "AcpiMm.h"
> >
> > /**
> > Enable SCI
> > @@ -53,20 +61,13 @@ DisableAcpiCallback (
> > }
> >
> > /**
> > - Initializes the Acpi Smm Driver
> > -
> > - @param[in] ImageHandle - Pointer to the loaded image protocol for
> this driver
> > - @param[in] SystemTable - Pointer to the EFI System Table
> > -
> > - @retval Status - EFI_SUCCESS
> > - @retval Assert, otherwise.
> > + ACPI initialization logic shared between the Traditional MM and
> > + Standalone MM driver instances.
> >
> > **/
> > -EFI_STATUS
> > -EFIAPI
> > -InitializeAcpiSmm (
> > - IN EFI_HANDLE ImageHandle,
> > - IN EFI_SYSTEM_TABLE *SystemTable
> > +VOID
> > +InitializeAcpiMm (
> > + VOID
> > )
> > {
> > EFI_STATUS Status;
> > @@ -77,7 +78,7 @@ InitializeAcpiSmm (
> > //
> > // Locate the ICH SMM SW dispatch protocol
> > //
> > - Status = gSmst->SmmLocateProtocol
> (&gEfiSmmSwDispatch2ProtocolGuid, NULL, (VOID**)&SwDispatch);
> > + Status = gMmst->MmLocateProtocol
> (&gEfiSmmSwDispatch2ProtocolGuid, NULL, (VOID**) &SwDispatch);
> > ASSERT_EFI_ERROR (Status);
> >
> > //
> > @@ -103,6 +104,4 @@ InitializeAcpiSmm (
> > &SwHandle
> > );
> > ASSERT_EFI_ERROR (Status);
> > -
> > - return EFI_SUCCESS;
> > }
> > diff --git
> a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.c
> b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.c
> > new file mode 100644
> > index 000000000000..f378942fdc07
> > --- /dev/null
> > +++ b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.c
> > @@ -0,0 +1,34 @@
> > +/** @file
> > + Standalone MM driver for ACPI initialization.
> > +
> > +Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> > +Copyright (c) Microsoft Corporation.<BR>
> > +SPDX-License-Identifier: BSD-2-Clause-Patent
> > +
> > +**/
> > +
> > +#include <PiMm.h>
> > +
> > +#include "AcpiMm.h"
> > +
> > +/**
> > + The Standalone MM driver entry point.
> > +
> > + @param[in] ImageHandle - Pointer to the loaded image protocol for
> this driver
> > + @param[in] SystemTable - Pointer to the EFI MM System Table
> > +
> > + @retval Status - EFI_SUCCESS
> > + @retval Assert, otherwise.
> > +
> > +**/
> > +EFI_STATUS
> > +EFIAPI
> > +AcpiStandaloneMmEntryPoint (
> > + IN EFI_HANDLE ImageHandle,
> > + IN EFI_MM_SYSTEM_TABLE *MmSystemTable
> > + )
> > +{
> > + InitializeAcpiMm ();
> > +
> > + return EFI_SUCCESS;
> > +}
> > diff --git
> a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiTraditionalMm.c
> b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiTraditionalMm.c
> > new file mode 100644
> > index 000000000000..9512926b9e2e
> > --- /dev/null
> > +++ b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiTraditionalMm.c
> > @@ -0,0 +1,34 @@
> > +/** @file
> > + Traditional MM driver for ACPI initialization.
> > +
> > +Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> > +Copyright (c) Microsoft Corporation.<BR>
> > +SPDX-License-Identifier: BSD-2-Clause-Patent
> > +
> > +**/
> > +
> > +#include <PiMm.h>
> > +
> > +#include "AcpiMm.h"
> > +
> > +/**
> > + The Traditional MM driver entry point.
> > +
> > + @param[in] ImageHandle - Pointer to the loaded image protocol for
> this driver
> > + @param[in] SystemTable - Pointer to the EFI System Table
> > +
> > + @retval Status - EFI_SUCCESS
> > + @retval Assert, otherwise.
> > +
> > +**/
> > +EFI_STATUS
> > +EFIAPI
> > +AcpiTraditionalMmEntryPoint (
> > + IN EFI_HANDLE ImageHandle,
> > + IN EFI_SYSTEM_TABLE *SystemTable
> > + )
> > +{
> > + InitializeAcpiMm ();
> > +
> > + return EFI_SUCCESS;
> > +}
> > diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.h
> b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.h
> > new file mode 100644
> > index 000000000000..051474b0e833
> > --- /dev/null
> > +++ b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.h
> > @@ -0,0 +1,23 @@
> > +/** @file
> > + Internal header file for the ACPI MM driver.
> > +
> > +Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> > +Copyright (c) Microsoft Corporation.<BR>
> > +SPDX-License-Identifier: BSD-2-Clause-Patent
> > +
> > +**/
> > +
> > +#ifndef _ACPI_MM_H_
> > +#define _ACPI_MM_H_
> > +
> > +/**
> > + ACPI initialization logic shared between the Traditional MM and
> > + Standalone MM driver instances.
> > +
> > +**/
> > +VOID
> > +InitializeAcpiMm (
> > + VOID
> > + );
> > +
> > +#endif
> > diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.h
> b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.h
> > deleted file mode 100644
> > index e34ffb1b755b..000000000000
> > --- a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.h
> > +++ /dev/null
> > @@ -1,24 +0,0 @@
> > -/** @file
> > - Header file for the Smm platform driver.
> > -
> > -Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> > -SPDX-License-Identifier: BSD-2-Clause-Patent
> > -
> > -**/
> > -
> > -#ifndef _ACPI_SMM_H_
> > -#define _ACPI_SMM_H_
> > -
> > -#include <PiSmm.h>
> > -#include <Library/DebugLib.h>
> > -#include <Library/HobLib.h>
> > -#include <Library/IoLib.h>
> > -#include <Library/PcdLib.h>
> > -#include <Library/UefiBootServicesTableLib.h>
> > -#include <Library/UefiLib.h>
> > -#include <Library/SmmServicesTableLib.h>
> > -#include <Library/BoardAcpiEnableLib.h>
> > -#include <Protocol/SmmSwDispatch2.h>
> > -
> > -#endif
> > -
> > diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> > index fbaf46752563..651d4a293e9b 100644
> > --- a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> > +++ b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> > @@ -1,7 +1,8 @@
> > ### @file
> > -# Component information file for ACPI SMM module.
> > +# Component information file for ACPI Traditional MM module.
> > #
> > # Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> > +# Copyright (c) Microsoft Corporation.<BR>
> > #
> > # SPDX-License-Identifier: BSD-2-Clause-Patent
> > #
> > @@ -14,18 +15,15 @@ [Defines]
> > VERSION_STRING = 1.0
> > MODULE_TYPE = DXE_SMM_DRIVER
> > PI_SPECIFICATION_VERSION = 1.20
> > - ENTRY_POINT = InitializeAcpiSmm
> > + ENTRY_POINT = AcpiTraditionalMmEntryPoint
> >
> > [LibraryClasses]
> > - UefiDriverEntryPoint
> > - UefiBootServicesTableLib
> > + BoardAcpiEnableLib
> > DebugLib
> > - HobLib
> > - IoLib
> > + MmServicesTableLib
> > PcdLib
> > + UefiDriverEntryPoint
> > UefiLib
> > - SmmServicesTableLib
> > - BoardAcpiEnableLib
> >
> > [Packages]
> > MdePkg/MdePkg.dec
> > @@ -36,13 +34,12 @@ [Pcd]
> > gMinPlatformPkgTokenSpaceGuid.PcdAcpiDisableSwSmi ##
> CONSUMES
> >
> > [Sources]
> > - AcpiSmm.h
> > - AcpiSmm.c
> > + AcpiMm.h
> > + AcpiMm.c
> > + AcpiTraditionalMm.c
> >
> > [Protocols]
> > gEfiSmmSwDispatch2ProtocolGuid ##
> CONSUMES
> >
> > -[Guids]
> > -
> > [Depex]
> > gEfiSmmSwDispatch2ProtocolGuid
> > diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.inf
> > similarity index 50%
> > copy from Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> > copy to
> Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.inf
> > index fbaf46752563..f7d0861b512d 100644
> > --- a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> > +++
> b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.inf
> > @@ -1,7 +1,8 @@
> > ### @file
> > -# Component information file for ACPI SMM module.
> > +# Component information file for ACPI Standalone MM module.
> > #
> > # Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> > +# Copyright (c) Microsoft Corporation.<BR>
> > #
> > # SPDX-License-Identifier: BSD-2-Clause-Patent
> > #
> > @@ -9,40 +10,37 @@
> >
> > [Defines]
> > INF_VERSION = 0x00010017
> > - BASE_NAME = AcpiSmm
> > - FILE_GUID =
> DF9A9FFC-A075-4867-A0B2-5E7540BB023E
> > + BASE_NAME = AcpiStandaloneMm
> > + FILE_GUID =
> F113611F-DEE7-4137-8623-0168675E9F6D
> > VERSION_STRING = 1.0
> > - MODULE_TYPE = DXE_SMM_DRIVER
> > - PI_SPECIFICATION_VERSION = 1.20
> > - ENTRY_POINT = InitializeAcpiSmm
> > + MODULE_TYPE = MM_STANDALONE
> > + PI_SPECIFICATION_VERSION = 0x00010032
> > + ENTRY_POINT = AcpiStandaloneMmEntryPoint
> >
> > [LibraryClasses]
> > - UefiDriverEntryPoint
> > - UefiBootServicesTableLib
> > + BoardAcpiEnableLib
> > DebugLib
> > - HobLib
> > - IoLib
> > + MmServicesTableLib
> > PcdLib
> > - UefiLib
> > - SmmServicesTableLib
> > - BoardAcpiEnableLib
> > + StandaloneMmDriverEntryPoint
> >
> > [Packages]
> > MdePkg/MdePkg.dec
> > MinPlatformPkg/MinPlatformPkg.dec
> >
> > +# Note: All PCDs consumed in the Standalone MM instance must be either
> FixedAtBuild
> > +# or PatchableInModule
> > [Pcd]
> > gMinPlatformPkgTokenSpaceGuid.PcdAcpiEnableSwSmi ##
> CONSUMES
> > gMinPlatformPkgTokenSpaceGuid.PcdAcpiDisableSwSmi ##
> CONSUMES
> >
> > [Sources]
> > - AcpiSmm.h
> > - AcpiSmm.c
> > + AcpiMm.h
> > + AcpiMm.c
> > + AcpiStandaloneMm.c
> >
> > [Protocols]
> > gEfiSmmSwDispatch2ProtocolGuid ##
> CONSUMES
> >
> > -[Guids]
> > -
> > [Depex]
> > gEfiSmmSwDispatch2ProtocolGuid
> > diff --git a/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
> b/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
> > index 0460fd5a3206..998ee7909568 100644
> > --- a/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
> > +++ b/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
> > @@ -117,6 +117,7 @@ [LibraryClasses.common.MM_STANDALONE]
> > DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
> >
> MemoryAllocationLib|StandaloneMmPkg/Library/StandaloneMmMemoryAllo
> cationLib/StandaloneMmMemoryAllocationLib.inf
> >
> MmServicesTableLib|MdePkg/Library/StandaloneMmServicesTableLib/Stand
> aloneMmServicesTableLib.inf
> > + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
> >
> SpiFlashCommonLib|MinPlatformPkg/Flash/Library/SpiFlashCommonLibNull/
> SpiFlashCommonLibNull.inf
> >
> StandaloneMmDriverEntryPoint|MdePkg/Library/StandaloneMmDriverEntryP
> oint/StandaloneMmDriverEntryPoint.inf
> >
> > @@ -147,6 +148,7 @@ [Components]
> >
> > MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.inf
> > MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> > + MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.inf
> > MinPlatformPkg/Acpi/Library/DxeAslUpdateLib/DxeAslUpdateLib.inf
> >
> MinPlatformPkg/Acpi/Library/BoardAcpiLibNull/BoardAcpiEnableLibNull.inf
> >
> MinPlatformPkg/Acpi/Library/BoardAcpiLibNull/BoardAcpiTableLibNull.inf
> >
>
>
>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [edk2-devel] [edk2-platforms][PATCH v2 1/1] MinPlatformPkg/Acpi/AcpiSmm: Add Standalone MM support
2021-03-27 1:45 ` [edk2-devel] [edk2-platforms][PATCH v2 1/1] MinPlatformPkg/Acpi/AcpiSmm: Add Standalone MM support Michael Kubacki
2021-03-29 5:15 ` 回复: " gaoliming
@ 2021-04-01 19:47 ` Nate DeSimone
2021-04-02 0:49 ` Michael Kubacki
1 sibling, 1 reply; 5+ messages in thread
From: Nate DeSimone @ 2021-04-01 19:47 UTC (permalink / raw)
To: devel@edk2.groups.io, mikuback@linux.microsoft.com, Chiu, Chasel,
Liming Gao, Dong, Eric
Hi Michael,
Review comments inline.
Thanks,
Nate
> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Michael
> Kubacki
> Sent: Friday, March 26, 2021 6:45 PM
> To: devel@edk2.groups.io; Chiu, Chasel <chasel.chiu@intel.com>; Desimone,
> Nathaniel L <nathaniel.l.desimone@intel.com>; Liming Gao
> <gaoliming@byosoft.com.cn>; Dong, Eric <eric.dong@intel.com>
> Subject: Re: [edk2-devel] [edk2-platforms][PATCH v2 1/1]
> MinPlatformPkg/Acpi/AcpiSmm: Add Standalone MM support
>
> Sending a review reminder since it's been a few weeks.
>
> Thanks,
> Michael
>
> On 3/8/2021 9:17 AM, Michael Kubacki wrote:
> > From: Michael Kubacki <michael.kubacki@microsoft.com>
> >
> > REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3248
> >
> > Adds a new module called AcpiStandaloneMm that serves the same role as
> > AcpiSmm but in a Standalone MM environment.
> >
> > This change follows a similar pattern to other changes that have added
> > Standalone MM support to a SMM module. The SMM INF name and file
> path
> > remain unaltered to allow backward compatibility and much of the code
> > is shared between the driver instances with unique entry points for
> > each respective module type.
> >
> > Cc: Chasel Chiu <chasel.chiu@intel.com>
> > Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
> > Cc: Liming Gao <gaoliming@byosoft.com.cn>
> > Cc: Eric Dong <eric.dong@intel.com>
> > Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
> > ---
> >
> > Notes:
> > V2 change: Add BZ link
> >
> > Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/{AcpiSmm.c => AcpiMm.c}
> | 33 +++++++++----------
> > Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.c
> | 34 ++++++++++++++++++++
> > Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiTraditionalMm.c
> | 34 ++++++++++++++++++++
> > Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.h |
> 23 +++++++++++++
> > Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.h
> | 24 --------------
> > Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> | 21 ++++++------
> > Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/{AcpiSmm.inf =>
> AcpiStandaloneMm.inf} | 32 +++++++++---------
> > Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc | 2
> ++
> > 8 files changed, 133 insertions(+), 70 deletions(-)
> >
> > diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.c
> > b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.c
> > similarity index 81%
> > rename from Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.c
> > rename to Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.c
> > index 809f75d3c588..2cf559f3fe09 100644
> > --- a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.c
> > +++ b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.c
> > @@ -1,12 +1,20 @@
> > /** @file
> > - Acpi Smm driver.
> > + Functions shared between driver instances.
> >
> > Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> > +Copyright (c) Microsoft Corporation.<BR>
> > SPDX-License-Identifier: BSD-2-Clause-Patent
> >
> > **/
> >
> > -#include "AcpiSmm.h"
> > +#include <PiMm.h>
> > +#include <Library/BoardAcpiEnableLib.h> #include <Library/DebugLib.h>
> > +#include <Library/MmServicesTableLib.h> #include <Library/PcdLib.h>
> > +#include <Protocol/SmmSwDispatch2.h>
> > +
> > +#include "AcpiMm.h"
> >
> > /**
> > Enable SCI
> > @@ -53,20 +61,13 @@ DisableAcpiCallback (
> > }
> >
> > /**
> > - Initializes the Acpi Smm Driver
> > -
> > - @param[in] ImageHandle - Pointer to the loaded image protocol for this
> driver
> > - @param[in] SystemTable - Pointer to the EFI System Table
> > -
> > - @retval Status - EFI_SUCCESS
> > - @retval Assert, otherwise.
> > + ACPI initialization logic shared between the Traditional MM and
> > + Standalone MM driver instances.
> >
> > **/
> > -EFI_STATUS
> > -EFIAPI
> > -InitializeAcpiSmm (
> > - IN EFI_HANDLE ImageHandle,
> > - IN EFI_SYSTEM_TABLE *SystemTable
> > +VOID
> > +InitializeAcpiMm (
> > + VOID
> > )
> > {
> > EFI_STATUS Status;
> > @@ -77,7 +78,7 @@ InitializeAcpiSmm (
> > //
> > // Locate the ICH SMM SW dispatch protocol
> > //
> > - Status = gSmst->SmmLocateProtocol
> (&gEfiSmmSwDispatch2ProtocolGuid,
> > NULL, (VOID**)&SwDispatch);
> > + Status = gMmst->MmLocateProtocol
> (&gEfiSmmSwDispatch2ProtocolGuid,
> > + NULL, (VOID**) &SwDispatch);
> > ASSERT_EFI_ERROR (Status);
> >
> > //
> > @@ -103,6 +104,4 @@ InitializeAcpiSmm (
> > &SwHandle
> > );
> > ASSERT_EFI_ERROR (Status);
> > -
> > - return EFI_SUCCESS;
> > }
> > diff --git
> > a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.c
> > b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.c
> > new file mode 100644
> > index 000000000000..f378942fdc07
> > --- /dev/null
> > +++
> b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.c
> > @@ -0,0 +1,34 @@
> > +/** @file
> > + Standalone MM driver for ACPI initialization.
> > +
> > +Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> > +Copyright (c) Microsoft Corporation.<BR>
> > +SPDX-License-Identifier: BSD-2-Clause-Patent
> > +
> > +**/
> > +
> > +#include <PiMm.h>
> > +
> > +#include "AcpiMm.h"
> > +
> > +/**
> > + The Standalone MM driver entry point.
> > +
> > + @param[in] ImageHandle - Pointer to the loaded image protocol for this
> driver
> > + @param[in] SystemTable - Pointer to the EFI MM System Table
> > +
> > + @retval Status - EFI_SUCCESS
> > + @retval Assert, otherwise.
> > +
> > +**/
> > +EFI_STATUS
> > +EFIAPI
> > +AcpiStandaloneMmEntryPoint (
> > + IN EFI_HANDLE ImageHandle,
> > + IN EFI_MM_SYSTEM_TABLE *MmSystemTable
> > + )
> > +{
> > + InitializeAcpiMm ();
> > +
> > + return EFI_SUCCESS;
> > +}
> > diff --git
> > a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiTraditionalMm.c
> > b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiTraditionalMm.c
> > new file mode 100644
> > index 000000000000..9512926b9e2e
> > --- /dev/null
> > +++ b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiTraditionalMm.c
> > @@ -0,0 +1,34 @@
> > +/** @file
> > + Traditional MM driver for ACPI initialization.
> > +
> > +Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> > +Copyright (c) Microsoft Corporation.<BR>
> > +SPDX-License-Identifier: BSD-2-Clause-Patent
> > +
> > +**/
> > +
> > +#include <PiMm.h>
> > +
> > +#include "AcpiMm.h"
> > +
> > +/**
> > + The Traditional MM driver entry point.
> > +
> > + @param[in] ImageHandle - Pointer to the loaded image protocol for this
> driver
> > + @param[in] SystemTable - Pointer to the EFI System Table
> > +
> > + @retval Status - EFI_SUCCESS
> > + @retval Assert, otherwise.
> > +
> > +**/
> > +EFI_STATUS
> > +EFIAPI
> > +AcpiTraditionalMmEntryPoint (
Please rename this to AcpiSmmEntryPoint(). To my knowledge the verbiage "Traditional MM" is not used anywhere else and "SMM" does a pretty good job of denoting this is the older path.
> > + IN EFI_HANDLE ImageHandle,
> > + IN EFI_SYSTEM_TABLE *SystemTable
> > + )
> > +{
> > + InitializeAcpiMm ();
> > +
> > + return EFI_SUCCESS;
> > +}
> > diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.h
> > b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.h
> > new file mode 100644
> > index 000000000000..051474b0e833
> > --- /dev/null
> > +++ b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.h
> > @@ -0,0 +1,23 @@
> > +/** @file
> > + Internal header file for the ACPI MM driver.
> > +
> > +Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> > +Copyright (c) Microsoft Corporation.<BR>
> > +SPDX-License-Identifier: BSD-2-Clause-Patent
> > +
> > +**/
> > +
> > +#ifndef _ACPI_MM_H_
> > +#define _ACPI_MM_H_
> > +
> > +/**
> > + ACPI initialization logic shared between the Traditional MM and
> > + Standalone MM driver instances.
> > +
> > +**/
> > +VOID
> > +InitializeAcpiMm (
> > + VOID
> > + );
> > +
> > +#endif
> > diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.h
> > b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.h
> > deleted file mode 100644
> > index e34ffb1b755b..000000000000
> > --- a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.h
> > +++ /dev/null
> > @@ -1,24 +0,0 @@
> > -/** @file
> > - Header file for the Smm platform driver.
> > -
> > -Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> > -SPDX-License-Identifier: BSD-2-Clause-Patent
> > -
> > -**/
> > -
> > -#ifndef _ACPI_SMM_H_
> > -#define _ACPI_SMM_H_
> > -
> > -#include <PiSmm.h>
> > -#include <Library/DebugLib.h>
> > -#include <Library/HobLib.h>
> > -#include <Library/IoLib.h>
> > -#include <Library/PcdLib.h>
> > -#include <Library/UefiBootServicesTableLib.h>
> > -#include <Library/UefiLib.h>
> > -#include <Library/SmmServicesTableLib.h> -#include
> > <Library/BoardAcpiEnableLib.h> -#include <Protocol/SmmSwDispatch2.h>
> > -
> > -#endif
> > -
> > diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> > b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> > index fbaf46752563..651d4a293e9b 100644
> > --- a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> > +++ b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> > @@ -1,7 +1,8 @@
> > ### @file
> > -# Component information file for ACPI SMM module.
> > +# Component information file for ACPI Traditional MM module.
> > #
> > # Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> > +# Copyright (c) Microsoft Corporation.<BR>
> > #
> > # SPDX-License-Identifier: BSD-2-Clause-Patent
> > #
> > @@ -14,18 +15,15 @@ [Defines]
> > VERSION_STRING = 1.0
> > MODULE_TYPE = DXE_SMM_DRIVER
> > PI_SPECIFICATION_VERSION = 1.20
> > - ENTRY_POINT = InitializeAcpiSmm
> > + ENTRY_POINT = AcpiTraditionalMmEntryPoint
> >
> > [LibraryClasses]
> > - UefiDriverEntryPoint
> > - UefiBootServicesTableLib
> > + BoardAcpiEnableLib
> > DebugLib
> > - HobLib
> > - IoLib
> > + MmServicesTableLib
> > PcdLib
> > + UefiDriverEntryPoint
> > UefiLib
> > - SmmServicesTableLib
> > - BoardAcpiEnableLib
> >
> > [Packages]
> > MdePkg/MdePkg.dec
> > @@ -36,13 +34,12 @@ [Pcd]
> > gMinPlatformPkgTokenSpaceGuid.PcdAcpiDisableSwSmi ##
> CONSUMES
> >
> > [Sources]
> > - AcpiSmm.h
> > - AcpiSmm.c
> > + AcpiMm.h
> > + AcpiMm.c
> > + AcpiTraditionalMm.c
> >
> > [Protocols]
> > gEfiSmmSwDispatch2ProtocolGuid ## CONSUMES
> >
> > -[Guids]
> > -
> > [Depex]
> > gEfiSmmSwDispatch2ProtocolGuid
> > diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> > b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.inf
> > similarity index 50%
> > copy from Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> > copy to
> > Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.inf
> > index fbaf46752563..f7d0861b512d 100644
> > --- a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> > +++
> b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.inf
> > @@ -1,7 +1,8 @@
> > ### @file
> > -# Component information file for ACPI SMM module.
> > +# Component information file for ACPI Standalone MM module.
> > #
> > # Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> > +# Copyright (c) Microsoft Corporation.<BR>
> > #
> > # SPDX-License-Identifier: BSD-2-Clause-Patent
> > #
> > @@ -9,40 +10,37 @@
> >
> > [Defines]
> > INF_VERSION = 0x00010017
> > - BASE_NAME = AcpiSmm
> > - FILE_GUID = DF9A9FFC-A075-4867-A0B2-5E7540BB023E
> > + BASE_NAME = AcpiStandaloneMm
> > + FILE_GUID = F113611F-DEE7-4137-8623-0168675E9F6D
> > VERSION_STRING = 1.0
> > - MODULE_TYPE = DXE_SMM_DRIVER
> > - PI_SPECIFICATION_VERSION = 1.20
> > - ENTRY_POINT = InitializeAcpiSmm
> > + MODULE_TYPE = MM_STANDALONE
> > + PI_SPECIFICATION_VERSION = 0x00010032
> > + ENTRY_POINT = AcpiStandaloneMmEntryPoint
> >
> > [LibraryClasses]
> > - UefiDriverEntryPoint
> > - UefiBootServicesTableLib
> > + BoardAcpiEnableLib
> > DebugLib
> > - HobLib
> > - IoLib
> > + MmServicesTableLib
> > PcdLib
> > - UefiLib
> > - SmmServicesTableLib
> > - BoardAcpiEnableLib
> > + StandaloneMmDriverEntryPoint
> >
> > [Packages]
> > MdePkg/MdePkg.dec
> > MinPlatformPkg/MinPlatformPkg.dec
> >
> > +# Note: All PCDs consumed in the Standalone MM instance must be either
> FixedAtBuild
> > +# or PatchableInModule
> > [Pcd]
> > gMinPlatformPkgTokenSpaceGuid.PcdAcpiEnableSwSmi ##
> CONSUMES
> > gMinPlatformPkgTokenSpaceGuid.PcdAcpiDisableSwSmi ##
> CONSUMES
> >
> > [Sources]
> > - AcpiSmm.h
> > - AcpiSmm.c
> > + AcpiMm.h
> > + AcpiMm.c
> > + AcpiStandaloneMm.c
> >
> > [Protocols]
> > gEfiSmmSwDispatch2ProtocolGuid ## CONSUMES
> >
> > -[Guids]
> > -
> > [Depex]
> > gEfiSmmSwDispatch2ProtocolGuid
> > diff --git a/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
> > b/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
> > index 0460fd5a3206..998ee7909568 100644
> > --- a/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
> > +++ b/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
> > @@ -117,6 +117,7 @@ [LibraryClasses.common.MM_STANDALONE]
> > DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
> >
> MemoryAllocationLib|StandaloneMmPkg/Library/StandaloneMmMemoryAll
> ocationLib/StandaloneMmMemoryAllocationLib.inf
> >
> >
> MmServicesTableLib|MdePkg/Library/StandaloneMmServicesTableLib/Stan
> dal
> > oneMmServicesTableLib.inf
> > + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
> >
> SpiFlashCommonLib|MinPlatformPkg/Flash/Library/SpiFlashCommonLibNull/
> SpiFlashCommonLibNull.inf
> >
> >
> StandaloneMmDriverEntryPoint|MdePkg/Library/StandaloneMmDriverEntry
> Poi
> > nt/StandaloneMmDriverEntryPoint.inf
> >
> > @@ -147,6 +148,7 @@ [Components]
> >
> > MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.inf
> > MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> > + MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.inf
> > MinPlatformPkg/Acpi/Library/DxeAslUpdateLib/DxeAslUpdateLib.inf
> >
> MinPlatformPkg/Acpi/Library/BoardAcpiLibNull/BoardAcpiEnableLibNull.inf
> >
> > MinPlatformPkg/Acpi/Library/BoardAcpiLibNull/BoardAcpiTableLibNull.inf
> >
>
>
>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [edk2-devel] [edk2-platforms][PATCH v2 1/1] MinPlatformPkg/Acpi/AcpiSmm: Add Standalone MM support
2021-04-01 19:47 ` Nate DeSimone
@ 2021-04-02 0:49 ` Michael Kubacki
2021-04-02 1:26 ` Nate DeSimone
0 siblings, 1 reply; 5+ messages in thread
From: Michael Kubacki @ 2021-04-02 0:49 UTC (permalink / raw)
To: Desimone, Nathaniel L, devel@edk2.groups.io, Chiu, Chasel,
Liming Gao, Dong, Eric
Hi Nate,
Reply is inline.
Thanks,
Michael
On 4/1/2021 12:47 PM, Desimone, Nathaniel L wrote:
> Hi Michael,
>
> Review comments inline.
>
> Thanks,
> Nate
>
>> -----Original Message-----
>> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Michael
>> Kubacki
>> Sent: Friday, March 26, 2021 6:45 PM
>> To: devel@edk2.groups.io; Chiu, Chasel <chasel.chiu@intel.com>; Desimone,
>> Nathaniel L <nathaniel.l.desimone@intel.com>; Liming Gao
>> <gaoliming@byosoft.com.cn>; Dong, Eric <eric.dong@intel.com>
>> Subject: Re: [edk2-devel] [edk2-platforms][PATCH v2 1/1]
>> MinPlatformPkg/Acpi/AcpiSmm: Add Standalone MM support
>>
>> Sending a review reminder since it's been a few weeks.
>>
>> Thanks,
>> Michael
>>
>> On 3/8/2021 9:17 AM, Michael Kubacki wrote:
>>> From: Michael Kubacki <michael.kubacki@microsoft.com>
>>>
>>> REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3248
>>>
>>> Adds a new module called AcpiStandaloneMm that serves the same role as
>>> AcpiSmm but in a Standalone MM environment.
>>>
>>> This change follows a similar pattern to other changes that have added
>>> Standalone MM support to a SMM module. The SMM INF name and file
>> path
>>> remain unaltered to allow backward compatibility and much of the code
>>> is shared between the driver instances with unique entry points for
>>> each respective module type.
>>>
>>> Cc: Chasel Chiu <chasel.chiu@intel.com>
>>> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
>>> Cc: Liming Gao <gaoliming@byosoft.com.cn>
>>> Cc: Eric Dong <eric.dong@intel.com>
>>> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
>>> ---
>>>
>>> Notes:
>>> V2 change: Add BZ link
>>>
>>> Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/{AcpiSmm.c => AcpiMm.c}
>> | 33 +++++++++----------
>>> Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.c
>> | 34 ++++++++++++++++++++
>>> Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiTraditionalMm.c
>> | 34 ++++++++++++++++++++
>>> Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.h |
>> 23 +++++++++++++
>>> Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.h
>> | 24 --------------
>>> Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
>> | 21 ++++++------
>>> Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/{AcpiSmm.inf =>
>> AcpiStandaloneMm.inf} | 32 +++++++++---------
>>> Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc | 2
>> ++
>>> 8 files changed, 133 insertions(+), 70 deletions(-)
>>>
>>> diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.c
>>> b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.c
>>> similarity index 81%
>>> rename from Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.c
>>> rename to Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.c
>>> index 809f75d3c588..2cf559f3fe09 100644
>>> --- a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.c
>>> +++ b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.c
>>> @@ -1,12 +1,20 @@
>>> /** @file
>>> - Acpi Smm driver.
>>> + Functions shared between driver instances.
>>>
>>> Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
>>> +Copyright (c) Microsoft Corporation.<BR>
>>> SPDX-License-Identifier: BSD-2-Clause-Patent
>>>
>>> **/
>>>
>>> -#include "AcpiSmm.h"
>>> +#include <PiMm.h>
>>> +#include <Library/BoardAcpiEnableLib.h> #include <Library/DebugLib.h>
>>> +#include <Library/MmServicesTableLib.h> #include <Library/PcdLib.h>
>>> +#include <Protocol/SmmSwDispatch2.h>
>>> +
>>> +#include "AcpiMm.h"
>>>
>>> /**
>>> Enable SCI
>>> @@ -53,20 +61,13 @@ DisableAcpiCallback (
>>> }
>>>
>>> /**
>>> - Initializes the Acpi Smm Driver
>>> -
>>> - @param[in] ImageHandle - Pointer to the loaded image protocol for this
>> driver
>>> - @param[in] SystemTable - Pointer to the EFI System Table
>>> -
>>> - @retval Status - EFI_SUCCESS
>>> - @retval Assert, otherwise.
>>> + ACPI initialization logic shared between the Traditional MM and
>>> + Standalone MM driver instances.
>>>
>>> **/
>>> -EFI_STATUS
>>> -EFIAPI
>>> -InitializeAcpiSmm (
>>> - IN EFI_HANDLE ImageHandle,
>>> - IN EFI_SYSTEM_TABLE *SystemTable
>>> +VOID
>>> +InitializeAcpiMm (
>>> + VOID
>>> )
>>> {
>>> EFI_STATUS Status;
>>> @@ -77,7 +78,7 @@ InitializeAcpiSmm (
>>> //
>>> // Locate the ICH SMM SW dispatch protocol
>>> //
>>> - Status = gSmst->SmmLocateProtocol
>> (&gEfiSmmSwDispatch2ProtocolGuid,
>>> NULL, (VOID**)&SwDispatch);
>>> + Status = gMmst->MmLocateProtocol
>> (&gEfiSmmSwDispatch2ProtocolGuid,
>>> + NULL, (VOID**) &SwDispatch);
>>> ASSERT_EFI_ERROR (Status);
>>>
>>> //
>>> @@ -103,6 +104,4 @@ InitializeAcpiSmm (
>>> &SwHandle
>>> );
>>> ASSERT_EFI_ERROR (Status);
>>> -
>>> - return EFI_SUCCESS;
>>> }
>>> diff --git
>>> a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.c
>>> b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.c
>>> new file mode 100644
>>> index 000000000000..f378942fdc07
>>> --- /dev/null
>>> +++
>> b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.c
>>> @@ -0,0 +1,34 @@
>>> +/** @file
>>> + Standalone MM driver for ACPI initialization.
>>> +
>>> +Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
>>> +Copyright (c) Microsoft Corporation.<BR>
>>> +SPDX-License-Identifier: BSD-2-Clause-Patent
>>> +
>>> +**/
>>> +
>>> +#include <PiMm.h>
>>> +
>>> +#include "AcpiMm.h"
>>> +
>>> +/**
>>> + The Standalone MM driver entry point.
>>> +
>>> + @param[in] ImageHandle - Pointer to the loaded image protocol for this
>> driver
>>> + @param[in] SystemTable - Pointer to the EFI MM System Table
>>> +
>>> + @retval Status - EFI_SUCCESS
>>> + @retval Assert, otherwise.
>>> +
>>> +**/
>>> +EFI_STATUS
>>> +EFIAPI
>>> +AcpiStandaloneMmEntryPoint (
>>> + IN EFI_HANDLE ImageHandle,
>>> + IN EFI_MM_SYSTEM_TABLE *MmSystemTable
>>> + )
>>> +{
>>> + InitializeAcpiMm ();
>>> +
>>> + return EFI_SUCCESS;
>>> +}
>>> diff --git
>>> a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiTraditionalMm.c
>>> b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiTraditionalMm.c
>>> new file mode 100644
>>> index 000000000000..9512926b9e2e
>>> --- /dev/null
>>> +++ b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiTraditionalMm.c
>>> @@ -0,0 +1,34 @@
>>> +/** @file
>>> + Traditional MM driver for ACPI initialization.
>>> +
>>> +Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
>>> +Copyright (c) Microsoft Corporation.<BR>
>>> +SPDX-License-Identifier: BSD-2-Clause-Patent
>>> +
>>> +**/
>>> +
>>> +#include <PiMm.h>
>>> +
>>> +#include "AcpiMm.h"
>>> +
>>> +/**
>>> + The Traditional MM driver entry point.
>>> +
>>> + @param[in] ImageHandle - Pointer to the loaded image protocol for this
>> driver
>>> + @param[in] SystemTable - Pointer to the EFI System Table
>>> +
>>> + @retval Status - EFI_SUCCESS
>>> + @retval Assert, otherwise.
>>> +
>>> +**/
>>> +EFI_STATUS
>>> +EFIAPI
>>> +AcpiTraditionalMmEntryPoint (
>
> Please rename this to AcpiSmmEntryPoint(). To my knowledge the verbiage "Traditional MM" is not used anywhere else and "SMM" does a pretty good job of denoting this is the older path.
>
Where exactly do you mean by anywhere else?
It has a fair amount of usage in converted modules in edk2:
-
https://github.com/tianocore/edk2/blob/master/MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerSmm.inf
-
https://github.com/tianocore/edk2/blob/master/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf
-
https://github.com/tianocore/edk2/blob/master/MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.inf
-
https://github.com/tianocore/edk2/blob/master/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf
-
https://github.com/tianocore/edk2/blob/master/SecurityPkg/Tcg/Tcg2Smm/Tcg2Smm.inf
I also used this pattern when making the
MinPlatformPkg/Flash/SpiFvbService change:
-
https://github.com/tianocore/edk2-platforms/commit/f62887cbb37e846e6768ed05d6ac55f7288388dd
I don't have a strong preference but this pattern is similar to those
changes.
>>> + IN EFI_HANDLE ImageHandle,
>>> + IN EFI_SYSTEM_TABLE *SystemTable
>>> + )
>>> +{
>>> + InitializeAcpiMm ();
>>> +
>>> + return EFI_SUCCESS;
>>> +}
>>> diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.h
>>> b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.h
>>> new file mode 100644
>>> index 000000000000..051474b0e833
>>> --- /dev/null
>>> +++ b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.h
>>> @@ -0,0 +1,23 @@
>>> +/** @file
>>> + Internal header file for the ACPI MM driver.
>>> +
>>> +Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
>>> +Copyright (c) Microsoft Corporation.<BR>
>>> +SPDX-License-Identifier: BSD-2-Clause-Patent
>>> +
>>> +**/
>>> +
>>> +#ifndef _ACPI_MM_H_
>>> +#define _ACPI_MM_H_
>>> +
>>> +/**
>>> + ACPI initialization logic shared between the Traditional MM and
>>> + Standalone MM driver instances.
>>> +
>>> +**/
>>> +VOID
>>> +InitializeAcpiMm (
>>> + VOID
>>> + );
>>> +
>>> +#endif
>>> diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.h
>>> b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.h
>>> deleted file mode 100644
>>> index e34ffb1b755b..000000000000
>>> --- a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.h
>>> +++ /dev/null
>>> @@ -1,24 +0,0 @@
>>> -/** @file
>>> - Header file for the Smm platform driver.
>>> -
>>> -Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
>>> -SPDX-License-Identifier: BSD-2-Clause-Patent
>>> -
>>> -**/
>>> -
>>> -#ifndef _ACPI_SMM_H_
>>> -#define _ACPI_SMM_H_
>>> -
>>> -#include <PiSmm.h>
>>> -#include <Library/DebugLib.h>
>>> -#include <Library/HobLib.h>
>>> -#include <Library/IoLib.h>
>>> -#include <Library/PcdLib.h>
>>> -#include <Library/UefiBootServicesTableLib.h>
>>> -#include <Library/UefiLib.h>
>>> -#include <Library/SmmServicesTableLib.h> -#include
>>> <Library/BoardAcpiEnableLib.h> -#include <Protocol/SmmSwDispatch2.h>
>>> -
>>> -#endif
>>> -
>>> diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
>>> b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
>>> index fbaf46752563..651d4a293e9b 100644
>>> --- a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
>>> +++ b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
>>> @@ -1,7 +1,8 @@
>>> ### @file
>>> -# Component information file for ACPI SMM module.
>>> +# Component information file for ACPI Traditional MM module.
>>> #
>>> # Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
>>> +# Copyright (c) Microsoft Corporation.<BR>
>>> #
>>> # SPDX-License-Identifier: BSD-2-Clause-Patent
>>> #
>>> @@ -14,18 +15,15 @@ [Defines]
>>> VERSION_STRING = 1.0
>>> MODULE_TYPE = DXE_SMM_DRIVER
>>> PI_SPECIFICATION_VERSION = 1.20
>>> - ENTRY_POINT = InitializeAcpiSmm
>>> + ENTRY_POINT = AcpiTraditionalMmEntryPoint
>>>
>>> [LibraryClasses]
>>> - UefiDriverEntryPoint
>>> - UefiBootServicesTableLib
>>> + BoardAcpiEnableLib
>>> DebugLib
>>> - HobLib
>>> - IoLib
>>> + MmServicesTableLib
>>> PcdLib
>>> + UefiDriverEntryPoint
>>> UefiLib
>>> - SmmServicesTableLib
>>> - BoardAcpiEnableLib
>>>
>>> [Packages]
>>> MdePkg/MdePkg.dec
>>> @@ -36,13 +34,12 @@ [Pcd]
>>> gMinPlatformPkgTokenSpaceGuid.PcdAcpiDisableSwSmi ##
>> CONSUMES
>>>
>>> [Sources]
>>> - AcpiSmm.h
>>> - AcpiSmm.c
>>> + AcpiMm.h
>>> + AcpiMm.c
>>> + AcpiTraditionalMm.c
>>>
>>> [Protocols]
>>> gEfiSmmSwDispatch2ProtocolGuid ## CONSUMES
>>>
>>> -[Guids]
>>> -
>>> [Depex]
>>> gEfiSmmSwDispatch2ProtocolGuid
>>> diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
>>> b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.inf
>>> similarity index 50%
>>> copy from Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
>>> copy to
>>> Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.inf
>>> index fbaf46752563..f7d0861b512d 100644
>>> --- a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
>>> +++
>> b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.inf
>>> @@ -1,7 +1,8 @@
>>> ### @file
>>> -# Component information file for ACPI SMM module.
>>> +# Component information file for ACPI Standalone MM module.
>>> #
>>> # Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
>>> +# Copyright (c) Microsoft Corporation.<BR>
>>> #
>>> # SPDX-License-Identifier: BSD-2-Clause-Patent
>>> #
>>> @@ -9,40 +10,37 @@
>>>
>>> [Defines]
>>> INF_VERSION = 0x00010017
>>> - BASE_NAME = AcpiSmm
>>> - FILE_GUID = DF9A9FFC-A075-4867-A0B2-5E7540BB023E
>>> + BASE_NAME = AcpiStandaloneMm
>>> + FILE_GUID = F113611F-DEE7-4137-8623-0168675E9F6D
>>> VERSION_STRING = 1.0
>>> - MODULE_TYPE = DXE_SMM_DRIVER
>>> - PI_SPECIFICATION_VERSION = 1.20
>>> - ENTRY_POINT = InitializeAcpiSmm
>>> + MODULE_TYPE = MM_STANDALONE
>>> + PI_SPECIFICATION_VERSION = 0x00010032
>>> + ENTRY_POINT = AcpiStandaloneMmEntryPoint
>>>
>>> [LibraryClasses]
>>> - UefiDriverEntryPoint
>>> - UefiBootServicesTableLib
>>> + BoardAcpiEnableLib
>>> DebugLib
>>> - HobLib
>>> - IoLib
>>> + MmServicesTableLib
>>> PcdLib
>>> - UefiLib
>>> - SmmServicesTableLib
>>> - BoardAcpiEnableLib
>>> + StandaloneMmDriverEntryPoint
>>>
>>> [Packages]
>>> MdePkg/MdePkg.dec
>>> MinPlatformPkg/MinPlatformPkg.dec
>>>
>>> +# Note: All PCDs consumed in the Standalone MM instance must be either
>> FixedAtBuild
>>> +# or PatchableInModule
>>> [Pcd]
>>> gMinPlatformPkgTokenSpaceGuid.PcdAcpiEnableSwSmi ##
>> CONSUMES
>>> gMinPlatformPkgTokenSpaceGuid.PcdAcpiDisableSwSmi ##
>> CONSUMES
>>>
>>> [Sources]
>>> - AcpiSmm.h
>>> - AcpiSmm.c
>>> + AcpiMm.h
>>> + AcpiMm.c
>>> + AcpiStandaloneMm.c
>>>
>>> [Protocols]
>>> gEfiSmmSwDispatch2ProtocolGuid ## CONSUMES
>>>
>>> -[Guids]
>>> -
>>> [Depex]
>>> gEfiSmmSwDispatch2ProtocolGuid
>>> diff --git a/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
>>> b/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
>>> index 0460fd5a3206..998ee7909568 100644
>>> --- a/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
>>> +++ b/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
>>> @@ -117,6 +117,7 @@ [LibraryClasses.common.MM_STANDALONE]
>>> DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
>>>
>> MemoryAllocationLib|StandaloneMmPkg/Library/StandaloneMmMemoryAll
>> ocationLib/StandaloneMmMemoryAllocationLib.inf
>>>
>>>
>> MmServicesTableLib|MdePkg/Library/StandaloneMmServicesTableLib/Stan
>> dal
>>> oneMmServicesTableLib.inf
>>> + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
>>>
>> SpiFlashCommonLib|MinPlatformPkg/Flash/Library/SpiFlashCommonLibNull/
>> SpiFlashCommonLibNull.inf
>>>
>>>
>> StandaloneMmDriverEntryPoint|MdePkg/Library/StandaloneMmDriverEntry
>> Poi
>>> nt/StandaloneMmDriverEntryPoint.inf
>>>
>>> @@ -147,6 +148,7 @@ [Components]
>>>
>>> MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.inf
>>> MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
>>> + MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.inf
>>> MinPlatformPkg/Acpi/Library/DxeAslUpdateLib/DxeAslUpdateLib.inf
>>>
>> MinPlatformPkg/Acpi/Library/BoardAcpiLibNull/BoardAcpiEnableLibNull.inf
>>>
>>> MinPlatformPkg/Acpi/Library/BoardAcpiLibNull/BoardAcpiTableLibNull.inf
>>>
>>
>>
>>
>>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [edk2-devel] [edk2-platforms][PATCH v2 1/1] MinPlatformPkg/Acpi/AcpiSmm: Add Standalone MM support
2021-04-02 0:49 ` Michael Kubacki
@ 2021-04-02 1:26 ` Nate DeSimone
0 siblings, 0 replies; 5+ messages in thread
From: Nate DeSimone @ 2021-04-02 1:26 UTC (permalink / raw)
To: Michael Kubacki, devel@edk2.groups.io, Chiu, Chasel, Liming Gao,
Dong, Eric
Hi Michael,
Reply is inline.
Thanks,
Nate
> -----Original Message-----
> From: Michael Kubacki <mikuback@linux.microsoft.com>
> Sent: Thursday, April 1, 2021 5:50 PM
> To: Desimone, Nathaniel L <nathaniel.l.desimone@intel.com>;
> devel@edk2.groups.io; Chiu, Chasel <chasel.chiu@intel.com>; Liming Gao
> <gaoliming@byosoft.com.cn>; Dong, Eric <eric.dong@intel.com>
> Subject: Re: [edk2-devel] [edk2-platforms][PATCH v2 1/1]
> MinPlatformPkg/Acpi/AcpiSmm: Add Standalone MM support
>
> Hi Nate,
>
> Reply is inline.
>
> Thanks,
> Michael
>
> On 4/1/2021 12:47 PM, Desimone, Nathaniel L wrote:
> > Hi Michael,
> >
> > Review comments inline.
> >
> > Thanks,
> > Nate
> >
> >> -----Original Message-----
> >> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of
> >> Michael Kubacki
> >> Sent: Friday, March 26, 2021 6:45 PM
> >> To: devel@edk2.groups.io; Chiu, Chasel <chasel.chiu@intel.com>;
> >> Desimone, Nathaniel L <nathaniel.l.desimone@intel.com>; Liming Gao
> >> <gaoliming@byosoft.com.cn>; Dong, Eric <eric.dong@intel.com>
> >> Subject: Re: [edk2-devel] [edk2-platforms][PATCH v2 1/1]
> >> MinPlatformPkg/Acpi/AcpiSmm: Add Standalone MM support
> >>
> >> Sending a review reminder since it's been a few weeks.
> >>
> >> Thanks,
> >> Michael
> >>
> >> On 3/8/2021 9:17 AM, Michael Kubacki wrote:
> >>> From: Michael Kubacki <michael.kubacki@microsoft.com>
> >>>
> >>> REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3248
> >>>
> >>> Adds a new module called AcpiStandaloneMm that serves the same role
> >>> as AcpiSmm but in a Standalone MM environment.
> >>>
> >>> This change follows a similar pattern to other changes that have
> >>> added Standalone MM support to a SMM module. The SMM INF name
> and
> >>> file
> >> path
> >>> remain unaltered to allow backward compatibility and much of the
> >>> code is shared between the driver instances with unique entry points
> >>> for each respective module type.
> >>>
> >>> Cc: Chasel Chiu <chasel.chiu@intel.com>
> >>> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
> >>> Cc: Liming Gao <gaoliming@byosoft.com.cn>
> >>> Cc: Eric Dong <eric.dong@intel.com>
> >>> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
> >>> ---
> >>>
> >>> Notes:
> >>> V2 change: Add BZ link
> >>>
> >>> Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/{AcpiSmm.c =>
> >>> AcpiMm.c}
> >> | 33 +++++++++----------
> >>> Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.c
> >> | 34 ++++++++++++++++++++
> >>> Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiTraditionalMm.c
> >> | 34 ++++++++++++++++++++
> >>> Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.h
> |
> >> 23 +++++++++++++
> >>> Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.h
> >> | 24 --------------
> >>> Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> >> | 21 ++++++------
> >>> Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/{AcpiSmm.inf =>
> >> AcpiStandaloneMm.inf} | 32 +++++++++---------
> >>> Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc |
> 2
> >> ++
> >>> 8 files changed, 133 insertions(+), 70 deletions(-)
> >>>
> >>> diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.c
> >>> b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.c
> >>> similarity index 81%
> >>> rename from
> Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.c
> >>> rename to Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.c
> >>> index 809f75d3c588..2cf559f3fe09 100644
> >>> --- a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.c
> >>> +++ b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.c
> >>> @@ -1,12 +1,20 @@
> >>> /** @file
> >>> - Acpi Smm driver.
> >>> + Functions shared between driver instances.
> >>>
> >>> Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> >>> +Copyright (c) Microsoft Corporation.<BR>
> >>> SPDX-License-Identifier: BSD-2-Clause-Patent
> >>>
> >>> **/
> >>>
> >>> -#include "AcpiSmm.h"
> >>> +#include <PiMm.h>
> >>> +#include <Library/BoardAcpiEnableLib.h> #include
> >>> +<Library/DebugLib.h> #include <Library/MmServicesTableLib.h>
> >>> +#include <Library/PcdLib.h> #include <Protocol/SmmSwDispatch2.h>
> >>> +
> >>> +#include "AcpiMm.h"
> >>>
> >>> /**
> >>> Enable SCI
> >>> @@ -53,20 +61,13 @@ DisableAcpiCallback (
> >>> }
> >>>
> >>> /**
> >>> - Initializes the Acpi Smm Driver
> >>> -
> >>> - @param[in] ImageHandle - Pointer to the loaded image protocol for
> this
> >> driver
> >>> - @param[in] SystemTable - Pointer to the EFI System Table
> >>> -
> >>> - @retval Status - EFI_SUCCESS
> >>> - @retval Assert, otherwise.
> >>> + ACPI initialization logic shared between the Traditional MM and
> >>> + Standalone MM driver instances.
> >>>
> >>> **/
> >>> -EFI_STATUS
> >>> -EFIAPI
> >>> -InitializeAcpiSmm (
> >>> - IN EFI_HANDLE ImageHandle,
> >>> - IN EFI_SYSTEM_TABLE *SystemTable
> >>> +VOID
> >>> +InitializeAcpiMm (
> >>> + VOID
> >>> )
> >>> {
> >>> EFI_STATUS Status;
> >>> @@ -77,7 +78,7 @@ InitializeAcpiSmm (
> >>> //
> >>> // Locate the ICH SMM SW dispatch protocol
> >>> //
> >>> - Status = gSmst->SmmLocateProtocol
> >> (&gEfiSmmSwDispatch2ProtocolGuid,
> >>> NULL, (VOID**)&SwDispatch);
> >>> + Status = gMmst->MmLocateProtocol
> >> (&gEfiSmmSwDispatch2ProtocolGuid,
> >>> + NULL, (VOID**) &SwDispatch);
> >>> ASSERT_EFI_ERROR (Status);
> >>>
> >>> //
> >>> @@ -103,6 +104,4 @@ InitializeAcpiSmm (
> >>> &SwHandle
> >>> );
> >>> ASSERT_EFI_ERROR (Status);
> >>> -
> >>> - return EFI_SUCCESS;
> >>> }
> >>> diff --git
> >>> a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.c
> >>> b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.c
> >>> new file mode 100644
> >>> index 000000000000..f378942fdc07
> >>> --- /dev/null
> >>> +++
> >> b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.c
> >>> @@ -0,0 +1,34 @@
> >>> +/** @file
> >>> + Standalone MM driver for ACPI initialization.
> >>> +
> >>> +Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> >>> +Copyright (c) Microsoft Corporation.<BR>
> >>> +SPDX-License-Identifier: BSD-2-Clause-Patent
> >>> +
> >>> +**/
> >>> +
> >>> +#include <PiMm.h>
> >>> +
> >>> +#include "AcpiMm.h"
> >>> +
> >>> +/**
> >>> + The Standalone MM driver entry point.
> >>> +
> >>> + @param[in] ImageHandle - Pointer to the loaded image protocol for
> this
> >> driver
> >>> + @param[in] SystemTable - Pointer to the EFI MM System Table
> >>> +
> >>> + @retval Status - EFI_SUCCESS
> >>> + @retval Assert, otherwise.
> >>> +
> >>> +**/
> >>> +EFI_STATUS
> >>> +EFIAPI
> >>> +AcpiStandaloneMmEntryPoint (
> >>> + IN EFI_HANDLE ImageHandle,
> >>> + IN EFI_MM_SYSTEM_TABLE *MmSystemTable
> >>> + )
> >>> +{
> >>> + InitializeAcpiMm ();
> >>> +
> >>> + return EFI_SUCCESS;
> >>> +}
> >>> diff --git
> >>> a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiTraditionalMm.c
> >>> b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiTraditionalMm.c
> >>> new file mode 100644
> >>> index 000000000000..9512926b9e2e
> >>> --- /dev/null
> >>> +++
> b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiTraditionalMm.c
> >>> @@ -0,0 +1,34 @@
> >>> +/** @file
> >>> + Traditional MM driver for ACPI initialization.
> >>> +
> >>> +Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> >>> +Copyright (c) Microsoft Corporation.<BR>
> >>> +SPDX-License-Identifier: BSD-2-Clause-Patent
> >>> +
> >>> +**/
> >>> +
> >>> +#include <PiMm.h>
> >>> +
> >>> +#include "AcpiMm.h"
> >>> +
> >>> +/**
> >>> + The Traditional MM driver entry point.
> >>> +
> >>> + @param[in] ImageHandle - Pointer to the loaded image protocol for
> this
> >> driver
> >>> + @param[in] SystemTable - Pointer to the EFI System Table
> >>> +
> >>> + @retval Status - EFI_SUCCESS
> >>> + @retval Assert, otherwise.
> >>> +
> >>> +**/
> >>> +EFI_STATUS
> >>> +EFIAPI
> >>> +AcpiTraditionalMmEntryPoint (
> >
> > Please rename this to AcpiSmmEntryPoint(). To my knowledge the
> verbiage "Traditional MM" is not used anywhere else and "SMM" does a
> pretty good job of denoting this is the older path.
> >
>
> Where exactly do you mean by anywhere else?
>
> It has a fair amount of usage in converted modules in edk2:
> -
> https://github.com/tianocore/edk2/blob/master/MdeModulePkg/Universal
> /StatusCodeHandler/Smm/StatusCodeHandlerSmm.inf
> -
> https://github.com/tianocore/edk2/blob/master/MdeModulePkg/Universal
> /FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf
> -
> https://github.com/tianocore/edk2/blob/master/MdeModulePkg/Library/S
> mmLockBoxLib/SmmLockBoxSmmLib.inf
> -
> https://github.com/tianocore/edk2/blob/master/MdeModulePkg/Universal
> /Variable/RuntimeDxe/VariableSmm.inf
> -
> https://github.com/tianocore/edk2/blob/master/SecurityPkg/Tcg/Tcg2Smm
> /Tcg2Smm.inf
>
> I also used this pattern when making the
> MinPlatformPkg/Flash/SpiFvbService change:
> -
> https://github.com/tianocore/edk2-
> platforms/commit/f62887cbb37e846e6768ed05d6ac55f7288388dd
Fair enough, I haven't been keeping up on the latest developments in this area. It’s a little unclear to me what the difference is between VariableTraditionalMm.c and VariableSmm.c... but that is beside the point. I retract my previous comment.
>
> I don't have a strong preference but this pattern is similar to those changes.
>
> >>> + IN EFI_HANDLE ImageHandle,
> >>> + IN EFI_SYSTEM_TABLE *SystemTable
> >>> + )
> >>> +{
> >>> + InitializeAcpiMm ();
> >>> +
> >>> + return EFI_SUCCESS;
> >>> +}
> >>> diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.h
> >>> b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.h
> >>> new file mode 100644
> >>> index 000000000000..051474b0e833
> >>> --- /dev/null
> >>> +++ b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiMm.h
> >>> @@ -0,0 +1,23 @@
> >>> +/** @file
> >>> + Internal header file for the ACPI MM driver.
> >>> +
> >>> +Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> >>> +Copyright (c) Microsoft Corporation.<BR>
> >>> +SPDX-License-Identifier: BSD-2-Clause-Patent
> >>> +
> >>> +**/
> >>> +
> >>> +#ifndef _ACPI_MM_H_
> >>> +#define _ACPI_MM_H_
> >>> +
> >>> +/**
> >>> + ACPI initialization logic shared between the Traditional MM and
> >>> + Standalone MM driver instances.
> >>> +
> >>> +**/
> >>> +VOID
> >>> +InitializeAcpiMm (
> >>> + VOID
> >>> + );
> >>> +
> >>> +#endif
> >>> diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.h
> >>> b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.h
> >>> deleted file mode 100644
> >>> index e34ffb1b755b..000000000000
> >>> --- a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.h
> >>> +++ /dev/null
> >>> @@ -1,24 +0,0 @@
> >>> -/** @file
> >>> - Header file for the Smm platform driver.
> >>> -
> >>> -Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> >>> -SPDX-License-Identifier: BSD-2-Clause-Patent
> >>> -
> >>> -**/
> >>> -
> >>> -#ifndef _ACPI_SMM_H_
> >>> -#define _ACPI_SMM_H_
> >>> -
> >>> -#include <PiSmm.h>
> >>> -#include <Library/DebugLib.h>
> >>> -#include <Library/HobLib.h>
> >>> -#include <Library/IoLib.h>
> >>> -#include <Library/PcdLib.h>
> >>> -#include <Library/UefiBootServicesTableLib.h>
> >>> -#include <Library/UefiLib.h>
> >>> -#include <Library/SmmServicesTableLib.h> -#include
> >>> <Library/BoardAcpiEnableLib.h> -#include
> <Protocol/SmmSwDispatch2.h>
> >>> -
> >>> -#endif
> >>> -
> >>> diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> >>> b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> >>> index fbaf46752563..651d4a293e9b 100644
> >>> --- a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> >>> +++ b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> >>> @@ -1,7 +1,8 @@
> >>> ### @file
> >>> -# Component information file for ACPI SMM module.
> >>> +# Component information file for ACPI Traditional MM module.
> >>> #
> >>> # Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> >>> +# Copyright (c) Microsoft Corporation.<BR>
> >>> #
> >>> # SPDX-License-Identifier: BSD-2-Clause-Patent
> >>> #
> >>> @@ -14,18 +15,15 @@ [Defines]
> >>> VERSION_STRING = 1.0
> >>> MODULE_TYPE = DXE_SMM_DRIVER
> >>> PI_SPECIFICATION_VERSION = 1.20
> >>> - ENTRY_POINT = InitializeAcpiSmm
> >>> + ENTRY_POINT = AcpiTraditionalMmEntryPoint
> >>>
> >>> [LibraryClasses]
> >>> - UefiDriverEntryPoint
> >>> - UefiBootServicesTableLib
> >>> + BoardAcpiEnableLib
> >>> DebugLib
> >>> - HobLib
> >>> - IoLib
> >>> + MmServicesTableLib
> >>> PcdLib
> >>> + UefiDriverEntryPoint
> >>> UefiLib
> >>> - SmmServicesTableLib
> >>> - BoardAcpiEnableLib
> >>>
> >>> [Packages]
> >>> MdePkg/MdePkg.dec
> >>> @@ -36,13 +34,12 @@ [Pcd]
> >>> gMinPlatformPkgTokenSpaceGuid.PcdAcpiDisableSwSmi ##
> >> CONSUMES
> >>>
> >>> [Sources]
> >>> - AcpiSmm.h
> >>> - AcpiSmm.c
> >>> + AcpiMm.h
> >>> + AcpiMm.c
> >>> + AcpiTraditionalMm.c
> >>>
> >>> [Protocols]
> >>> gEfiSmmSwDispatch2ProtocolGuid ## CONSUMES
> >>>
> >>> -[Guids]
> >>> -
> >>> [Depex]
> >>> gEfiSmmSwDispatch2ProtocolGuid
> >>> diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> >>>
> b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.inf
> >>> similarity index 50%
> >>> copy from Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> >>> copy to
> >>> Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.inf
> >>> index fbaf46752563..f7d0861b512d 100644
> >>> --- a/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> >>> +++
> >> b/Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.inf
> >>> @@ -1,7 +1,8 @@
> >>> ### @file
> >>> -# Component information file for ACPI SMM module.
> >>> +# Component information file for ACPI Standalone MM module.
> >>> #
> >>> # Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> >>> +# Copyright (c) Microsoft Corporation.<BR>
> >>> #
> >>> # SPDX-License-Identifier: BSD-2-Clause-Patent
> >>> #
> >>> @@ -9,40 +10,37 @@
> >>>
> >>> [Defines]
> >>> INF_VERSION = 0x00010017
> >>> - BASE_NAME = AcpiSmm
> >>> - FILE_GUID = DF9A9FFC-A075-4867-A0B2-5E7540BB023E
> >>> + BASE_NAME = AcpiStandaloneMm
> >>> + FILE_GUID = F113611F-DEE7-4137-8623-0168675E9F6D
> >>> VERSION_STRING = 1.0
> >>> - MODULE_TYPE = DXE_SMM_DRIVER
> >>> - PI_SPECIFICATION_VERSION = 1.20
> >>> - ENTRY_POINT = InitializeAcpiSmm
> >>> + MODULE_TYPE = MM_STANDALONE
> >>> + PI_SPECIFICATION_VERSION = 0x00010032
> >>> + ENTRY_POINT = AcpiStandaloneMmEntryPoint
> >>>
> >>> [LibraryClasses]
> >>> - UefiDriverEntryPoint
> >>> - UefiBootServicesTableLib
> >>> + BoardAcpiEnableLib
> >>> DebugLib
> >>> - HobLib
> >>> - IoLib
> >>> + MmServicesTableLib
> >>> PcdLib
> >>> - UefiLib
> >>> - SmmServicesTableLib
> >>> - BoardAcpiEnableLib
> >>> + StandaloneMmDriverEntryPoint
> >>>
> >>> [Packages]
> >>> MdePkg/MdePkg.dec
> >>> MinPlatformPkg/MinPlatformPkg.dec
> >>>
> >>> +# Note: All PCDs consumed in the Standalone MM instance must be
> >>> +either
> >> FixedAtBuild
> >>> +# or PatchableInModule
> >>> [Pcd]
> >>> gMinPlatformPkgTokenSpaceGuid.PcdAcpiEnableSwSmi ##
> >> CONSUMES
> >>> gMinPlatformPkgTokenSpaceGuid.PcdAcpiDisableSwSmi ##
> >> CONSUMES
> >>>
> >>> [Sources]
> >>> - AcpiSmm.h
> >>> - AcpiSmm.c
> >>> + AcpiMm.h
> >>> + AcpiMm.c
> >>> + AcpiStandaloneMm.c
> >>>
> >>> [Protocols]
> >>> gEfiSmmSwDispatch2ProtocolGuid ## CONSUMES
> >>>
> >>> -[Guids]
> >>> -
> >>> [Depex]
> >>> gEfiSmmSwDispatch2ProtocolGuid
> >>> diff --git a/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
> >>> b/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
> >>> index 0460fd5a3206..998ee7909568 100644
> >>> --- a/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
> >>> +++ b/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dsc
> >>> @@ -117,6 +117,7 @@ [LibraryClasses.common.MM_STANDALONE]
> >>> DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
> >>>
> >>
> MemoryAllocationLib|StandaloneMmPkg/Library/StandaloneMmMemoryAll
> >> ocationLib/StandaloneMmMemoryAllocationLib.inf
> >>>
> >>>
> >>
> MmServicesTableLib|MdePkg/Library/StandaloneMmServicesTableLib/Stan
> >> dal
> >>> oneMmServicesTableLib.inf
> >>> + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
> >>>
> >>
> SpiFlashCommonLib|MinPlatformPkg/Flash/Library/SpiFlashCommonLibNull/
> >> SpiFlashCommonLibNull.inf
> >>>
> >>>
> >>
> StandaloneMmDriverEntryPoint|MdePkg/Library/StandaloneMmDriverEntry
> >> Poi
> >>> nt/StandaloneMmDriverEntryPoint.inf
> >>>
> >>> @@ -147,6 +148,7 @@ [Components]
> >>>
> >>> MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.inf
> >>> MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> >>> + MinPlatformPkg/Acpi/AcpiSmm/AcpiStandaloneMm.inf
> >>> MinPlatformPkg/Acpi/Library/DxeAslUpdateLib/DxeAslUpdateLib.inf
> >>>
> >> MinPlatformPkg/Acpi/Library/BoardAcpiLibNull/BoardAcpiEnableLibNull.i
> >> nf
> >>>
> >>> MinPlatformPkg/Acpi/Library/BoardAcpiLibNull/BoardAcpiTableLibNull.i
> >>> nf
> >>>
> >>
> >>
> >>
> >>
> >
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-04-02 1:26 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <166A6D94DDC3B65B.3944@groups.io>
2021-03-27 1:45 ` [edk2-devel] [edk2-platforms][PATCH v2 1/1] MinPlatformPkg/Acpi/AcpiSmm: Add Standalone MM support Michael Kubacki
2021-03-29 5:15 ` 回复: " gaoliming
2021-04-01 19:47 ` Nate DeSimone
2021-04-02 0:49 ` Michael Kubacki
2021-04-02 1:26 ` Nate DeSimone
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox