EFI_STATUS Status;\r
EFI_PEI_RESET_PPI *ResetPpi;\r
\r
- Status = PeiServicesLocatePpi (\r
- &gEfiPeiResetPpiGuid, \r
- 0, \r
- NULL, \r
- (VOID **)&ResetPpi \r
- );\r
+ //\r
+ // Attempt to use newer ResetSystem2(). If this returns, then ResetSystem2()\r
+ // is not available.\r
+ //\r
+ PeiResetSystem2 (EfiResetCold, EFI_SUCCESS, 0, NULL);\r
\r
//\r
- // LocatePpi returns EFI_NOT_FOUND on error\r
+ // Look for PEI Reset System PPI\r
//\r
+ Status = PeiServicesLocatePpi (\r
+ &gEfiPeiResetPpiGuid,\r
+ 0,\r
+ NULL,\r
+ (VOID **)&ResetPpi\r
+ );\r
if (!EFI_ERROR (Status)) {\r
return ResetPpi->ResetSystem (PeiServices);\r
} \r
EFI_ERROR_CODE | EFI_ERROR_MINOR,\r
(EFI_SOFTWARE_PEI_CORE | EFI_SW_PS_EC_RESET_NOT_AVAILABLE)\r
);\r
+\r
+ //\r
+ // No reset PPIs are available yet.\r
+ //\r
return EFI_NOT_AVAILABLE_YET;\r
}\r
\r
EFI_STATUS Status;\r
EFI_PEI_RESET2_PPI *Reset2Ppi;\r
\r
+ //\r
+ // Look for PEI Reset System 2 PPI\r
+ //\r
Status = PeiServicesLocatePpi (\r
&gEfiPeiReset2PpiGuid,\r
0,\r