REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2336

As Minplatform's PlatformBootManager library instance implements
event signals (as specified in the minimum platform specification)
to trigger board actions, some of its functions namely
PlatformBootManagerWaitCallback and PlatformBootManagerUnableToBoot
will not have events signaled for boards to take action.

This library implements PlatformBootManagerWaitCallback
and PlatformBootManagerUnableToBoot which will be linked to Minplatform's
PlatformBootManager libary instance.

Added is an interface/header file that defines the board boot manager
library.

Also added is a NULL implementation of the board boot manager library

Cc: Michael Kubacki <michael.a.kuba...@intel.com>
Cc: Chasel Chiu <chasel.c...@intel.com>
Cc: Nate DeSimone <nathaniel.l.desim...@intel.com>

Signed-off-by: Prince Agyeman <prince.agye...@intel.com>
---
 .../BoardBootManagerLib.c                     | 38 ++++++++++++++++++
 .../BoardBootManagerLibNull.inf               | 31 +++++++++++++++
 .../Include/Library/BoardBootManagerLib.h     | 39 +++++++++++++++++++
 3 files changed, 108 insertions(+)
 create mode 100644 
Platform/Intel/MinPlatformPkg/Bds/Library/BoardBootManagerLibNull/BoardBootManagerLib.c
 create mode 100644 
Platform/Intel/MinPlatformPkg/Bds/Library/BoardBootManagerLibNull/BoardBootManagerLibNull.inf
 create mode 100644 
Platform/Intel/MinPlatformPkg/Include/Library/BoardBootManagerLib.h

diff --git 
a/Platform/Intel/MinPlatformPkg/Bds/Library/BoardBootManagerLibNull/BoardBootManagerLib.c
 
b/Platform/Intel/MinPlatformPkg/Bds/Library/BoardBootManagerLibNull/BoardBootManagerLib.c
new file mode 100644
index 0000000000..46fce8f59f
--- /dev/null
+++ 
b/Platform/Intel/MinPlatformPkg/Bds/Library/BoardBootManagerLibNull/BoardBootManagerLib.c
@@ -0,0 +1,38 @@
+/** @file
+  This file include board specific boot manager callbacks
+
+  Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
+  SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+#include <Library/BoardBootManagerLib.h>
+
+/**
+  This function is called each second during the boot manager waits timeout.
+
+  @param TimeoutRemain  The remaining timeout.
+**/
+VOID
+EFIAPI
+BoardBootManagerWaitCallback (
+  IN UINT16          TimeoutRemain
+  )
+{
+  return;
+}
+
+/**
+  The function is called when no boot option could be launched,
+  including platform recovery options and options pointing to applications
+  built into firmware volumes.
+
+**/
+VOID
+EFIAPI
+BoardBootManagerUnableToBoot (
+  VOID
+  )
+{
+  return;
+}
+
diff --git 
a/Platform/Intel/MinPlatformPkg/Bds/Library/BoardBootManagerLibNull/BoardBootManagerLibNull.inf
 
b/Platform/Intel/MinPlatformPkg/Bds/Library/BoardBootManagerLibNull/BoardBootManagerLibNull.inf
new file mode 100644
index 0000000000..084207b111
--- /dev/null
+++ 
b/Platform/Intel/MinPlatformPkg/Bds/Library/BoardBootManagerLibNull/BoardBootManagerLibNull.inf
@@ -0,0 +1,31 @@
+## @file
+#  The module definition file for BoardBootManagerLib.
+#
+#  Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
+#  SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+##
+
+[Defines]
+  INF_VERSION                    = 0x00010005
+  BASE_NAME                      = BoardBootManagerLib
+  FILE_GUID                      = 7BA684A4-5B32-4F0C-B0FF-581F143E606C
+  MODULE_TYPE                    = DXE_DRIVER
+  VERSION_STRING                 = 1.0
+  LIBRARY_CLASS                  = BoardBootManagerLib|DXE_DRIVER
+
+
+#
+# The following information is for reference only and not required by the 
build tools.
+#
+#  VALID_ARCHITECTURES           = IA32 X64 EBC
+#
+
+[Sources]
+  BoardBootManagerLib.c
+
+
+[Packages]
+  MdePkg/MdePkg.dec
+  MdeModulePkg/MdeModulePkg.dec
+  MinPlatformPkg/MinPlatformPkg.dec
diff --git 
a/Platform/Intel/MinPlatformPkg/Include/Library/BoardBootManagerLib.h 
b/Platform/Intel/MinPlatformPkg/Include/Library/BoardBootManagerLib.h
new file mode 100644
index 0000000000..4240142073
--- /dev/null
+++ b/Platform/Intel/MinPlatformPkg/Include/Library/BoardBootManagerLib.h
@@ -0,0 +1,39 @@
+/** @file
+  Board Boot Manager library definition. A platform can implement
+  instances to support platform-specific behavior.
+
+  Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
+  SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+
+#ifndef __BOARD_BOOT_MANAGER_LIB_H_
+#define __BOARD_BOOT_MANAGER_LIB_H_
+#include <Library/UefiBootManagerLib.h>
+
+
+/**
+  This function is called each second during boot manager waits the timeout.
+
+  @param TimeoutRemain  The remaining timeout.
+**/
+VOID
+EFIAPI
+BoardBootManagerWaitCallback (
+  IN UINT16          TimeoutRemain
+  );
+
+/**
+  The function is called when no boot option could be launched,
+  including platform recovery options and options pointing to applications
+  built into firmware volumes.
+
+**/
+VOID
+EFIAPI
+BoardBootManagerUnableToBoot (
+  VOID
+  );
+
+#endif
-- 
2.19.1.windows.1


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#52227): https://edk2.groups.io/g/devel/message/52227
Mute This Topic: https://groups.io/mt/68590731/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to