diff options
author | Bret Barkelew <brbarkel@microsoft.com> | 2018-01-31 18:31:40 -0800 |
---|---|---|
committer | Ruiyu Ni <ruiyu.ni@intel.com> | 2018-02-09 15:30:01 +0800 |
commit | ce2697abeb37cf9fabab15327385415599e8fb0c (patch) | |
tree | 914781590f69da71f815ce762cd1c261b1153808 /MdeModulePkg/Universal/ResetSystemPei | |
parent | 052c98ce246a1ffb0b4c5185a644aa9f902650f7 (diff) | |
download | edk2-ce2697abeb37cf9fabab15327385415599e8fb0c.zip edk2-ce2697abeb37cf9fabab15327385415599e8fb0c.tar.gz edk2-ce2697abeb37cf9fabab15327385415599e8fb0c.tar.bz2 |
MdeModulePkg/ResetSystemPei: Add reset notifications in PEI
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>
Reviewed-by: 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>
Diffstat (limited to 'MdeModulePkg/Universal/ResetSystemPei')
-rw-r--r-- | MdeModulePkg/Universal/ResetSystemPei/ResetSystem.c | 16 | ||||
-rw-r--r-- | MdeModulePkg/Universal/ResetSystemPei/ResetSystem.h | 1 | ||||
-rw-r--r-- | MdeModulePkg/Universal/ResetSystemPei/ResetSystemPei.inf | 7 |
3 files changed, 21 insertions, 3 deletions
diff --git a/MdeModulePkg/Universal/ResetSystemPei/ResetSystem.c b/MdeModulePkg/Universal/ResetSystemPei/ResetSystem.c index 0832e86..2c9b8a1 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,
@@ -56,6 +65,11 @@ EFI_PEI_PPI_DESCRIPTOR mPpiListReset[] = { &mResetFilter.ResetFilter
},
{
+ EFI_PEI_PPI_DESCRIPTOR_PPI,
+ &gEdkiiPlatformSpecificResetNotificationPpiGuid,
+ &mResetNotification.ResetFilter
+ },
+ {
EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST,
&gEdkiiPlatformSpecificResetHandlerPpiGuid,
&mResetHandler.ResetFilter
@@ -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 f06d39b..8e9f872 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 38fdd16..a88e201 100644 --- a/MdeModulePkg/Universal/ResetSystemPei/ResetSystemPei.inf +++ b/MdeModulePkg/Universal/ResetSystemPei/ResetSystemPei.inf @@ -48,9 +48,10 @@ ReportStatusCodeLib
[Ppis]
- gEfiPeiReset2PpiGuid ## PRODUCES
- gEdkiiPlatformSpecificResetFilterPpiGuid ## PRODUCES
- gEdkiiPlatformSpecificResetHandlerPpiGuid ## PRODUCES
+ gEfiPeiReset2PpiGuid ## PRODUCES
+ gEdkiiPlatformSpecificResetFilterPpiGuid ## PRODUCES
+ gEdkiiPlatformSpecificResetHandlerPpiGuid ## PRODUCES
+ gEdkiiPlatformSpecificResetNotificationPpiGuid ## PRODUCES
[Pcd]
gEfiMdeModulePkgTokenSpaceGuid.PcdMaximumPeiResetNotifies
|