Master header file for DxeIpl PEIM. All source files in this module should\r
include this file for common definitions.\r
\r
-Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
#include <Ppi/LoadFile.h>\r
#include <Ppi/S3Resume2.h>\r
#include <Ppi/RecoveryModule.h>\r
+#include <Ppi/CapsuleOnDisk.h>\r
#include <Ppi/VectorHandoffInfo.h>\r
\r
#include <Guid/MemoryTypeInformation.h>\r
# PPI to discover and dispatch the DXE Foundation and components that are\r
# needed to run the DXE Foundation.\r
#\r
-# Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>\r
# Copyright (c) 2017, AMD Incorporated. All rights reserved.<BR>\r
#\r
# SPDX-License-Identifier: BSD-2-Clause-Patent\r
ArmMmuLib\r
\r
[Ppis]\r
- gEfiDxeIplPpiGuid ## PRODUCES\r
- gEfiPeiDecompressPpiGuid ## PRODUCES\r
- gEfiEndOfPeiSignalPpiGuid ## SOMETIMES_PRODUCES # Not produced on S3 boot path\r
- gEfiPeiReadOnlyVariable2PpiGuid ## SOMETIMES_CONSUMES\r
- gEfiPeiLoadFilePpiGuid ## SOMETIMES_CONSUMES\r
- gEfiPeiS3Resume2PpiGuid ## SOMETIMES_CONSUMES # Consumed on S3 boot path\r
- gEfiPeiRecoveryModulePpiGuid ## SOMETIMES_CONSUMES # Consumed on recovery boot path\r
+ gEfiDxeIplPpiGuid ## PRODUCES\r
+ gEfiPeiDecompressPpiGuid ## PRODUCES\r
+ gEfiEndOfPeiSignalPpiGuid ## SOMETIMES_PRODUCES # Not produced on S3 boot path\r
+ gEfiPeiReadOnlyVariable2PpiGuid ## SOMETIMES_CONSUMES\r
+ gEfiPeiLoadFilePpiGuid ## SOMETIMES_CONSUMES\r
+ gEfiPeiS3Resume2PpiGuid ## SOMETIMES_CONSUMES # Consumed on S3 boot path\r
+ gEfiPeiRecoveryModulePpiGuid ## SOMETIMES_CONSUMES # Consumed on recovery boot path\r
## SOMETIMES_CONSUMES\r
## UNDEFINED # HOB\r
gEfiVectorHandoffInfoPpiGuid\r
- gEfiPeiMemoryDiscoveredPpiGuid ## SOMETIMES_CONSUMES\r
+ gEfiPeiMemoryDiscoveredPpiGuid ## SOMETIMES_CONSUMES\r
+ gEdkiiPeiBootInCapsuleOnDiskModePpiGuid ## SOMETIMES_CONSUMES\r
+ gEdkiiPeiCapsuleOnDiskPpiGuid ## SOMETIMES_CONSUMES # Consumed on firmware update boot path\r
\r
[Guids]\r
## SOMETIMES_CONSUMES ## Variable:L"MemoryTypeInformation"\r
Responsibility of this module is to load the DXE Core from a Firmware Volume.\r
\r
Copyright (c) 2016 HP Development Company, L.P.\r
-Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
UINTN DataSize;\r
EFI_PEI_S3_RESUME2_PPI *S3Resume;\r
EFI_PEI_RECOVERY_MODULE_PPI *PeiRecovery;\r
+ EDKII_PEI_CAPSULE_ON_DISK_PPI *PeiCapsuleOnDisk;\r
EFI_MEMORY_TYPE_INFORMATION MemoryData[EfiMaxMemoryType + 1];\r
+ VOID *CapsuleOnDiskModePpi;\r
\r
//\r
// if in S3 Resume, restore configure\r
//\r
// Now should have a HOB with the DXE core\r
//\r
+ } else if (BootMode == BOOT_ON_FLASH_UPDATE) {\r
+ //\r
+ // If Capsule On Disk mode, call storage stack to read Capsule Relocation file\r
+ // IoMmmu is highly recommmended to enable before reading\r
+ //\r
+ Status = PeiServicesLocatePpi (\r
+ &gEdkiiPeiBootInCapsuleOnDiskModePpiGuid,\r
+ 0,\r
+ NULL,\r
+ &CapsuleOnDiskModePpi\r
+ );\r
+ if (!EFI_ERROR(Status)) {\r
+ Status = PeiServicesLocatePpi (\r
+ &gEdkiiPeiCapsuleOnDiskPpiGuid,\r
+ 0,\r
+ NULL,\r
+ (VOID **) &PeiCapsuleOnDisk\r
+ );\r
+\r
+ //\r
+ // Whether failed, still goes to Firmware Update boot path. BDS will clear corresponding indicator and reboot later on\r
+ //\r
+ if (!EFI_ERROR (Status)) {\r
+ Status = PeiCapsuleOnDisk->LoadCapsuleOnDisk (PeiServices, PeiCapsuleOnDisk);\r
+ }\r
+ }\r
}\r
\r
if (GetFirstGuidHob ((CONST EFI_GUID *)&gEfiMemoryTypeInformationGuid) == NULL) {\r