|
@@ -0,0 +1,67 @@
|
|
|
+/** @file
|
|
|
+ The Board Boot Manager Library implements BoardBootManagerWaitCallback
|
|
|
+ and BoardBootManagerUnableToBoot callback, which is linked to the
|
|
|
+ Platform Boot Manager Library
|
|
|
+
|
|
|
+ Copyright (c) 2019 Intel Corporation. All rights reserved. <BR>
|
|
|
+
|
|
|
+ SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
|
+**/
|
|
|
+
|
|
|
+#include <Library/DebugLib.h>
|
|
|
+#include <Library/UefiBootServicesTableLib.h>
|
|
|
+#include <Library/PlatformBootManagerLib.h>
|
|
|
+#include <Library/UefiLib.h>
|
|
|
+#include <Library/HobLib.h>
|
|
|
+#include <Library/PcdLib.h>
|
|
|
+#include <Library/PrintLib.h>
|
|
|
+#include <Library/PerformanceLib.h>
|
|
|
+#include <Library/BootLogoLib.h>
|
|
|
+#include <Library/BoardBootManagerLib.h>
|
|
|
+
|
|
|
+/**
|
|
|
+ This function is called each second during the boot manager waits the
|
|
|
+ timeout.
|
|
|
+
|
|
|
+ @param TimeoutRemain The remaining timeout.
|
|
|
+**/
|
|
|
+VOID
|
|
|
+EFIAPI
|
|
|
+BoardBootManagerWaitCallback (
|
|
|
+ UINT16 TimeoutRemain
|
|
|
+ )
|
|
|
+{
|
|
|
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION Black;
|
|
|
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION White;
|
|
|
+ UINT16 Timeout;
|
|
|
+
|
|
|
+ Timeout = PcdGet16 (PcdPlatformBootTimeOut);
|
|
|
+
|
|
|
+ Black.Raw = 0x00000000;
|
|
|
+ White.Raw = 0x00FFFFFF;
|
|
|
+
|
|
|
+ BootLogoUpdateProgress (
|
|
|
+ White.Pixel,
|
|
|
+ Black.Pixel,
|
|
|
+ L"Start boot option",
|
|
|
+ White.Pixel,
|
|
|
+ (Timeout - TimeoutRemain) * 100 / Timeout,
|
|
|
+ 0
|
|
|
+ );
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ The function is called when no boot option could be launched,
|
|
|
+ including platform recovery options and options pointing to applications
|
|
|
+ built into firmware volumes.
|
|
|
+
|
|
|
+ If this function returns, BDS attempts to enter an infinite loop.
|
|
|
+**/
|
|
|
+VOID
|
|
|
+EFIAPI
|
|
|
+BoardBootManagerUnableToBoot (
|
|
|
+ VOID
|
|
|
+ )
|
|
|
+{
|
|
|
+
|
|
|
+}
|