#include <Library/UefiBootManagerLib.h>\r
#include <Library/UefiLib.h>\r
#include <Protocol/DevicePath.h>\r
+#include <Protocol/EsrtManagement.h>\r
#include <Protocol/GraphicsOutput.h>\r
#include <Protocol/LoadedImage.h>\r
#include <Protocol/PciIo.h>\r
VOID\r
)\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
+ ESRT_MANAGEMENT_PROTOCOL *EsrtManagement;\r
\r
if (GetBootModeHob() == BOOT_ON_FLASH_UPDATE) {\r
DEBUG ((DEBUG_INFO, "ProcessCapsules Before EndOfDxe ......\n"));\r
Status = ProcessCapsules ();\r
DEBUG ((DEBUG_INFO, "ProcessCapsules returned %r\n", Status));\r
+ } else {\r
+ if (EsrtManagement != NULL) {\r
+ EsrtManagement->SyncEsrtFmp ();\r
+ }\r
+ }\r
+\r
+ Status = gBS->LocateProtocol (&gEsrtManagementProtocolGuid, NULL,\r
+ (VOID **)&EsrtManagement);\r
+ if (EFI_ERROR (Status)) {\r
+ EsrtManagement = NULL;\r
}\r
\r
//\r
VOID\r
)\r
{\r
- EFI_STATUS Status;\r
+ ESRT_MANAGEMENT_PROTOCOL *EsrtManagement;\r
+ EFI_STATUS Status;\r
\r
//\r
// Show the splash screen.\r
//\r
EfiBootManagerConnectAll ();\r
\r
+ Status = gBS->LocateProtocol (&gEsrtManagementProtocolGuid, NULL,\r
+ (VOID **)&EsrtManagement);\r
+ if (!EFI_ERROR (Status)) {\r
+ EsrtManagement->SyncEsrtFmp ();\r
+ }\r
+\r
if (GetBootModeHob() == BOOT_ON_FLASH_UPDATE) {\r
DEBUG((DEBUG_INFO, "ProcessCapsules After EndOfDxe ......\n"));\r
Status = ProcessCapsules ();\r