#define gPnp16550ComPort \\r
PNPID_DEVICE_PATH_NODE(0x0501)\r
\r
+#define gPnpPs2Keyboard \\r
+ PNPID_DEVICE_PATH_NODE(0x0303)\r
+\r
#define gUartVendor \\r
{ \\r
{ \\r
DEVICE_PATH_MESSAGING_PC_ANSI \\r
}\r
\r
-\r
+ACPI_HID_DEVICE_PATH gPnpPs2KeyboardDeviceNode = gPnpPs2Keyboard;\r
ACPI_HID_DEVICE_PATH gPnp16550ComPortDeviceNode = gPnp16550ComPort;\r
UART_DEVICE_PATH gUartDeviceNode = gUart;\r
VENDOR_DEVICE_PATH gTerminalTypeDeviceNode = gPcAnsiTerminal;\r
BOOLEAN mDetectVgaOnly;\r
\r
/**\r
- Add UART to ConOut, ConIn, ErrOut.\r
+ Add IsaKeyboard to ConIn; add IsaSerial to ConOut, ConIn, ErrOut.\r
\r
- @param[in] DeviceHandle - LPC device path.\r
+ @param[in] DeviceHandle Handle of the LPC Bridge device.\r
\r
- @retval EFI_SUCCESS - Serial console is added to ConOut, ConIn, and ErrOut.\r
- @retval EFI_STATUS - No serial console is added.\r
+ @retval EFI_SUCCESS Console devices on the LPC bridge have been added to\r
+ ConOut, ConIn, and ErrOut.\r
+\r
+ @return Error codes, due to EFI_DEVICE_PATH_PROTOCOL missing\r
+ from DeviceHandle.\r
**/\r
EFI_STATUS\r
PrepareLpcBridgeDevicePath (\r
{\r
EFI_STATUS Status;\r
EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
+ EFI_DEVICE_PATH_PROTOCOL *TempDevicePath;\r
\r
DevicePath = NULL;\r
Status = gBS->HandleProtocol (\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
+ TempDevicePath = DevicePath;\r
+\r
+ //\r
+ // Register Keyboard\r
+ //\r
+ DevicePath = AppendDevicePathNode (DevicePath, (EFI_DEVICE_PATH_PROTOCOL *)&gPnpPs2KeyboardDeviceNode);\r
+ EfiBootManagerUpdateConsoleVariable (ConIn, DevicePath, NULL);\r
\r
//\r
// Register COM1\r
//\r
+ DevicePath = TempDevicePath;\r
DevicePath = AppendDevicePathNode ((EFI_DEVICE_PATH_PROTOCOL *)NULL, (EFI_DEVICE_PATH_PROTOCOL *)&gUartDeviceVendorNode);\r
DevicePath = AppendDevicePathNode (DevicePath, (EFI_DEVICE_PATH_PROTOCOL *)&gUartDeviceNode);\r
DevicePath = AppendDevicePathNode (DevicePath, (EFI_DEVICE_PATH_PROTOCOL *)&gTerminalTypeDeviceNode);\r