From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.126; helo=mga18.intel.com; envelope-from=star.zeng@intel.com; receiver=edk2-devel@lists.01.org Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id A2F06223972A0 for ; Wed, 7 Feb 2018 04:35:10 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 07 Feb 2018 04:40:54 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.46,473,1511856000"; d="scan'208";a="28112803" Received: from shzintpr02.sh.intel.com (HELO [10.253.24.48]) ([10.239.4.160]) by fmsmga004.fm.intel.com with ESMTP; 07 Feb 2018 04:40:53 -0800 To: Ruiyu Ni , edk2-devel@lists.01.org Cc: Michael D Kinney , Liming Gao , star.zeng@intel.com References: <20180202064530.407028-1-ruiyu.ni@intel.com> <20180202064530.407028-11-ruiyu.ni@intel.com> From: "Zeng, Star" Message-ID: <58e8cb1c-7a44-7ebd-7851-ef7c2de28fd3@intel.com> Date: Wed, 7 Feb 2018 20:40:22 +0800 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 MIME-Version: 1.0 In-Reply-To: <20180202064530.407028-11-ruiyu.ni@intel.com> Subject: Re: [PATCH 10/10] MdeModulePkg/ResetSystemPei: Add reset notifications in PEI X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Feb 2018 12:35:11 -0000 Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit On 2018/2/2 14:45, Ruiyu Ni wrote: > From: Bret Barkelew > > The Reset Notification protocol is added in UEFI spec to support > reset notification mechanism in the DXE phase. > This patch adds similar EDKII specific Reset Notification PPI to PEI > phase to provide the same support. > > Cc: Liming Gao > Cc: Michael D Kinney > Cc: Star Zeng > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Bret Barkelew > Signed-off-by: Ruiyu Ni > --- > .../Ppi/PlatformSpecificResetNotification.h | 31 ++++++++++++++++++++++ > MdeModulePkg/MdeModulePkg.dec | 3 +++ > .../Universal/ResetSystemPei/ResetSystem.c | 16 +++++++++++ > .../Universal/ResetSystemPei/ResetSystem.h | 1 + > .../Universal/ResetSystemPei/ResetSystemPei.inf | 7 ++--- > 5 files changed, 55 insertions(+), 3 deletions(-) > create mode 100644 MdeModulePkg/Include/Ppi/PlatformSpecificResetNotification.h > > diff --git a/MdeModulePkg/Include/Ppi/PlatformSpecificResetNotification.h b/MdeModulePkg/Include/Ppi/PlatformSpecificResetNotification.h > new file mode 100644 > index 0000000000..ea53e24133 > --- /dev/null > +++ b/MdeModulePkg/Include/Ppi/PlatformSpecificResetNotification.h > @@ -0,0 +1,31 @@ > +/** @file > + This PPI provides services to register a platform specific notification callback for > + ResetSystem(). The registered handlers are processed after > + EDKII_PLATFORM_SPECIFIC_RESET_FILTER_PPI notifications. How about adding "and after EDKII_PLATFORM_SPECIFIC_RESET_HANDLER_PPI" at the end of the sentence? And also need enhance the comments in MdeModulePkg\Include\Ppi\PlatformSpecificResetFilter.h to state it will be processed before EDKII_PLATFORM_SPECIFIC_RESET_NOTIFICATION_PPI instead of EDKII_PLATFORM_SPECIFIC_RESET_HANDLER_PPI. And also need enhance the comments in MdeModulePkg\Include\Ppi\PlatformSpecificResetHandler.h to state it will be processed after EDKII_PLATFORM_SPECIFIC_RESET_NOTIFICATION_PPI instead of EDKII_PLATFORM_SPECIFIC_RESET_FILTER_PPI. Thanks, Star > + > + Copyright (c) 2017 Intel Corporation. All rights reserved.
> + Copyright (c) 2017 Microsoft Corporation. All rights reserved.
> + > + This program and the accompanying materials are licensed and made available under > + the terms and conditions of the BSD License that accompanies this distribution. > + The full text of the license may be found at > + http://opensource.org/licenses/bsd-license.php. > + > + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, > + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. > + > +**/ > + > +#ifndef _PLATFORM_SPECIFIC_RESET_NOTIFICATION_PPI_H_ > +#define _PLATFORM_SPECIFIC_RESET_NOTIFICATION_PPI_H_ > + > +#include > + > +#define EDKII_PLATFORM_SPECIFIC_RESET_NOTIFICATION_PPI_GUID \ > + { 0xe09f355d, 0xdae8, 0x4910, { 0xb1, 0x4a, 0x92, 0x78, 0x0f, 0xdc, 0xf7, 0xcb } } > + > +typedef EFI_RESET_NOTIFICATION_PROTOCOL EDKII_PLATFORM_SPECIFIC_RESET_NOTIFICATION_PPI; > + > +extern EFI_GUID gEdkiiPlatformSpecificResetNotificationPpiGuid; > + > +#endif > diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec > index 1b971d599f..297b02ffa9 100644 > --- a/MdeModulePkg/MdeModulePkg.dec > +++ b/MdeModulePkg/MdeModulePkg.dec > @@ -444,6 +444,9 @@ [Ppis] > ## Include/Ppi/PlatformSpecificResetFilter.h > gEdkiiPlatformSpecificResetFilterPpiGuid = { 0x8c9f4de3, 0x7b90, 0x47ef, { 0x93, 0x8, 0x28, 0x7c, 0xec, 0xd6, 0x6d, 0xe8 } } > > + ## Include/Ppi/PlatformSpecificResetNotification.h > + gEdkiiPlatformSpecificResetNotificationPpiGuid = { 0xe09f355d, 0xdae8, 0x4910, { 0xb1, 0x4a, 0x92, 0x78, 0xf, 0xdc, 0xf7, 0xcb } } > + > ## Include/Ppi/PlatformSpecificResetHandler.h > gEdkiiPlatformSpecificResetHandlerPpiGuid = { 0x75cf14ae, 0x3441, 0x49dc, { 0xaa, 0x10, 0xbb, 0x35, 0xa7, 0xba, 0x8b, 0xab } } > > diff --git a/MdeModulePkg/Universal/ResetSystemPei/ResetSystem.c b/MdeModulePkg/Universal/ResetSystemPei/ResetSystem.c > index 720593de6a..4dfe303f77 100644 > --- a/MdeModulePkg/Universal/ResetSystemPei/ResetSystem.c > +++ b/MdeModulePkg/Universal/ResetSystemPei/ResetSystem.c > @@ -25,6 +25,7 @@ EFI_PEI_RESET2_PPI mPpiReset2 = { > > EFI_GUID *mProcessingOrder[] = { > &gEdkiiPlatformSpecificResetFilterPpiGuid, > + &gEdkiiPlatformSpecificResetNotificationPpiGuid, > &gEdkiiPlatformSpecificResetHandlerPpiGuid > }; > > @@ -36,6 +37,14 @@ RESET_FILTER_INSTANCE mResetFilter = { > &gEdkiiPlatformSpecificResetFilterPpiGuid > }; > > +RESET_FILTER_INSTANCE mResetNotification = { > + { > + RegisterResetNotify, > + UnregisterResetNotify > + }, > + &gEdkiiPlatformSpecificResetNotificationPpiGuid > +}; > + > RESET_FILTER_INSTANCE mResetHandler = { > { > RegisterResetNotify, > @@ -55,6 +64,11 @@ EFI_PEI_PPI_DESCRIPTOR mPpiListReset[] = { > &gEdkiiPlatformSpecificResetFilterPpiGuid, > &mResetFilter.ResetFilter > }, > + { > + EFI_PEI_PPI_DESCRIPTOR_PPI, > + &gEdkiiPlatformSpecificResetNotificationPpiGuid, > + &mResetNotification.ResetFilter > + }, > { > EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST, > &gEdkiiPlatformSpecificResetHandlerPpiGuid, > @@ -101,6 +115,7 @@ RegisterResetNotify ( > > ResetFilter = (RESET_FILTER_INSTANCE *) This; > ASSERT (CompareGuid (ResetFilter->Guid, &gEdkiiPlatformSpecificResetFilterPpiGuid) || > + CompareGuid (ResetFilter->Guid, &gEdkiiPlatformSpecificResetNotificationPpiGuid) || > CompareGuid (ResetFilter->Guid, &gEdkiiPlatformSpecificResetHandlerPpiGuid) > ); > > @@ -187,6 +202,7 @@ UnregisterResetNotify ( > > ResetFilter = (RESET_FILTER_INSTANCE *)This; > ASSERT (CompareGuid (ResetFilter->Guid, &gEdkiiPlatformSpecificResetFilterPpiGuid) || > + CompareGuid (ResetFilter->Guid, &gEdkiiPlatformSpecificResetNotificationPpiGuid) || > CompareGuid (ResetFilter->Guid, &gEdkiiPlatformSpecificResetHandlerPpiGuid) > ); > > diff --git a/MdeModulePkg/Universal/ResetSystemPei/ResetSystem.h b/MdeModulePkg/Universal/ResetSystemPei/ResetSystem.h > index 2fcc3592b6..b623a4c381 100644 > --- a/MdeModulePkg/Universal/ResetSystemPei/ResetSystem.h > +++ b/MdeModulePkg/Universal/ResetSystemPei/ResetSystem.h > @@ -21,6 +21,7 @@ > > #include > #include > +#include > #include > > #include > diff --git a/MdeModulePkg/Universal/ResetSystemPei/ResetSystemPei.inf b/MdeModulePkg/Universal/ResetSystemPei/ResetSystemPei.inf > index 38fdd16ceb..a88e2018b7 100644 > --- a/MdeModulePkg/Universal/ResetSystemPei/ResetSystemPei.inf > +++ b/MdeModulePkg/Universal/ResetSystemPei/ResetSystemPei.inf > @@ -48,9 +48,10 @@ [LibraryClasses] > ReportStatusCodeLib > > [Ppis] > - gEfiPeiReset2PpiGuid ## PRODUCES > - gEdkiiPlatformSpecificResetFilterPpiGuid ## PRODUCES > - gEdkiiPlatformSpecificResetHandlerPpiGuid ## PRODUCES > + gEfiPeiReset2PpiGuid ## PRODUCES > + gEdkiiPlatformSpecificResetFilterPpiGuid ## PRODUCES > + gEdkiiPlatformSpecificResetHandlerPpiGuid ## PRODUCES > + gEdkiiPlatformSpecificResetNotificationPpiGuid ## PRODUCES > > [Pcd] > gEfiMdeModulePkgTokenSpaceGuid.PcdMaximumPeiResetNotifies >