]> git.proxmox.com Git - mirror_edk2.git/blob - OvmfPkg/Library/PlatformBootManagerLibGrub/PlatformData.c
OvmfPkg: Apply uncrustify changes
[mirror_edk2.git] / OvmfPkg / Library / PlatformBootManagerLibGrub / PlatformData.c
1 /** @file
2 Defined the platform specific device path which will be used by
3 platform Bbd to perform the platform policy connect.
4
5 Copyright (C) 2020 James Bottomley, IBM Corporation.
6 Copyright (c) 2004 - 2017, Intel Corporation. All rights reserved.<BR>
7 SPDX-License-Identifier: BSD-2-Clause-Patent
8
9 **/
10
11 #include "BdsPlatform.h"
12 #include <Guid/QemuRamfb.h>
13 #include <Guid/SerialPortLibVendor.h>
14
15 //
16 // Vendor UART Device Path structure
17 //
18 #pragma pack (1)
19 typedef struct {
20 VENDOR_DEVICE_PATH VendorHardware;
21 UART_DEVICE_PATH Uart;
22 VENDOR_DEVICE_PATH TerminalType;
23 EFI_DEVICE_PATH_PROTOCOL End;
24 } VENDOR_UART_DEVICE_PATH;
25 #pragma pack ()
26
27 //
28 // USB Keyboard Device Path structure
29 //
30 #pragma pack (1)
31 typedef struct {
32 USB_CLASS_DEVICE_PATH Keyboard;
33 EFI_DEVICE_PATH_PROTOCOL End;
34 } USB_KEYBOARD_DEVICE_PATH;
35 #pragma pack ()
36
37 //
38 // QemuRamfb Device Path structure
39 //
40 #pragma pack (1)
41 typedef struct {
42 VENDOR_DEVICE_PATH Vendor;
43 ACPI_ADR_DEVICE_PATH AcpiAdr;
44 EFI_DEVICE_PATH_PROTOCOL End;
45 } VENDOR_RAMFB_DEVICE_PATH;
46 #pragma pack ()
47
48 ACPI_HID_DEVICE_PATH gPnpPs2KeyboardDeviceNode = gPnpPs2Keyboard;
49 ACPI_HID_DEVICE_PATH gPnp16550ComPortDeviceNode = gPnp16550ComPort;
50 UART_DEVICE_PATH gUartDeviceNode = gUart;
51 VENDOR_DEVICE_PATH gTerminalTypeDeviceNode = gPcAnsiTerminal;
52
53 //
54 // Platform specific keyboard device path
55 //
56
57 //
58 // Debug Agent UART Device Path
59 //
60 VENDOR_UART_DEVICE_PATH gDebugAgentUartDevicePath = {
61 {
62 {
63 HARDWARE_DEVICE_PATH,
64 HW_VENDOR_DP,
65 {
66 (UINT8)(sizeof (VENDOR_DEVICE_PATH)),
67 (UINT8)((sizeof (VENDOR_DEVICE_PATH)) >> 8)
68 }
69 },
70 EFI_DEBUG_AGENT_GUID,
71 },
72 {
73 {
74 MESSAGING_DEVICE_PATH,
75 MSG_UART_DP,
76 {
77 (UINT8)(sizeof (UART_DEVICE_PATH)),
78 (UINT8)((sizeof (UART_DEVICE_PATH)) >> 8)
79 }
80 },
81 0, // Reserved
82 0, // BaudRate - Default
83 0, // DataBits - Default
84 0, // Parity - Default
85 0, // StopBits - Default
86 },
87 gPcAnsiTerminal,
88 gEndEntire
89 };
90
91 STATIC USB_KEYBOARD_DEVICE_PATH gUsbKeyboardDevicePath = {
92 {
93 {
94 MESSAGING_DEVICE_PATH,
95 MSG_USB_CLASS_DP,
96 {
97 (UINT8)sizeof (USB_CLASS_DEVICE_PATH),
98 (UINT8)(sizeof (USB_CLASS_DEVICE_PATH) >> 8)
99 }
100 },
101 0xFFFF, // VendorId: any
102 0xFFFF, // ProductId: any
103 3, // DeviceClass: HID
104 1, // DeviceSubClass: boot
105 1 // DeviceProtocol: keyboard
106 },
107 gEndEntire
108 };
109
110 STATIC VENDOR_RAMFB_DEVICE_PATH gQemuRamfbDevicePath = {
111 {
112 {
113 HARDWARE_DEVICE_PATH,
114 HW_VENDOR_DP,
115 {
116 (UINT8)(sizeof (VENDOR_DEVICE_PATH)),
117 (UINT8)((sizeof (VENDOR_DEVICE_PATH)) >> 8)
118 }
119 },
120 QEMU_RAMFB_GUID,
121 },
122 {
123 {
124 ACPI_DEVICE_PATH,
125 ACPI_ADR_DP,
126 {
127 (UINT8)(sizeof (ACPI_ADR_DEVICE_PATH)),
128 (UINT8)((sizeof (ACPI_ADR_DEVICE_PATH)) >> 8)
129 }
130 },
131 ACPI_DISPLAY_ADR (
132 1, // DeviceIdScheme
133 0, // HeadId
134 0, // NonVgaOutput
135 1, // BiosCanDetect
136 0, // VendorInfo
137 ACPI_ADR_DISPLAY_TYPE_EXTERNAL_DIGITAL, // Type
138 0, // Port
139 0 // Index
140 ),
141 },
142 gEndEntire
143 };
144
145 STATIC VENDOR_UART_DEVICE_PATH gXenConsoleDevicePath = {
146 {
147 {
148 HARDWARE_DEVICE_PATH,
149 HW_VENDOR_DP,
150 {
151 (UINT8)(sizeof (VENDOR_DEVICE_PATH)),
152 (UINT8)((sizeof (VENDOR_DEVICE_PATH)) >> 8)
153 }
154 },
155 EDKII_SERIAL_PORT_LIB_VENDOR_GUID
156 },
157 {
158 {
159 MESSAGING_DEVICE_PATH,
160 MSG_UART_DP,
161 {
162 (UINT8)(sizeof (UART_DEVICE_PATH)),
163 (UINT8)((sizeof (UART_DEVICE_PATH)) >> 8)
164 }
165 },
166 0,
167 FixedPcdGet64 (PcdUartDefaultBaudRate),
168 FixedPcdGet8 (PcdUartDefaultDataBits),
169 FixedPcdGet8 (PcdUartDefaultParity),
170 FixedPcdGet8 (PcdUartDefaultStopBits),
171 },
172 gPcAnsiTerminal,
173 gEndEntire
174 };
175
176 //
177 // Predefined platform default console device path
178 //
179 PLATFORM_CONSOLE_CONNECT_ENTRY gPlatformConsole[] = {
180 {
181 (EFI_DEVICE_PATH_PROTOCOL *)&gDebugAgentUartDevicePath,
182 (CONSOLE_OUT | CONSOLE_IN | STD_ERROR)
183 },
184 {
185 (EFI_DEVICE_PATH_PROTOCOL *)&gUsbKeyboardDevicePath,
186 CONSOLE_IN
187 },
188 {
189 (EFI_DEVICE_PATH_PROTOCOL *)&gQemuRamfbDevicePath,
190 CONSOLE_OUT
191 },
192 {
193 NULL,
194 0
195 }
196 };
197
198 PLATFORM_CONSOLE_CONNECT_ENTRY gXenPlatformConsole[] = {
199 {
200 (EFI_DEVICE_PATH_PROTOCOL *)&gXenConsoleDevicePath,
201 (CONSOLE_OUT | CONSOLE_IN | STD_ERROR)
202 },
203 {
204 NULL,
205 0
206 }
207 };
208
209 //
210 // Predefined platform connect sequence
211 //
212 EFI_DEVICE_PATH_PROTOCOL *gPlatformConnectSequence[] = { NULL };