public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Zeng, Star" <star.zeng@intel.com>
To: Ruiyu Ni <ruiyu.ni@intel.com>, edk2-devel@lists.01.org
Cc: Michael D Kinney <michael.d.kinney@intel.com>,
	Liming Gao <liming.gao@intel.com>,
	star.zeng@intel.com
Subject: Re: [PATCH 10/10] MdeModulePkg/ResetSystemPei: Add reset notifications in PEI
Date: Wed, 7 Feb 2018 20:40:22 +0800	[thread overview]
Message-ID: <58e8cb1c-7a44-7ebd-7851-ef7c2de28fd3@intel.com> (raw)
In-Reply-To: <20180202064530.407028-11-ruiyu.ni@intel.com>

On 2018/2/2 14:45, Ruiyu Ni wrote:
> From: Bret Barkelew <brbarkel@microsoft.com>
> 
> 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 <liming.gao@intel.com>
> Cc: Michael D Kinney <michael.d.kinney@intel.com>
> Cc: Star Zeng <star.zeng@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Bret Barkelew <Bret.Barkelew@microsoft.com>
> Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
> ---
>   .../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.<BR>
> +  Copyright (c) 2017 Microsoft Corporation. All rights reserved.<BR>
> +
> +  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 <Protocol/ResetNotification.h>
> +
> +#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 <Ppi/Reset2.h>
>   #include <Ppi/PlatformSpecificResetFilter.h>
> +#include <Ppi/PlatformSpecificResetNotification.h>
>   #include <Ppi/PlatformSpecificResetHandler.h>
>   
>   #include <Library/BaseLib.h>
> 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
> 



  reply	other threads:[~2018-02-07 12:35 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-02  6:45 [PATCH 00/10] Formalize the reset system core design Ruiyu Ni
2018-02-02  6:45 ` [PATCH 01/10] MdePkg/PeiServicesLib: Add PeiServicesResetSystem2() Ruiyu Ni
2018-02-07 11:37   ` Zeng, Star
2018-02-02  6:45 ` [PATCH 02/10] MdeModulePkg/PeiMain: Always attempt to use Reset2 PPI first Ruiyu Ni
2018-02-07 11:37   ` Zeng, Star
2018-02-02  6:45 ` [PATCH 03/10] MdeModulePkg/PeiMain: Cleanup whitespace in Reset.c Ruiyu Ni
2018-02-07 11:39   ` Zeng, Star
2018-02-02  6:45 ` [PATCH 04/10] MdeModulePkg/ResetSystemRuntimeDxe: Add platform filter and handler Ruiyu Ni
2018-02-02 13:46   ` Laszlo Ersek
2018-02-06  2:56     ` Ni, Ruiyu
2018-02-07 11:44   ` Zeng, Star
2018-02-02  6:45 ` [PATCH 05/10] MdeModulePkg/ResetSystemRuntimeDxe: Add more debug message Ruiyu Ni
2018-02-07 12:04   ` Zeng, Star
2018-02-09  3:01     ` Ni, Ruiyu
2018-02-02  6:45 ` [PATCH 06/10] MdeModulePkg: Add ResetSystemLib instances that call core services Ruiyu Ni
2018-02-07 12:20   ` Zeng, Star
2018-02-09  3:00     ` Ni, Ruiyu
2018-02-02  6:45 ` [PATCH 07/10] MdeModulePkg: Add ResetUtility librray class and BASE instance Ruiyu Ni
2018-02-07 12:28   ` Zeng, Star
2018-02-08  1:36     ` Zeng, Star
2018-02-08  2:07       ` Zeng, Star
2018-02-02  6:45 ` [PATCH 08/10] MdePkg/UefiRuntimeLib: Support more module types Ruiyu Ni
2018-02-07 12:24   ` Zeng, Star
2018-02-09  3:06     ` Ni, Ruiyu
2018-02-02  6:45 ` [PATCH 09/10] MdeModulePkg: Add ResetSystemPei PEIM Ruiyu Ni
2018-02-07 12:35   ` Zeng, Star
2018-02-08  2:16     ` Zeng, Star
2018-02-09  3:12     ` Ni, Ruiyu
2018-02-02  6:45 ` [PATCH 10/10] MdeModulePkg/ResetSystemPei: Add reset notifications in PEI Ruiyu Ni
2018-02-07 12:40   ` Zeng, Star [this message]
2018-02-08  2:18     ` Zeng, Star

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=58e8cb1c-7a44-7ebd-7851-ef7c2de28fd3@intel.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