1## @file 2# USB Keyboard Driver that manages USB keyboard and produces Simple Text Input(Ex) Protocol. 3# 4# USB Keyboard Driver consumes USB I/O Protocol and Device Path Protocol, and produces 5# Simple Text Input Protocol and Simple Text Input Ex Protocol on USB keyboard devices. 6# It initializes the keyboard layout according to info retrieved from HII database. 7# If HII cannot provide the info, this module uses its carried default one if PCD allows. 8# It manages the USB keyboard device via Asynchronous Interrupt Transfer of USB I/O Protocol, 9# and parses the data according to USB HID documents. 10# This module refers to following specifications: 11# 1. Universal Serial Bus HID Firmware Specification, ver 1.11 12# 2. Universal Serial Bus HID Usage Tables, ver 1.12 13# 3. UEFI Specification, v2.1 14# 15# Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR> 16# 17# This program and the accompanying materials 18# are licensed and made available under the terms and conditions of the BSD License 19# which accompanies this distribution. The full text of the license may be found at 20# http://opensource.org/licenses/bsd-license.php 21# 22# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 23# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 24# 25# 26## 27 28[Defines] 29 INF_VERSION = 0x00010005 30 BASE_NAME = UsbKbDxe 31 MODULE_UNI_FILE = UsbKbDxe.uni 32 FILE_GUID = 2D2E62CF-9ECF-43b7-8219-94E7FC713DFE 33 MODULE_TYPE = UEFI_DRIVER 34 VERSION_STRING = 1.0 35 ENTRY_POINT = USBKeyboardDriverBindingEntryPoint 36 37# 38# The following information is for reference only and not required by the build tools. 39# 40# VALID_ARCHITECTURES = IA32 X64 IPF EBC ARM AARCH64 41# 42# DRIVER_BINDING = gUsbKeyboardDriverBinding 43# COMPONENT_NAME = gUsbKeyboardComponentName 44# COMPONENT_NAME2 = gUsbKeyboardComponentName2 45# 46 47[Sources] 48 EfiKey.c 49 EfiKey.h 50 KeyBoard.c 51 ComponentName.c 52 KeyBoard.h 53 54[Packages] 55 MdePkg/MdePkg.dec 56 MdeModulePkg/MdeModulePkg.dec 57 58[LibraryClasses] 59 MemoryAllocationLib 60 UefiLib 61 UefiBootServicesTableLib 62 UefiDriverEntryPoint 63 UefiRuntimeServicesTableLib 64 BaseMemoryLib 65 ReportStatusCodeLib 66 DebugLib 67 PcdLib 68 UefiUsbLib 69 HiiLib 70 71[Guids] 72 # 73 # Event registered to EFI_HII_SET_KEYBOARD_LAYOUT_EVENT_GUID group, 74 # which will be triggered by EFI_HII_DATABASE_PROTOCOL.SetKeyboardLayout(). 75 # 76 gEfiHiiKeyBoardLayoutGuid ## SOMETIMES_CONSUMES ## Event 77 gUsbKeyboardLayoutPackageGuid ## SOMETIMES_CONSUMES ## HII 78 gUsbKeyboardLayoutKeyGuid ## SOMETIMES_PRODUCES ## UNDEFINED 79 80[Protocols] 81 gEfiUsbIoProtocolGuid ## TO_START 82 gEfiDevicePathProtocolGuid ## TO_START 83 gEfiSimpleTextInProtocolGuid ## BY_START 84 gEfiSimpleTextInputExProtocolGuid ## BY_START 85 # 86 # If HII Database Protocol exists, then keyboard layout from HII database is used. 87 # Otherwise, USB keyboard module tries to use its carried default layout. 88 # 89 gEfiHiiDatabaseProtocolGuid ## SOMETIMES_CONSUMES 90 91[FeaturePcd] 92 gEfiMdeModulePkgTokenSpaceGuid.PcdDisableDefaultKeyboardLayoutInUsbKbDriver ## CONSUMES 93 94# [Event] 95# EVENT_TYPE_RELATIVE_TIMER ## CONSUMES 96# 97 98[UserExtensions.TianoCore."ExtraFiles"] 99 UsbKbDxeExtra.uni 100