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.100; helo=mga07.intel.com; envelope-from=star.zeng@intel.com; receiver=edk2-devel@lists.01.org Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) (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 93C2E22361E5A for ; Wed, 7 Feb 2018 18:13:31 -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 orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 07 Feb 2018 18:19:15 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.46,476,1511856000"; d="scan'208";a="28295471" Received: from shzintpr01.sh.intel.com (HELO [10.253.24.48]) ([10.239.4.80]) by fmsmga004.fm.intel.com with ESMTP; 07 Feb 2018 18:19:14 -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> <58e8cb1c-7a44-7ebd-7851-ef7c2de28fd3@intel.com> From: "Zeng, Star" Message-ID: Date: Thu, 8 Feb 2018 10:18:43 +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: <58e8cb1c-7a44-7ebd-7851-ef7c2de28fd3@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: Thu, 08 Feb 2018 02:13:32 -0000 Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit On 2018/2/7 20:40, Zeng, Star wrote: > 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 Please also update the comments for PcdMaximumPeiResetNotifies in MdeModulePkg.dec and MdeModulePkg.uni accordingly. 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 >>