]> git.proxmox.com Git - mirror_edk2.git/blame - OvmfPkg/Library/PlatformBootManagerLib/PlatformData.c
OvmfPkg: add QemuRamfb to platform console
[mirror_edk2.git] / OvmfPkg / Library / PlatformBootManagerLib / PlatformData.c
CommitLineData
30541881
RN
1/** @file\r
2 Defined the platform specific device path which will be used by\r
3 platform Bbd to perform the platform policy connect.\r
4\r
f4d575b5 5 Copyright (c) 2004 - 2017, Intel Corporation. All rights reserved.<BR>\r
30541881
RN
6 This program and the accompanying materials\r
7 are licensed and made available under the terms and conditions of the BSD License\r
8 which accompanies this distribution. The full text of the license may be found at\r
9 http://opensource.org/licenses/bsd-license.php\r
10\r
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
13\r
14**/\r
15\r
16#include "BdsPlatform.h"\r
04cb578d 17#include <Guid/QemuRamfb.h>\r
30541881 18\r
f4d575b5
MK
19//\r
20// Debug Agent UART Device Path structure\r
21//\r
22#pragma pack(1)\r
23typedef struct {\r
24 VENDOR_DEVICE_PATH VendorHardware;\r
25 UART_DEVICE_PATH Uart;\r
26 VENDOR_DEVICE_PATH TerminalType;\r
27 EFI_DEVICE_PATH_PROTOCOL End;\r
28} VENDOR_UART_DEVICE_PATH;\r
29#pragma pack()\r
30\r
5e0e476a
LE
31//\r
32// USB Keyboard Device Path structure\r
33//\r
34#pragma pack (1)\r
35typedef struct {\r
36 USB_CLASS_DEVICE_PATH Keyboard;\r
37 EFI_DEVICE_PATH_PROTOCOL End;\r
38} USB_KEYBOARD_DEVICE_PATH;\r
39#pragma pack ()\r
40\r
04cb578d
GH
41//\r
42// QemuRamfb Device Path structure\r
43//\r
44#pragma pack (1)\r
45typedef struct {\r
46 VENDOR_DEVICE_PATH Vendor;\r
47 ACPI_ADR_DEVICE_PATH AcpiAdr;\r
48 EFI_DEVICE_PATH_PROTOCOL End;\r
49} VENDOR_RAMFB_DEVICE_PATH;\r
50#pragma pack ()\r
51\r
30541881
RN
52ACPI_HID_DEVICE_PATH gPnpPs2KeyboardDeviceNode = gPnpPs2Keyboard;\r
53ACPI_HID_DEVICE_PATH gPnp16550ComPortDeviceNode = gPnp16550ComPort;\r
54UART_DEVICE_PATH gUartDeviceNode = gUart;\r
55VENDOR_DEVICE_PATH gTerminalTypeDeviceNode = gPcAnsiTerminal;\r
56\r
57//\r
58// Platform specific keyboard device path\r
59//\r
60\r
f4d575b5
MK
61\r
62//\r
63// Debug Agent UART Device Path\r
64//\r
65VENDOR_UART_DEVICE_PATH gDebugAgentUartDevicePath = {\r
66 {\r
67 {\r
68 HARDWARE_DEVICE_PATH,\r
69 HW_VENDOR_DP,\r
70 {\r
71 (UINT8) (sizeof (VENDOR_DEVICE_PATH)),\r
72 (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8)\r
73 }\r
74 },\r
75 EFI_DEBUG_AGENT_GUID,\r
76 },\r
77 {\r
78 {\r
79 MESSAGING_DEVICE_PATH,\r
80 MSG_UART_DP,\r
81 {\r
82 (UINT8) (sizeof (UART_DEVICE_PATH)),\r
83 (UINT8) ((sizeof (UART_DEVICE_PATH)) >> 8)\r
84 }\r
85 },\r
86 0, // Reserved\r
87 0, // BaudRate - Default\r
88 0, // DataBits - Default\r
89 0, // Parity - Default\r
90 0, // StopBits - Default\r
91 },\r
92 gPcAnsiTerminal,\r
93 gEndEntire\r
94};\r
95\r
5e0e476a
LE
96STATIC USB_KEYBOARD_DEVICE_PATH gUsbKeyboardDevicePath = {\r
97 {\r
98 {\r
99 MESSAGING_DEVICE_PATH,\r
100 MSG_USB_CLASS_DP,\r
101 {\r
102 (UINT8)sizeof (USB_CLASS_DEVICE_PATH),\r
103 (UINT8)(sizeof (USB_CLASS_DEVICE_PATH) >> 8)\r
104 }\r
105 },\r
106 0xFFFF, // VendorId: any\r
107 0xFFFF, // ProductId: any\r
108 3, // DeviceClass: HID\r
109 1, // DeviceSubClass: boot\r
110 1 // DeviceProtocol: keyboard\r
111 },\r
112 gEndEntire\r
113};\r
f4d575b5 114\r
04cb578d
GH
115STATIC VENDOR_RAMFB_DEVICE_PATH gQemuRamfbDevicePath = {\r
116 {\r
117 {\r
118 HARDWARE_DEVICE_PATH,\r
119 HW_VENDOR_DP,\r
120 {\r
121 (UINT8) (sizeof (VENDOR_DEVICE_PATH)),\r
122 (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8)\r
123 }\r
124 },\r
125 QEMU_RAMFB_GUID,\r
126 },\r
127 {\r
128 {\r
129 ACPI_DEVICE_PATH,\r
130 ACPI_ADR_DP,\r
131 {\r
132 (UINT8) (sizeof (ACPI_ADR_DEVICE_PATH)),\r
133 (UINT8) ((sizeof (ACPI_ADR_DEVICE_PATH)) >> 8)\r
134 }\r
135 },\r
136 ACPI_DISPLAY_ADR (\r
137 1, // DeviceIdScheme\r
138 0, // HeadId\r
139 0, // NonVgaOutput\r
140 1, // BiosCanDetect\r
141 0, // VendorInfo\r
142 ACPI_ADR_DISPLAY_TYPE_EXTERNAL_DIGITAL, // Type\r
143 0, // Port\r
144 0 // Index\r
145 ),\r
146 },\r
147 gEndEntire\r
148};\r
149\r
30541881
RN
150//\r
151// Predefined platform default console device path\r
152//\r
e9e9ad64 153PLATFORM_CONSOLE_CONNECT_ENTRY gPlatformConsole[] = {\r
f4d575b5
MK
154 {\r
155 (EFI_DEVICE_PATH_PROTOCOL *) &gDebugAgentUartDevicePath,\r
156 (CONSOLE_OUT | CONSOLE_IN | STD_ERROR)\r
157 },\r
5e0e476a
LE
158 {\r
159 (EFI_DEVICE_PATH_PROTOCOL *)&gUsbKeyboardDevicePath,\r
160 CONSOLE_IN\r
161 },\r
04cb578d
GH
162 {\r
163 (EFI_DEVICE_PATH_PROTOCOL *)&gQemuRamfbDevicePath,\r
164 CONSOLE_OUT\r
165 },\r
30541881
RN
166 {\r
167 NULL,\r
168 0\r
169 }\r
170};\r
171\r
30541881
RN
172//\r
173// Predefined platform connect sequence\r
174//\r
175EFI_DEVICE_PATH_PROTOCOL *gPlatformConnectSequence[] = { NULL };\r
176\r