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);
|
||||
}
|
||||
|
||||
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
|
||||
EFIAPI
|
||||
PlatformBdsPolicyBehavior (
|
||||
@ -1164,6 +1204,8 @@ Returns:
|
||||
EFI_INPUT_KEY Key;
|
||||
EFI_BOOT_MODE BootMode;
|
||||
|
||||
InstallReadyToLock();
|
||||
|
||||
//
|
||||
// Init the time out value
|
||||
//
|
||||
|
@ -58,6 +58,7 @@
|
||||
gEfiSmbiosTableGuid
|
||||
gEfiAcpiTableGuid
|
||||
gLdrMemoryDescriptorGuid
|
||||
gEfiEndOfDxeEventGroupGuid
|
||||
|
||||
[Pcd]
|
||||
gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut
|
||||
|
Reference in New Issue
Block a user