summaryrefslogtreecommitdiffstats
path: root/MdeModulePkg/Core/Pei
diff options
context:
space:
mode:
authorMichael D Kinney <michael.d.kinney@intel.com>2017-09-01 00:31:03 -0700
committerRuiyu Ni <ruiyu.ni@intel.com>2018-02-09 15:29:49 +0800
commit7072a185d06d247f53b6f9b874ba0646cfdf0eef (patch)
tree24779d2a2a514698a09ab190d2b5f7bd117f90f1 /MdeModulePkg/Core/Pei
parentdacf87e885d6bd39a8c97e4bd6d074a7cfc68e02 (diff)
downloadedk2-7072a185d06d247f53b6f9b874ba0646cfdf0eef.tar.gz
edk2-7072a185d06d247f53b6f9b874ba0646cfdf0eef.tar.bz2
edk2-7072a185d06d247f53b6f9b874ba0646cfdf0eef.zip
MdeModulePkg/PeiMain: Always attempt to use Reset2 PPI first
Update PEI Service ResetSystem() to always attempt to use the Reset2 PPI before looking for the Reset PPI. Cc: Liming Gao <liming.gao@intel.com> Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com> Cc: Star Zeng <star.zeng@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Star Zeng <star.zeng@intel.com>
Diffstat (limited to 'MdeModulePkg/Core/Pei')
-rw-r--r--MdeModulePkg/Core/Pei/Reset/Reset.c26
1 files changed, 19 insertions, 7 deletions
diff --git a/MdeModulePkg/Core/Pei/Reset/Reset.c b/MdeModulePkg/Core/Pei/Reset/Reset.c
index 7440eefd78..cd36c526b5 100644
--- a/MdeModulePkg/Core/Pei/Reset/Reset.c
+++ b/MdeModulePkg/Core/Pei/Reset/Reset.c
@@ -35,16 +35,21 @@ PeiResetSystem (
EFI_STATUS Status;
EFI_PEI_RESET_PPI *ResetPpi;
- Status = PeiServicesLocatePpi (
- &gEfiPeiResetPpiGuid,
- 0,
- NULL,
- (VOID **)&ResetPpi
- );
+ //
+ // Attempt to use newer ResetSystem2(). If this returns, then ResetSystem2()
+ // is not available.
+ //
+ PeiResetSystem2 (EfiResetCold, EFI_SUCCESS, 0, NULL);
//
- // LocatePpi returns EFI_NOT_FOUND on error
+ // Look for PEI Reset System PPI
//
+ Status = PeiServicesLocatePpi (
+ &gEfiPeiResetPpiGuid,
+ 0,
+ NULL,
+ (VOID **)&ResetPpi
+ );
if (!EFI_ERROR (Status)) {
return ResetPpi->ResetSystem (PeiServices);
}
@@ -55,6 +60,10 @@ PeiResetSystem (
EFI_ERROR_CODE | EFI_ERROR_MINOR,
(EFI_SOFTWARE_PEI_CORE | EFI_SW_PS_EC_RESET_NOT_AVAILABLE)
);
+
+ //
+ // No reset PPIs are available yet.
+ //
return EFI_NOT_AVAILABLE_YET;
}
@@ -85,6 +94,9 @@ PeiResetSystem2 (
EFI_STATUS Status;
EFI_PEI_RESET2_PPI *Reset2Ppi;
+ //
+ // Look for PEI Reset System 2 PPI
+ //
Status = PeiServicesLocatePpi (
&gEfiPeiReset2PpiGuid,
0,