CorebootBdsLib: Call End of DXE event to allow booting 3rd party efi binaries.
This commit is contained in:
@ -1129,6 +1129,46 @@ Returns:
|
|||||||
Status = BaseMemoryTest (MemoryTestLevel);
|
Status = BaseMemoryTest (MemoryTestLevel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VOID
|
||||||
|
EFIAPI
|
||||||
|
InternalBdsEmptyCallbackFuntion (
|
||||||
|
IN EFI_EVENT Event,
|
||||||
|
IN VOID *Context
|
||||||
|
)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
VOID
|
||||||
|
InstallReadyToLock (
|
||||||
|
VOID
|
||||||
|
)
|
||||||
|
{
|
||||||
|
EFI_STATUS Status;
|
||||||
|
EFI_EVENT EndOfDxeEvent;
|
||||||
|
|
||||||
|
DEBUG((DEBUG_INFO,"InstallReadyToLock entering......\n"));
|
||||||
|
//
|
||||||
|
// Inform the SMM infrastructure that we're entering BDS and may run 3rd party code hereafter
|
||||||
|
// Since PI1.2.1, we need signal EndOfDxe as ExitPmAuth
|
||||||
|
//
|
||||||
|
Status = gBS->CreateEventEx (
|
||||||
|
EVT_NOTIFY_SIGNAL,
|
||||||
|
TPL_CALLBACK,
|
||||||
|
InternalBdsEmptyCallbackFuntion,
|
||||||
|
NULL,
|
||||||
|
&gEfiEndOfDxeEventGroupGuid,
|
||||||
|
&EndOfDxeEvent
|
||||||
|
);
|
||||||
|
ASSERT_EFI_ERROR (Status);
|
||||||
|
gBS->SignalEvent (EndOfDxeEvent);
|
||||||
|
gBS->CloseEvent (EndOfDxeEvent);
|
||||||
|
DEBUG((DEBUG_INFO,"All EndOfDxe callbacks have returned successfully\n"));
|
||||||
|
|
||||||
|
DEBUG((DEBUG_INFO,"InstallReadyToLock end\n"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
EFIAPI
|
EFIAPI
|
||||||
PlatformBdsPolicyBehavior (
|
PlatformBdsPolicyBehavior (
|
||||||
@ -1164,6 +1204,8 @@ Returns:
|
|||||||
EFI_INPUT_KEY Key;
|
EFI_INPUT_KEY Key;
|
||||||
EFI_BOOT_MODE BootMode;
|
EFI_BOOT_MODE BootMode;
|
||||||
|
|
||||||
|
InstallReadyToLock();
|
||||||
|
|
||||||
//
|
//
|
||||||
// Init the time out value
|
// Init the time out value
|
||||||
//
|
//
|
||||||
|
@ -58,6 +58,7 @@
|
|||||||
gEfiSmbiosTableGuid
|
gEfiSmbiosTableGuid
|
||||||
gEfiAcpiTableGuid
|
gEfiAcpiTableGuid
|
||||||
gLdrMemoryDescriptorGuid
|
gLdrMemoryDescriptorGuid
|
||||||
|
gEfiEndOfDxeEventGroupGuid
|
||||||
|
|
||||||
[Pcd]
|
[Pcd]
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut
|
gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut
|
||||||
|
Reference in New Issue
Block a user