public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [edk2-platforms][PATCH v1 1/1] MinPlatformPkg/Acpi/AcpiSmm: Add Standalone MM support
@ 2021-03-06  1:38 Michael Kubacki
  2021-03-08  1:23 ` 回复: [edk2-devel] " gaoliming
  0 siblings, 1 reply; 3+ messages in thread
From: Michael Kubacki @ 2021-03-06  1:38 UTC (permalink / raw)
  To: devel; +Cc: Chasel Chiu, Nate DeSimone, Liming Gao, Eric Dong

From: Michael Kubacki <michael.kubacki@microsoft.com>

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>
---
 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
-- 
2.28.0.windows.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* 回复: [edk2-devel] [edk2-platforms][PATCH v1 1/1] MinPlatformPkg/Acpi/AcpiSmm: Add Standalone MM support
  2021-03-06  1:38 [edk2-platforms][PATCH v1 1/1] MinPlatformPkg/Acpi/AcpiSmm: Add Standalone MM support Michael Kubacki
@ 2021-03-08  1:23 ` gaoliming
  2021-03-08 17:19   ` Michael Kubacki
  0 siblings, 1 reply; 3+ messages in thread
From: gaoliming @ 2021-03-08  1:23 UTC (permalink / raw)
  To: devel, mikuback
  Cc: 'Chasel Chiu', 'Nate DeSimone',
	'Eric Dong'

Michael:
  Can you submit one BZ to track this change?

Thanks
Liming
> -----邮件原件-----
> 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Michael
> Kubacki
> 发送时间: 2021年3月6日 9:38
> 收件人: 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>
> 主题: [edk2-devel] [edk2-platforms][PATCH v1 1/1]
> MinPlatformPkg/Acpi/AcpiSmm: Add Standalone MM support
> 
> From: Michael Kubacki <michael.kubacki@microsoft.com>
> 
> 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>
> ---
>  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
> --
> 2.28.0.windows.1
> 
> 
> 
> -=-=-=-=-=-=
> Groups.io Links: You receive all messages sent to this group.
> View/Reply Online (#72510): https://edk2.groups.io/g/devel/message/72510
> Mute This Topic: https://groups.io/mt/81119075/4905953
> Group Owner: devel+owner@edk2.groups.io
> Unsubscribe: https://edk2.groups.io/g/devel/unsub
> [gaoliming@byosoft.com.cn]
> -=-=-=-=-=-=
> 




^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: 回复: [edk2-devel] [edk2-platforms][PATCH v1 1/1] MinPlatformPkg/Acpi/AcpiSmm: Add Standalone MM support
  2021-03-08  1:23 ` 回复: [edk2-devel] " gaoliming
@ 2021-03-08 17:19   ` Michael Kubacki
  0 siblings, 0 replies; 3+ messages in thread
From: Michael Kubacki @ 2021-03-08 17:19 UTC (permalink / raw)
  To: gaoliming, devel
  Cc: 'Chasel Chiu', 'Nate DeSimone',
	'Eric Dong'

Sent v2 with the BZ in the commit description:
https://edk2.groups.io/g/devel/message/72541

Thanks,
Michael

On 3/7/2021 5:23 PM, gaoliming wrote:
> Michael:
>    Can you submit one BZ to track this change?
> 
> Thanks
> Liming
>> -----邮件原件-----
>> 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Michael
>> Kubacki
>> 发送时间: 2021年3月6日 9:38
>> 收件人: 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>
>> 主题: [edk2-devel] [edk2-platforms][PATCH v1 1/1]
>> MinPlatformPkg/Acpi/AcpiSmm: Add Standalone MM support
>>
>> From: Michael Kubacki <michael.kubacki@microsoft.com>
>>
>> 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>
>> ---
>>   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
>> --
>> 2.28.0.windows.1
>>
>>
>>
>> -=-=-=-=-=-=
>> Groups.io Links: You receive all messages sent to this group.
>> View/Reply Online (#72510): https://edk2.groups.io/g/devel/message/72510
>> Mute This Topic: https://groups.io/mt/81119075/4905953
>> Group Owner: devel+owner@edk2.groups.io
>> Unsubscribe: https://edk2.groups.io/g/devel/unsub
>> [gaoliming@byosoft.com.cn]
>> -=-=-=-=-=-=
>>
> 
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-03-08 17:19 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-03-06  1:38 [edk2-platforms][PATCH v1 1/1] MinPlatformPkg/Acpi/AcpiSmm: Add Standalone MM support Michael Kubacki
2021-03-08  1:23 ` 回复: [edk2-devel] " gaoliming
2021-03-08 17:19   ` Michael Kubacki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox