2 Defined the platform specific device path which will be used by
3 platform Bbd to perform the platform policy connect.
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
11 #include "BdsPlatform.h"
12 #include <Guid/QemuRamfb.h>
13 #include <Guid/SerialPortLibVendor.h>
16 // Vendor UART Device Path structure
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
;
28 // USB Keyboard Device Path structure
32 USB_CLASS_DEVICE_PATH Keyboard
;
33 EFI_DEVICE_PATH_PROTOCOL End
;
34 } USB_KEYBOARD_DEVICE_PATH
;
38 // QemuRamfb Device Path structure
42 VENDOR_DEVICE_PATH Vendor
;
43 ACPI_ADR_DEVICE_PATH AcpiAdr
;
44 EFI_DEVICE_PATH_PROTOCOL End
;
45 } VENDOR_RAMFB_DEVICE_PATH
;
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
;
54 // Platform specific keyboard device path
58 // Debug Agent UART Device Path
60 VENDOR_UART_DEVICE_PATH gDebugAgentUartDevicePath
= {
66 (UINT8
)(sizeof (VENDOR_DEVICE_PATH
)),
67 (UINT8
)((sizeof (VENDOR_DEVICE_PATH
)) >> 8)
74 MESSAGING_DEVICE_PATH
,
77 (UINT8
)(sizeof (UART_DEVICE_PATH
)),
78 (UINT8
)((sizeof (UART_DEVICE_PATH
)) >> 8)
82 0, // BaudRate - Default
83 0, // DataBits - Default
84 0, // Parity - Default
85 0, // StopBits - Default
91 STATIC USB_KEYBOARD_DEVICE_PATH gUsbKeyboardDevicePath
= {
94 MESSAGING_DEVICE_PATH
,
97 (UINT8
)sizeof (USB_CLASS_DEVICE_PATH
),
98 (UINT8
)(sizeof (USB_CLASS_DEVICE_PATH
) >> 8)
101 0xFFFF, // VendorId: any
102 0xFFFF, // ProductId: any
103 3, // DeviceClass: HID
104 1, // DeviceSubClass: boot
105 1 // DeviceProtocol: keyboard
110 STATIC VENDOR_RAMFB_DEVICE_PATH gQemuRamfbDevicePath
= {
113 HARDWARE_DEVICE_PATH
,
116 (UINT8
)(sizeof (VENDOR_DEVICE_PATH
)),
117 (UINT8
)((sizeof (VENDOR_DEVICE_PATH
)) >> 8)
127 (UINT8
)(sizeof (ACPI_ADR_DEVICE_PATH
)),
128 (UINT8
)((sizeof (ACPI_ADR_DEVICE_PATH
)) >> 8)
137 ACPI_ADR_DISPLAY_TYPE_EXTERNAL_DIGITAL
, // Type
145 STATIC VENDOR_UART_DEVICE_PATH gXenConsoleDevicePath
= {
148 HARDWARE_DEVICE_PATH
,
151 (UINT8
)(sizeof (VENDOR_DEVICE_PATH
)),
152 (UINT8
)((sizeof (VENDOR_DEVICE_PATH
)) >> 8)
155 EDKII_SERIAL_PORT_LIB_VENDOR_GUID
159 MESSAGING_DEVICE_PATH
,
162 (UINT8
)(sizeof (UART_DEVICE_PATH
)),
163 (UINT8
)((sizeof (UART_DEVICE_PATH
)) >> 8)
167 FixedPcdGet64 (PcdUartDefaultBaudRate
),
168 FixedPcdGet8 (PcdUartDefaultDataBits
),
169 FixedPcdGet8 (PcdUartDefaultParity
),
170 FixedPcdGet8 (PcdUartDefaultStopBits
),
177 // Predefined platform default console device path
179 PLATFORM_CONSOLE_CONNECT_ENTRY gPlatformConsole
[] = {
181 (EFI_DEVICE_PATH_PROTOCOL
*)&gDebugAgentUartDevicePath
,
182 (CONSOLE_OUT
| CONSOLE_IN
| STD_ERROR
)
185 (EFI_DEVICE_PATH_PROTOCOL
*)&gUsbKeyboardDevicePath
,
189 (EFI_DEVICE_PATH_PROTOCOL
*)&gQemuRamfbDevicePath
,
198 PLATFORM_CONSOLE_CONNECT_ENTRY gXenPlatformConsole
[] = {
200 (EFI_DEVICE_PATH_PROTOCOL
*)&gXenConsoleDevicePath
,
201 (CONSOLE_OUT
| CONSOLE_IN
| STD_ERROR
)
210 // Predefined platform connect sequence
212 EFI_DEVICE_PATH_PROTOCOL
*gPlatformConnectSequence
[] = { NULL
};