summaryrefslogtreecommitdiff
path: root/MdeModulePkg/Universal/ResetSystemPei
diff options
context:
space:
mode:
authorBret Barkelew <brbarkel@microsoft.com>2018-01-31 18:31:40 -0800
committerRuiyu Ni <ruiyu.ni@intel.com>2018-02-09 15:30:01 +0800
commitce2697abeb37cf9fabab15327385415599e8fb0c (patch)
tree914781590f69da71f815ce762cd1c261b1153808 /MdeModulePkg/Universal/ResetSystemPei
parent052c98ce246a1ffb0b4c5185a644aa9f902650f7 (diff)
downloadedk2-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.c16
-rw-r--r--MdeModulePkg/Universal/ResetSystemPei/ResetSystem.h1
-rw-r--r--MdeModulePkg/Universal/ResetSystemPei/ResetSystemPei.inf7
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