]> git.proxmox.com Git - mirror_edk2.git/blame - UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformBootManager.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / UefiPayloadPkg / Library / PlatformBootManagerLib / PlatformBootManager.h
CommitLineData
6ef57974 1/** @file\r
04af8bf2
DG
2 Head file for BDS Platform specific code\r
3\r
4Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.<BR>\r
5SPDX-License-Identifier: BSD-2-Clause-Patent\r
6**/\r
7\r
6ef57974
GD
8#ifndef PLATFORM_BOOT_MANAGER_H_\r
9#define PLATFORM_BOOT_MANAGER_H_\r
04af8bf2
DG
10\r
11#include <PiDxe.h>\r
12#include <Protocol/LoadedImage.h>\r
13\r
14#include <Library/DebugLib.h>\r
15#include <Library/BaseMemoryLib.h>\r
16#include <Library/UefiBootServicesTableLib.h>\r
17#include <Library/UefiRuntimeServicesTableLib.h>\r
18#include <Library/MemoryAllocationLib.h>\r
19#include <Library/BaseLib.h>\r
20#include <Library/UefiRuntimeServicesTableLib.h>\r
21#include <Library/UefiLib.h>\r
22#include <Library/UefiBootManagerLib.h>\r
23#include <Library/PcdLib.h>\r
24#include <Library/DevicePathLib.h>\r
25#include <Library/HiiLib.h>\r
26#include <Library/PrintLib.h>\r
27#include <Library/DxeServicesLib.h>\r
28#include <Library/BootLogoLib.h>\r
29#include <Protocol/SmmAccess2.h>\r
30\r
31typedef struct {\r
e5efcf8b
MK
32 EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
33 UINTN ConnectType;\r
04af8bf2
DG
34} PLATFORM_CONSOLE_CONNECT_ENTRY;\r
35\r
36extern PLATFORM_CONSOLE_CONNECT_ENTRY gPlatformConsole[];\r
37\r
38#define gEndEntire \\r
39 { \\r
40 END_DEVICE_PATH_TYPE,\\r
41 END_ENTIRE_DEVICE_PATH_SUBTYPE,\\r
42 { END_DEVICE_PATH_LENGTH, 0 },\\r
43 }\r
44\r
e5efcf8b
MK
45#define CONSOLE_OUT BIT0\r
46#define CONSOLE_IN BIT1\r
47#define STD_ERROR BIT2\r
04af8bf2 48\r
e5efcf8b
MK
49#define CLASS_HID 3\r
50#define SUBCLASS_BOOT 1\r
51#define PROTOCOL_KEYBOARD 1\r
04af8bf2
DG
52\r
53typedef struct {\r
e5efcf8b
MK
54 USB_CLASS_DEVICE_PATH UsbClass;\r
55 EFI_DEVICE_PATH_PROTOCOL End;\r
04af8bf2
DG
56} USB_CLASS_FORMAT_DEVICE_PATH;\r
57\r
58typedef struct {\r
e5efcf8b
MK
59 VENDOR_DEVICE_PATH VendorDevicePath;\r
60 UINT32 Instance;\r
04af8bf2
DG
61} WIN_NT_VENDOR_DEVICE_PATH_NODE;\r
62\r
63//\r
64// Below is the platform console device path\r
65//\r
66typedef struct {\r
e5efcf8b
MK
67 VENDOR_DEVICE_PATH NtBus;\r
68 WIN_NT_VENDOR_DEVICE_PATH_NODE SerialDevice;\r
69 UART_DEVICE_PATH Uart;\r
70 VENDOR_DEVICE_PATH TerminalType;\r
71 EFI_DEVICE_PATH_PROTOCOL End;\r
04af8bf2
DG
72} NT_ISA_SERIAL_DEVICE_PATH;\r
73\r
74typedef struct {\r
e5efcf8b
MK
75 VENDOR_DEVICE_PATH NtBus;\r
76 WIN_NT_VENDOR_DEVICE_PATH_NODE NtGopDevice;\r
77 EFI_DEVICE_PATH_PROTOCOL End;\r
04af8bf2
DG
78} NT_PLATFORM_GOP_DEVICE_PATH;\r
79\r
e5efcf8b 80extern USB_CLASS_FORMAT_DEVICE_PATH gUsbClassKeyboardDevicePath;\r
04af8bf2
DG
81\r
82/**\r
83 Use SystemTable Conout to stop video based Simple Text Out consoles from going\r
84 to the video device. Put up LogoFile on every video device that is a console.\r
85\r
86 @param[in] LogoFile File name of logo to display on the center of the screen.\r
87\r
88 @retval EFI_SUCCESS ConsoleControl has been flipped to graphics and logo displayed.\r
89 @retval EFI_UNSUPPORTED Logo not found\r
90\r
91**/\r
92EFI_STATUS\r
93PlatformBootManagerEnableQuietBoot (\r
94 IN EFI_GUID *LogoFile\r
e5efcf8b 95 );\r
04af8bf2
DG
96\r
97/**\r
98 Use SystemTable Conout to turn on video based Simple Text Out consoles. The\r
99 Simple Text Out screens will now be synced up with all non video output devices\r
100\r
101 @retval EFI_SUCCESS UGA devices are back in text mode and synced up.\r
102\r
103**/\r
104EFI_STATUS\r
105PlatformBootManagerDisableQuietBoot (\r
106 VOID\r
e5efcf8b 107 );\r
04af8bf2
DG
108\r
109/**\r
110 Show progress bar with title above it. It only works in Graphics mode.\r
111\r
112 @param TitleForeground Foreground color for Title.\r
113 @param TitleBackground Background color for Title.\r
114 @param Title Title above progress bar.\r
115 @param ProgressColor Progress bar color.\r
116 @param Progress Progress (0-100)\r
117 @param PreviousValue The previous value of the progress.\r
118\r
119 @retval EFI_STATUS Success update the progress bar\r
120\r
121**/\r
122EFI_STATUS\r
123PlatformBootManagerShowProgress (\r
e5efcf8b
MK
124 IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL TitleForeground,\r
125 IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL TitleBackground,\r
126 IN CHAR16 *Title,\r
127 IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL ProgressColor,\r
128 IN UINTN Progress,\r
129 IN UINTN PreviousValue\r
130 );\r
04af8bf2
DG
131\r
132#endif // _PLATFORM_BOOT_MANAGER_H\r