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>
This commit is contained in:
parent
dacf87e885
commit
7072a185d0
|
@ -35,16 +35,21 @@ PeiResetSystem (
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
EFI_PEI_RESET_PPI *ResetPpi;
|
EFI_PEI_RESET_PPI *ResetPpi;
|
||||||
|
|
||||||
Status = PeiServicesLocatePpi (
|
//
|
||||||
&gEfiPeiResetPpiGuid,
|
// Attempt to use newer ResetSystem2(). If this returns, then ResetSystem2()
|
||||||
0,
|
// is not available.
|
||||||
NULL,
|
//
|
||||||
(VOID **)&ResetPpi
|
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)) {
|
if (!EFI_ERROR (Status)) {
|
||||||
return ResetPpi->ResetSystem (PeiServices);
|
return ResetPpi->ResetSystem (PeiServices);
|
||||||
}
|
}
|
||||||
|
@ -55,6 +60,10 @@ PeiResetSystem (
|
||||||
EFI_ERROR_CODE | EFI_ERROR_MINOR,
|
EFI_ERROR_CODE | EFI_ERROR_MINOR,
|
||||||
(EFI_SOFTWARE_PEI_CORE | EFI_SW_PS_EC_RESET_NOT_AVAILABLE)
|
(EFI_SOFTWARE_PEI_CORE | EFI_SW_PS_EC_RESET_NOT_AVAILABLE)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
// No reset PPIs are available yet.
|
||||||
|
//
|
||||||
return EFI_NOT_AVAILABLE_YET;
|
return EFI_NOT_AVAILABLE_YET;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -85,6 +94,9 @@ PeiResetSystem2 (
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
EFI_PEI_RESET2_PPI *Reset2Ppi;
|
EFI_PEI_RESET2_PPI *Reset2Ppi;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Look for PEI Reset System 2 PPI
|
||||||
|
//
|
||||||
Status = PeiServicesLocatePpi (
|
Status = PeiServicesLocatePpi (
|
||||||
&gEfiPeiReset2PpiGuid,
|
&gEfiPeiReset2PpiGuid,
|
||||||
0,
|
0,
|
||||||
|
|
Loading…
Reference in New Issue