NULL\r
);\r
\r
- if (EFI_ERROR (Status) && (BootMode != BOOT_ON_S3_RESUME)) { \r
+ if (EFI_ERROR (Status) && (BootMode != BOOT_ON_S3_RESUME)) {\r
//\r
// The DxeIpl has not yet been shadowed\r
//\r
\r
ASSERT_EFI_ERROR (Status);\r
Status = PeiRecovery->LoadRecoveryCapsule (PeiServices, PeiRecovery);\r
- ASSERT_EFI_ERROR (Status);\r
+ if (EFI_ERROR (Status)) {\r
+ DEBUG ((EFI_D_ERROR, "Load Recovery Capsule Failed.(Status = %r)\n", Status));\r
+ CpuDeadLoop ();\r
+ }\r
\r
//\r
// Now should have a HOB with the DXE core w/ the old HOB destroyed\r
// Transfer control to the DXE Core\r
// The handoff state is simply a pointer to the HOB list\r
//\r
-// PERF_END (PeiServices, L"DxeIpl", NULL, 0);\r
\r
Status = PeiServicesInstallPpi (&mPpiSignal);\r
\r
);\r
\r
DEBUG ((EFI_D_INFO, "DXE Core Entry\n"));\r
- SwitchStack (\r
+ SwitchIplStacks (\r
(SWITCH_STACK_ENTRY_POINT)(UINTN)DxeCoreEntryPoint,\r
HobList.Raw,\r
- (VOID *) (UINTN) BspStore,\r
- TopOfStack\r
+ NULL,\r
+ TopOfStack,\r
+ (VOID *) (UINTN) BspStore\r
);\r
\r
//\r
// If we get here, then the DXE Core returned. This is an error\r
+ // Dxe Core should not return.\r
//\r
- ASSERT_EFI_ERROR (Status);\r
+ ASSERT (FALSE);\r
+ CpuDeadLoop ();\r
\r
return EFI_OUT_OF_RESOURCES;\r
}\r
EFI_FIRMWARE_VOLUME_HEADER *FvHeader;\r
EFI_COMPRESSION_SECTION *CompressionSection;\r
EFI_FFS_FILE_HEADER *FfsFileHeader;\r
- \r
+\r
FfsFileHeader = *RealFfsFileHeader;\r
\r
Status = PeiServicesFfsFindSectionData (\r