# USB Keyboard Driver that manages USB keyboard and produces Simple Text Input\r
# Protocol and Simple Text Input Ex Protocol.\r
#\r
+# USB Keyboard Driver consumes USB I/O Protocol and Device Path Protocol, and produces\r
+# Simple Text Input Protocol and Simple Text Input Ex Protocol on USB keyboard devices.\r
+# It initializes the keyboard layout according to info retrieved from HII database.\r
+# If HII cannot provide the info, this module uses its carried default one if PCD allows.\r
+# It manages the USB keyboard device via Asynchronous Interrupt Transfer of USB I/O Protocol,\r
+# and parses the data according to USB HID documents.\r
+# This module refers to following specifications:\r
+# 1. Universal Serial Bus HID Firmware Specification, ver 1.11\r
+# 2. Universal Serial Bus HID Usage Tables, ver 1.12\r
+# 3. UEFI Specification, v2.1\r
+#\r
# Copyright (c) 2006 - 2008, Intel Corporation. \r
#\r
# All rights reserved. This program and the accompanying materials\r
FILE_GUID = 2D2E62CF-9ECF-43b7-8219-94E7FC713DFE\r
MODULE_TYPE = UEFI_DRIVER\r
VERSION_STRING = 1.0\r
-\r
ENTRY_POINT = USBKeyboardDriverBindingEntryPoint\r
\r
#\r
MdePkg/MdePkg.dec\r
MdeModulePkg/MdeModulePkg.dec\r
\r
-\r
[LibraryClasses]\r
MemoryAllocationLib\r
UefiLib\r
DebugLib\r
PcdLib\r
UefiUsbLib\r
- BaseLib\r
\r
[Guids]\r
- gEfiHotPlugDeviceGuid # ALWAYS_CONSUMED\r
- gSimpleTextInExNotifyGuid # ALWAYS_CONSUMED\r
+ ##\r
+ # Event registered to EFI_HII_SET_KEYBOARD_LAYOUT_EVENT_GUID group,\r
+ # which will be triggered by EFI_HII_DATABASE_PROTOCOL.SetKeyboardLayout().\r
+ #\r
+ gEfiHiiKeyBoardLayoutGuid ## SOMETIME_CONSUMES ## Event\r
\r
[Protocols]\r
- gEfiUsbIoProtocolGuid # PROTOCOL TO_START\r
- gEfiDevicePathProtocolGuid # PROTOCOL TO_START\r
- gEfiSimpleTextInProtocolGuid # PROTOCOL BY_START\r
- gEfiSimpleTextInputExProtocolGuid # PROTOCOL BY_START\r
- gEfiHiiDatabaseProtocolGuid # PROTOCOL TO_START\r
-\r
+ gEfiUsbIoProtocolGuid ## TO_START\r
+ gEfiDevicePathProtocolGuid ## TO_START\r
+ gEfiSimpleTextInProtocolGuid ## BY_START\r
+ gEfiSimpleTextInputExProtocolGuid ## BY_START\r
+ ##\r
+ # If HII Database Protocol exists, then keyboard layout from HII database is used.\r
+ # Otherwise, USB keyboard module tries to use its carried default layout.\r
+ #\r
+ gEfiHiiDatabaseProtocolGuid ## SOMETIMES_CONSUMES (Default value is used if it's absent.)\r
+ ##\r
+ # SimpleTextInExNotify is installed on the handle created by EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL.RegisterKeyNotify().\r
+ #\r
+ gSimpleTextInExNotifyGuid ## PRODUCES\r
+ \r
[FeaturePcd.common]\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdDisableDefaultKeyboardLayoutInUsbKbDriver\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdDisableDefaultKeyboardLayoutInUsbKbDriver ## SOMETIME_CONSUMES (Checked when no layout is provided by HII.)\r
\r
[FixedPcd]\r
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValueKeyboardEnable\r
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValueKeyboardClearBuffer\r
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValueKeyboardSelfTest\r
gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValueKeyboardInterfaceError\r
- gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValueKeyboardInputError
\ No newline at end of file
+ gEfiMdePkgTokenSpaceGuid.PcdStatusCodeValueKeyboardInputError\r
+ \r
+\r
+# [Event]\r
+# ##\r
+# # Periodic timer event for generation of repeat key\r
+# #\r
+# EVENT_TYPE_PERIODIC_TIMER ## PRODUCES\r
+# ##\r
+# # Periodic timer event for delayed recovery, which deals with device error.\r
+# #\r
+# EVENT_TYPE_PERIODIC_TIMER ## PRODUCES\r
+# ##\r
+# # Event for EFI_SIMPLE_TEXT_INPUT_PROTOCOL.WaitForKey\r
+# #\r
+# EVENT_TYPE_NOTIFY_WAIT ## PRODUCES\r
+# ##\r
+# # Event for EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL.WaitForKeyEx\r
+# #\r
+# EVENT_TYPE_NOTIFY_WAIT ## PRODUCES\r
+#\r
+#\r