public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Michael Kubacki" <mikuback@linux.microsoft.com>
To: gaoliming <gaoliming@byosoft.com.cn>, devel@edk2.groups.io
Cc: 'Chasel Chiu' <chasel.chiu@intel.com>,
	'Nate DeSimone' <nathaniel.l.desimone@intel.com>,
	'Eric Dong' <eric.dong@intel.com>
Subject: Re: 回复: [edk2-devel] [edk2-platforms][PATCH v1 1/1] MinPlatformPkg/Acpi/AcpiSmm: Add Standalone MM support
Date: Mon, 8 Mar 2021 09:19:19 -0800	[thread overview]
Message-ID: <1700e2f6-5db0-0d21-a94b-1484661153ee@linux.microsoft.com> (raw)
In-Reply-To: <006b01d713b9$9e9bb100$dbd31300$@byosoft.com.cn>

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]
>> -=-=-=-=-=-=
>>
> 
> 

      reply	other threads:[~2021-03-08 17:19 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1700e2f6-5db0-0d21-a94b-1484661153ee@linux.microsoft.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox