From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail.byosoft.com.cn (mail.byosoft.com.cn [58.240.74.242]) by mx.groups.io with SMTP id smtpd.web08.17545.1616994958256085402 for ; Sun, 28 Mar 2021 22:15:59 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=none, err=permanent DNS error (domain: byosoft.com.cn, ip: 58.240.74.242, mailfrom: gaoliming@byosoft.com.cn) Received: from DESKTOPS6D0PVI ([58.246.60.130]) (envelope-sender ) by 192.168.6.13 with ESMTP for ; Mon, 29 Mar 2021 13:15:52 +0800 X-WM-Sender: gaoliming@byosoft.com.cn X-Originating-IP: 58.246.60.130 X-WM-AuthFlag: YES X-WM-AuthUser: gaoliming@byosoft.com.cn From: "gaoliming" To: , , "'Chasel Chiu'" , "'Nate DeSimone'" , "'Eric Dong'" References: <166A6D94DDC3B65B.3944@groups.io> <8f967a59-c8de-506e-bf32-a1e0a4813c0a@linux.microsoft.com> In-Reply-To: <8f967a59-c8de-506e-bf32-a1e0a4813c0a@linux.microsoft.com> Subject: =?UTF-8?B?5Zue5aSNOiBbZWRrMi1kZXZlbF0gW2VkazItcGxhdGZvcm1zXVtQQVRDSCB2MiAxLzFdIE1pblBsYXRmb3JtUGtnL0FjcGkvQWNwaVNtbTogQWRkIFN0YW5kYWxvbmUgTU0gc3VwcG9ydA==?= Date: Mon, 29 Mar 2021 13:15:54 +0800 Message-ID: <002b01d7245a$983f2290$c8bd67b0$@byosoft.com.cn> MIME-Version: 1.0 X-Mailer: Microsoft Outlook 16.0 Thread-Index: AQG5eCTUth7nAm8eoVIx1vANg/gVVAHF/IyKqseU9HA= Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Content-Language: zh-cn Reviewed-by: Liming Gao > -----=E9=82=AE=E4=BB=B6=E5=8E=9F=E4=BB=B6----- > =E5=8F=91=E4=BB=B6=E4=BA=BA: devel@edk2.groups.io = =E4=BB=A3=E8=A1=A8 Michael > Kubacki > =E5=8F=91=E9=80=81=E6=97=B6=E9=97=B4: 2021=E5=B9=B43=E6=9C=8827=E6=97=A5= 9:45 > =E6=94=B6=E4=BB=B6=E4=BA=BA: devel@edk2.groups.io; Chasel Chiu ; Nate > DeSimone ; Liming Gao > ; Eric Dong > =E4=B8=BB=E9=A2=98: Re: [edk2-devel] [edk2-platforms][PATCH v2 1/1] > MinPlatformPkg/Acpi/AcpiSmm: Add Standalone MM support >=20 > Sending a review reminder since it's been a few weeks. >=20 > Thanks, > Michael >=20 > On 3/8/2021 9:17 AM, Michael Kubacki wrote: > > From: Michael Kubacki > > > > REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3D3248 > > > > 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 > > Cc: Nate DeSimone > > Cc: Liming Gao > > Cc: Eric Dong > > Signed-off-by: Michael Kubacki > > --- > > > > Notes: > > V2 change: Add BZ link > > > > Platform/Intel/MinPlatformPkg/Acpi/AcpiSmm/{AcpiSmm.c =3D> 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 =3D> > 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.
> > +Copyright (c) Microsoft Corporation.
> > SPDX-License-Identifier: BSD-2-Clause-Patent > > > > **/ > > > > -#include "AcpiSmm.h" > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > + > > +#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 =3D gSmst->SmmLocateProtocol > (&gEfiSmmSwDispatch2ProtocolGuid, NULL, (VOID**)&SwDispatch); > > + Status =3D 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.
> > +Copyright (c) Microsoft Corporation.
> > +SPDX-License-Identifier: BSD-2-Clause-Patent > > + > > +**/ > > + > > +#include > > + > > +#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.
> > +Copyright (c) Microsoft Corporation.
> > +SPDX-License-Identifier: BSD-2-Clause-Patent > > + > > +**/ > > + > > +#include > > + > > +#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.
> > +Copyright (c) Microsoft Corporation.
> > +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.
> > -SPDX-License-Identifier: BSD-2-Clause-Patent > > - > > -**/ > > - > > -#ifndef _ACPI_SMM_H_ > > -#define _ACPI_SMM_H_ > > - > > -#include > > -#include > > -#include > > -#include > > -#include > > -#include > > -#include > > -#include > > -#include > > -#include > > - > > -#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.
> > +# Copyright (c) Microsoft Corporation.
> > # > > # SPDX-License-Identifier: BSD-2-Clause-Patent > > # > > @@ -14,18 +15,15 @@ [Defines] > > VERSION_STRING =3D 1.0 > > MODULE_TYPE =3D DXE_SMM_DRIVER > > PI_SPECIFICATION_VERSION =3D 1.20 > > - ENTRY_POINT =3D InitializeAcpiSmm > > + ENTRY_POINT =3D 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.
> > +# Copyright (c) Microsoft Corporation.
> > # > > # SPDX-License-Identifier: BSD-2-Clause-Patent > > # > > @@ -9,40 +10,37 @@ > > > > [Defines] > > INF_VERSION =3D 0x00010017 > > - BASE_NAME =3D AcpiSmm > > - FILE_GUID =3D > DF9A9FFC-A075-4867-A0B2-5E7540BB023E > > + BASE_NAME =3D AcpiStandaloneMm > > + FILE_GUID =3D > F113611F-DEE7-4137-8623-0168675E9F6D > > VERSION_STRING =3D 1.0 > > - MODULE_TYPE =3D DXE_SMM_DRIVER > > - PI_SPECIFICATION_VERSION =3D 1.20 > > - ENTRY_POINT =3D InitializeAcpiSmm > > + MODULE_TYPE =3D MM_STANDALONE > > + PI_SPECIFICATION_VERSION =3D 0x00010032 > > + ENTRY_POINT =3D 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 eithe= r > 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 > > >=20 >=20 >=20 >=20