]> git.proxmox.com Git - mirror_edk2.git/blame_incremental - OvmfPkg/Library/PlatformBootManagerLib/PlatformData.c
OvmfPkg/PlatformBootManagerLib: add USB keyboard to ConIn
[mirror_edk2.git] / OvmfPkg / Library / PlatformBootManagerLib / PlatformData.c
... / ...
CommitLineData
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
5 Copyright (c) 2004 - 2017, Intel Corporation. All rights reserved.<BR>\r
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
17\r
18//\r
19// Debug Agent UART Device Path structure\r
20//\r
21#pragma pack(1)\r
22typedef struct {\r
23 VENDOR_DEVICE_PATH VendorHardware;\r
24 UART_DEVICE_PATH Uart;\r
25 VENDOR_DEVICE_PATH TerminalType;\r
26 EFI_DEVICE_PATH_PROTOCOL End;\r
27} VENDOR_UART_DEVICE_PATH;\r
28#pragma pack()\r
29\r
30//\r
31// USB Keyboard Device Path structure\r
32//\r
33#pragma pack (1)\r
34typedef struct {\r
35 USB_CLASS_DEVICE_PATH Keyboard;\r
36 EFI_DEVICE_PATH_PROTOCOL End;\r
37} USB_KEYBOARD_DEVICE_PATH;\r
38#pragma pack ()\r
39\r
40ACPI_HID_DEVICE_PATH gPnpPs2KeyboardDeviceNode = gPnpPs2Keyboard;\r
41ACPI_HID_DEVICE_PATH gPnp16550ComPortDeviceNode = gPnp16550ComPort;\r
42UART_DEVICE_PATH gUartDeviceNode = gUart;\r
43VENDOR_DEVICE_PATH gTerminalTypeDeviceNode = gPcAnsiTerminal;\r
44\r
45//\r
46// Platform specific keyboard device path\r
47//\r
48\r
49\r
50//\r
51// Debug Agent UART Device Path\r
52//\r
53VENDOR_UART_DEVICE_PATH gDebugAgentUartDevicePath = {\r
54 {\r
55 {\r
56 HARDWARE_DEVICE_PATH,\r
57 HW_VENDOR_DP,\r
58 {\r
59 (UINT8) (sizeof (VENDOR_DEVICE_PATH)),\r
60 (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8)\r
61 }\r
62 },\r
63 EFI_DEBUG_AGENT_GUID,\r
64 },\r
65 {\r
66 {\r
67 MESSAGING_DEVICE_PATH,\r
68 MSG_UART_DP,\r
69 {\r
70 (UINT8) (sizeof (UART_DEVICE_PATH)),\r
71 (UINT8) ((sizeof (UART_DEVICE_PATH)) >> 8)\r
72 }\r
73 },\r
74 0, // Reserved\r
75 0, // BaudRate - Default\r
76 0, // DataBits - Default\r
77 0, // Parity - Default\r
78 0, // StopBits - Default\r
79 },\r
80 gPcAnsiTerminal,\r
81 gEndEntire\r
82};\r
83\r
84STATIC USB_KEYBOARD_DEVICE_PATH gUsbKeyboardDevicePath = {\r
85 {\r
86 {\r
87 MESSAGING_DEVICE_PATH,\r
88 MSG_USB_CLASS_DP,\r
89 {\r
90 (UINT8)sizeof (USB_CLASS_DEVICE_PATH),\r
91 (UINT8)(sizeof (USB_CLASS_DEVICE_PATH) >> 8)\r
92 }\r
93 },\r
94 0xFFFF, // VendorId: any\r
95 0xFFFF, // ProductId: any\r
96 3, // DeviceClass: HID\r
97 1, // DeviceSubClass: boot\r
98 1 // DeviceProtocol: keyboard\r
99 },\r
100 gEndEntire\r
101};\r
102\r
103//\r
104// Predefined platform default console device path\r
105//\r
106PLATFORM_CONSOLE_CONNECT_ENTRY gPlatformConsole[] = {\r
107 {\r
108 (EFI_DEVICE_PATH_PROTOCOL *) &gDebugAgentUartDevicePath,\r
109 (CONSOLE_OUT | CONSOLE_IN | STD_ERROR)\r
110 },\r
111 {\r
112 (EFI_DEVICE_PATH_PROTOCOL *)&gUsbKeyboardDevicePath,\r
113 CONSOLE_IN\r
114 },\r
115 {\r
116 NULL,\r
117 0\r
118 }\r
119};\r
120\r
121//\r
122// Predefined platform connect sequence\r
123//\r
124EFI_DEVICE_PATH_PROTOCOL *gPlatformConnectSequence[] = { NULL };\r
125\r