mirror of https://github.com/acidanthera/audk.git
OvmfPkg/PlatformBootManagerLib: add USB keyboard to ConIn
PlatformInitializeConsole() (called by PlatformBootManagerBeforeConsole())
adds elements of "gPlatformConsole" to ConIn / ConOut / ErrOut (as
requested per element) if at boot at least one of ConIn and ConOut doesn't
exist. This typically applies to new VMs, and VMs with freshly recreated
varstores.
Add a USB keyboard wildcard to ConIn via "gPlatformConsole", so that we
not only bind the PS/2 keyboard. (The PS/2 keyboard is added in
PrepareLpcBridgeDevicePath()). Explicitly connecting the USB keyboard is
necessary after commit 245c643cc8
.
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
This commit is contained in:
parent
d4ee449d1d
commit
5e0e476a95
|
@ -27,6 +27,16 @@ typedef struct {
|
||||||
} VENDOR_UART_DEVICE_PATH;
|
} VENDOR_UART_DEVICE_PATH;
|
||||||
#pragma pack()
|
#pragma pack()
|
||||||
|
|
||||||
|
//
|
||||||
|
// USB Keyboard Device Path structure
|
||||||
|
//
|
||||||
|
#pragma pack (1)
|
||||||
|
typedef struct {
|
||||||
|
USB_CLASS_DEVICE_PATH Keyboard;
|
||||||
|
EFI_DEVICE_PATH_PROTOCOL End;
|
||||||
|
} USB_KEYBOARD_DEVICE_PATH;
|
||||||
|
#pragma pack ()
|
||||||
|
|
||||||
ACPI_HID_DEVICE_PATH gPnpPs2KeyboardDeviceNode = gPnpPs2Keyboard;
|
ACPI_HID_DEVICE_PATH gPnpPs2KeyboardDeviceNode = gPnpPs2Keyboard;
|
||||||
ACPI_HID_DEVICE_PATH gPnp16550ComPortDeviceNode = gPnp16550ComPort;
|
ACPI_HID_DEVICE_PATH gPnp16550ComPortDeviceNode = gPnp16550ComPort;
|
||||||
UART_DEVICE_PATH gUartDeviceNode = gUart;
|
UART_DEVICE_PATH gUartDeviceNode = gUart;
|
||||||
|
@ -71,6 +81,24 @@ VENDOR_UART_DEVICE_PATH gDebugAgentUartDevicePath = {
|
||||||
gEndEntire
|
gEndEntire
|
||||||
};
|
};
|
||||||
|
|
||||||
|
STATIC USB_KEYBOARD_DEVICE_PATH gUsbKeyboardDevicePath = {
|
||||||
|
{
|
||||||
|
{
|
||||||
|
MESSAGING_DEVICE_PATH,
|
||||||
|
MSG_USB_CLASS_DP,
|
||||||
|
{
|
||||||
|
(UINT8)sizeof (USB_CLASS_DEVICE_PATH),
|
||||||
|
(UINT8)(sizeof (USB_CLASS_DEVICE_PATH) >> 8)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
0xFFFF, // VendorId: any
|
||||||
|
0xFFFF, // ProductId: any
|
||||||
|
3, // DeviceClass: HID
|
||||||
|
1, // DeviceSubClass: boot
|
||||||
|
1 // DeviceProtocol: keyboard
|
||||||
|
},
|
||||||
|
gEndEntire
|
||||||
|
};
|
||||||
|
|
||||||
//
|
//
|
||||||
// Predefined platform default console device path
|
// Predefined platform default console device path
|
||||||
|
@ -80,6 +108,10 @@ PLATFORM_CONSOLE_CONNECT_ENTRY gPlatformConsole[] = {
|
||||||
(EFI_DEVICE_PATH_PROTOCOL *) &gDebugAgentUartDevicePath,
|
(EFI_DEVICE_PATH_PROTOCOL *) &gDebugAgentUartDevicePath,
|
||||||
(CONSOLE_OUT | CONSOLE_IN | STD_ERROR)
|
(CONSOLE_OUT | CONSOLE_IN | STD_ERROR)
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
(EFI_DEVICE_PATH_PROTOCOL *)&gUsbKeyboardDevicePath,
|
||||||
|
CONSOLE_IN
|
||||||
|
},
|
||||||
{
|
{
|
||||||
NULL,
|
NULL,
|
||||||
0
|
0
|
||||||
|
|
Loading…
Reference in New Issue