From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mx.groups.io with SMTP id smtpd.web09.1207.1573087800588446355 for ; Wed, 06 Nov 2019 16:50:00 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=FMKmYOOc; spf=pass (domain: intel.com, ip: 192.55.52.93, mailfrom: michael.a.kubacki@intel.com) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 06 Nov 2019 16:50:00 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,276,1569308400"; d="scan'208";a="402566116" Received: from orsmsx105.amr.corp.intel.com ([10.22.225.132]) by fmsmga005.fm.intel.com with ESMTP; 06 Nov 2019 16:50:00 -0800 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX105.amr.corp.intel.com (10.22.225.132) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 6 Nov 2019 16:49:59 -0800 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 6 Nov 2019 16:49:59 -0800 Received: from ORSEDG001.ED.cps.intel.com (10.7.248.4) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Wed, 6 Nov 2019 16:49:59 -0800 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.36.53) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 6 Nov 2019 16:49:59 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=P0/shpubb+fSick67ye8Cs1Jm76Z3oJTB1cNDoxUssL2u5WMtXp6mRzABldOUUBKANhAfroAkbD4x8WB/Abuy9fTHz2HD42582jajNX6IeYjeaKM2Pk9PbOuzZLqFf8QzL0jM+xeAraef7XE73ewFWNE84bA2DbHFMjPqhHMndb+iRQEpRptxMw5xb6O9GUNaWi8yW/2sjJ78SodybKb6nNQNnB/4zrjgTZ6gasqZb9t0HFlPKINICkKb7hbyNPX5/g6G21RSSAA9VUVP/jT4f5HmfMk7hs4tgc2uBMOWDz56uKbMkWXY2m1T9nBvIahnsO9xQTFTq/FxrxD45iB5w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DbH0/r23UwEQ5zU8URfo5pwBlp8H0LXF+zqlhni8FWY=; b=EUIUMgpQRHVFMaj76c/PBGNVRwPcf3vTdSamuLC+3A6DA1sfTRJKAVN0eoptiJqO5WQqK+rNgwXJLApYFg/clHPnPsQZ/8ogp1yLF+o2SKivoV9V+3Ero1ylcxuhb/mIkLrTzUwj+CKfj0UO3+VCthrel299JuMtlHCe4VmEJQMsnuWfkEahVk9Ge2MJivACyGpzwI4l53qEvIG/o2BF0z06t3ZciiV+fVHq5/T2VBZAs3ux44zU0J5NjRREhGBOBcIj7epNgW/IDKAg8xLBDhbKrLX5zUwmgAVWo0KvigYsrZBn2A3nFCB4VYSZwmiCWYNC60tuu11pUO5+7USySA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DbH0/r23UwEQ5zU8URfo5pwBlp8H0LXF+zqlhni8FWY=; b=FMKmYOOcJRimtsOZ7g6pM676HC9qVHcrYkvSyyyGEK9EGcFooeLNW9dfDbRG3FMuQnZMlBb8/n420Oh+4aL6bSClCE1B7Ll/aBF/XIyl+7R48fEWLO//58Mpl/VkZv6fto/srlWAyqDOqesf0bu2E84dWtp/gBN29ulWOxtrGs4= Received: from BY5PR11MB4484.namprd11.prod.outlook.com (52.132.254.155) by BY5PR11MB3976.namprd11.prod.outlook.com (10.255.160.206) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2408.24; Thu, 7 Nov 2019 00:49:57 +0000 Received: from BY5PR11MB4484.namprd11.prod.outlook.com ([fe80::c1ef:6e0b:90c8:55e2]) by BY5PR11MB4484.namprd11.prod.outlook.com ([fe80::c1ef:6e0b:90c8:55e2%7]) with mapi id 15.20.2430.020; Thu, 7 Nov 2019 00:49:57 +0000 From: "Kubacki, Michael A" To: "Agyeman, Prince" , "devel@edk2.groups.io" CC: "Chiu, Chasel" , "Desimone, Nathaniel L" Subject: Re: [edk2-platforms] [Patch v2 6/9] BoardModulePkg: Add Ps2 Keyboard Library Thread-Topic: [edk2-platforms] [Patch v2 6/9] BoardModulePkg: Add Ps2 Keyboard Library Thread-Index: AQHVlEE4V1cDOx4JFEeuU1k1x7MkeKd+23Kg Date: Thu, 7 Nov 2019 00:49:56 +0000 Message-ID: References: <20191106012603.4724-1-prince.agyeman@intel.com> <20191106012603.4724-7-prince.agyeman@intel.com> In-Reply-To: <20191106012603.4724-7-prince.agyeman@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZTU1M2M2MGUtMmUzNS00MThjLWE3MWQtOTA0OGJiYzkxNGZkIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoieEVjOUJrSGR6NW5aRmxVUUtoWUlJZWdpWEVpRDk1YjRXcDhIN2F4XC9xb1hrYm9QUVNWZlV1UGNCZ0FzXC9qSURKIn0= dlp-reaction: no-action dlp-version: 11.2.0.6 authentication-results: spf=none (sender IP is ) smtp.mailfrom=michael.a.kubacki@intel.com; x-originating-ip: [134.134.136.217] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 97af82ff-239c-47b1-8073-08d7631c693e x-ms-traffictypediagnostic: BY5PR11MB3976: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 0214EB3F68 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(1496009)(39860400002)(136003)(376002)(396003)(346002)(366004)(13464003)(199004)(189003)(486006)(11346002)(6436002)(305945005)(66066001)(55016002)(6246003)(2501003)(14454004)(2906002)(19627235002)(4326008)(86362001)(6116002)(3846002)(33656002)(110136005)(7736002)(71190400001)(478600001)(25786009)(99286004)(446003)(8676002)(107886003)(52536014)(81166006)(81156014)(8936002)(54906003)(9686003)(316002)(256004)(66946007)(53546011)(66446008)(6506007)(64756008)(26005)(66556008)(7696005)(74316002)(76176011)(102836004)(476003)(186003)(71200400001)(66476007)(76116006)(229853002)(5660300002);DIR:OUT;SFP:1102;SCL:1;SRVR:BY5PR11MB3976;H:BY5PR11MB4484.namprd11.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: OXZBBR8FpGaUWKpB4NLdiCv5t63g/VRS/kxiiU1zSBD5pDMGf8nvbl01bELwA53eqc9ShX8DptrioWr4xwVeN3yG2KOnUnRpuacPYp3pgGGfbZaekz2LtbZu4lksGySg92HheSov7rQXpwzfkDX5gMEBQDJHMpByXT+YDZdxGa9LwYf3ImeU+UTAfRzLoLbBH66dRTwKNvzuwWbpInz4yEZ6OMT6nwLemtFaXAgre6mF1GlSZQL226gNGPrgHYT4ye5q8SjPJAEhNmuS6gLM8t+vWNyhfqUUDpAutG8rv9Aq94Y64nm/53Sfo2gm73JvYyCC6dxsZJsfUdQ1+QPZzDHkILbqO00YCp4TB4mcAwkLqTKi8ZAWiw/jnKwL0ZLy80t/gwIHhSK4lEDDOnuY1pNEyiJeu10aR4ywApOPrseWZdUVWmaiCiTp2XhZW5JD MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 97af82ff-239c-47b1-8073-08d7631c693e X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Nov 2019 00:49:56.9953 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: gv+w2YYui9j1Rc3aslDacHgahF91SmOmkAn7w+DeCKfmaDYEtxF2P1QCgVO8dOGrIGMq7CICiUzdT9RAS59jIGFJwnihqq82k1gY6up81Fo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR11MB3976 Return-Path: michael.a.kubacki@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Michael Kubacki > -----Original Message----- > From: Agyeman, Prince > Sent: Tuesday, November 5, 2019 5:26 PM > To: devel@edk2.groups.io > Cc: Kubacki, Michael A ; Chiu, Chasel > ; Desimone, Nathaniel L > > Subject: [edk2-platforms] [Patch v2 6/9] BoardModulePkg: Add Ps2 > Keyboard Library >=20 > Added a generic Ps2 keyboard library > that adds ps2 device path to ConIn and ConInDev Uefi variables >=20 > Cc: Michael Kubacki > Cc: Chasel Chiu > Cc: Nate DeSimone >=20 > Signed-off-by: Prince Agyeman > --- > .../Intel/BoardModulePkg/BoardModulePkg.dsc | 1 + > .../Library/BdsPs2KbcLib/BdsPs2KbcLib.c | 202 ++++++++++++++++++ > .../Library/BdsPs2KbcLib/BdsPs2KbcLib.h | 65 ++++++ > .../Library/BdsPs2KbcLib/BdsPs2KbcLib.inf | 38 ++++ > 4 files changed, 306 insertions(+) > create mode 100644 > Platform/Intel/BoardModulePkg/Library/BdsPs2KbcLib/BdsPs2KbcLib.c > create mode 100644 > Platform/Intel/BoardModulePkg/Library/BdsPs2KbcLib/BdsPs2KbcLib.h > create mode 100644 > Platform/Intel/BoardModulePkg/Library/BdsPs2KbcLib/BdsPs2KbcLib.inf >=20 > diff --git a/Platform/Intel/BoardModulePkg/BoardModulePkg.dsc > b/Platform/Intel/BoardModulePkg/BoardModulePkg.dsc > index 5af26eb97e..bcc2dfbfeb 100644 > --- a/Platform/Intel/BoardModulePkg/BoardModulePkg.dsc > +++ b/Platform/Intel/BoardModulePkg/BoardModulePkg.dsc > @@ -88,3 +88,4 @@ > BoardModulePkg/Library/BiosIdLib/PeiBiosIdLib.inf >=20 >=20 > BoardModulePkg/Library/PeiFirmwareBootMediaInfoLib/PeiFirmwareBoot > MediaInfoLib.inf > + BoardModulePkg/Library/BdsPs2KbcLib/BdsPs2KbcLib.inf > diff --git > a/Platform/Intel/BoardModulePkg/Library/BdsPs2KbcLib/BdsPs2KbcLib.c > b/Platform/Intel/BoardModulePkg/Library/BdsPs2KbcLib/BdsPs2KbcLib.c > new file mode 100644 > index 0000000000..3a885e0d71 > --- /dev/null > +++ > b/Platform/Intel/BoardModulePkg/Library/BdsPs2KbcLib/BdsPs2KbcLib.c > @@ -0,0 +1,202 @@ > +/** @file > + Main file for Ps2 keyboard controller library. > + > + Copyright (c) 2019, Intel Corporation. All rights reserved.
> + SPDX-License-Identifier: BSD-2-Clause-Patent > + > +**/ > + > +#include "BdsPs2KbcLib.h" > + > +GLOBAL_REMOVE_IF_UNREFERENCED > PLATFORM_KEYBOARD_DEVICE_PATH > +gKeyboardDevicePath =3D { > + gPciRootBridge, > + { > + { > + HARDWARE_DEVICE_PATH, > + HW_PCI_DP, > + { > + (UINT8) (sizeof (PCI_DEVICE_PATH)), > + (UINT8) ((sizeof (PCI_DEVICE_PATH)) >> 8) > + } > + }, > + 0, // Function, patched in EnumPs2Keyboard > + 0 // Device, patched in EnumPs2Keyboard > + }, > + { > + { > + ACPI_DEVICE_PATH, > + ACPI_DP, > + { > + (UINT8) (sizeof (ACPI_HID_DEVICE_PATH)), > + (UINT8) ((sizeof (ACPI_HID_DEVICE_PATH)) >> 8) > + } > + }, > + EISA_PNP_ID(0x0303), > + 0 > + }, > + gEndEntire > +}; > + > +/** > + Check if PS2 keyboard is conntected, by sending ECHO command. > + @retval TRUE if connected FALSE otherwise > +**/ > +BOOLEAN > +DetectPs2Keyboard ( > + VOID > + ) > +{ > + UINT32 TimeOut; > + UINT32 RegEmptied; > + UINT8 Data; > + UINT32 SumTimeOut; > + BOOLEAN FoundPs2Kbc; > + > + TimeOut =3D 0; > + RegEmptied =3D 0; > + FoundPs2Kbc =3D FALSE; > + > + // > + // Wait for input buffer empty > + // > + for (TimeOut =3D 0; TimeOut < PS2_KEYBOARD_TIMEOUT; TimeOut +=3D 30) { > + if ((IoRead8 (KEYBOARD_8042_STATUS_REGISTER) & 0x02) =3D=3D 0) { > + FoundPs2Kbc =3D TRUE; > + break; > + } > + MicroSecondDelay (30); > + } > + > + if (FoundPs2Kbc =3D=3D FALSE) { > + return FALSE; > + } > + > + // > + // Send echo command > + // > + IoWrite8 (KEYBOARD_8042_DATA_REGISTER, > KBC_INPBUF_VIA60_KBECHO); > + > + // > + // Init variables > + // > + FoundPs2Kbc =3D FALSE; > + TimeOut =3D 0; > + SumTimeOut =3D 0; > + Data =3D 0; > + > + // > + // Read from 8042 (multiple times if needed) // until the expected > + value appears // use SumTimeOut to control the iteration // while > + (1) { > + // > + // Perform a read > + // > + for (TimeOut =3D 0; TimeOut < PS2_KEYBOARD_TIMEOUT; TimeOut +=3D 30)= { > + if (IoRead8 (KEYBOARD_8042_STATUS_REGISTER) & 0x01) { > + Data =3D IoRead8 (KEYBOARD_8042_DATA_REGISTER); > + break; > + } > + MicroSecondDelay (30); > + } > + > + SumTimeOut +=3D TimeOut; > + > + if (Data =3D=3D KBC_INPBUF_VIA60_KBECHO) { > + FoundPs2Kbc =3D TRUE; > + break; > + } > + > + if (SumTimeOut >=3D PS2_KEYBOARD_WAITFORVALUE_TIMEOUT) { > + break; > + } > + } > + return FoundPs2Kbc; > +} > + > +/** > + Check if PS2 keyboard is conntected. If the result of first time is > + error, it will retry again. > + @retval TRUE if connected FALSE otherwise > +**/ > +BOOLEAN > +IsPs2KeyboardConnected ( > + VOID > + ) > +{ > + BOOLEAN Result; > + Result =3D DetectPs2Keyboard (); > + > + if (Result =3D=3D FALSE) { > + // > + // If there is no ps2 keyboard detected for the 1st time, retry agai= n. > + // > + Result =3D DetectPs2Keyboard (); > + } > + return Result; > +} > + > + > +/** > + Updates the ConIn variable with Ps2 Keyboard device path, > + if it doesn't already exists in ConIn and ConInDev **/ VOID > +AddPs2Keyboard ( > + VOID > + ) > +{ > + SIO_PCI_ISA_BRIDGE_DEVICE_INFO *SioIsaInfo; > + > + DEBUG ((DEBUG_INFO, "[AddPs2Keyboard]\n")); > + > + SioIsaInfo =3D (SIO_PCI_ISA_BRIDGE_DEVICE_INFO*) FixedPcdGetPtr > + (PcdSuperIoPciIsaBridgeDevice); > + > + // > + // patch IsaBridge device and and function // > + gKeyboardDevicePath.IsaBridge.Device =3D SioIsaInfo->Device; > + gKeyboardDevicePath.IsaBridge.Function =3D SioIsaInfo->Funtion; > + > + // > + // Append Ps2 Keyboard into "ConIn" > + // > + EfiBootManagerUpdateConsoleVariable (ConIn, > (EFI_DEVICE_PATH_PROTOCOL > + *) &gKeyboardDevicePath, NULL); > + > + // > + // Append Ps2 Keyboard into "ConInDev" > + // > + EfiBootManagerUpdateConsoleVariable (ConInDev, > +(EFI_DEVICE_PATH_PROTOCOL *) &gKeyboardDevicePath, NULL); } > + > + > +/** > + Constructor for the Ps2 keyboard controller library. > + > + @param ImageHandle the image handle of the process > + @param SystemTable the EFI System Table pointer > + > + @retval EFI_SUCCESS the shell command handlers were installed > sucessfully > + @retval EFI_UNSUPPORTED the shell level required was not found. > +**/ > +EFI_STATUS > +EFIAPI > +BdsPs2KbcLibConstructor ( > + IN EFI_HANDLE ImageHandle, > + IN EFI_SYSTEM_TABLE *SystemTable > + ) > +{ > + UINT8 Ps2KbMsEnable; > + > + Ps2KbMsEnable =3D PcdGet8 (PcdPs2KbMsEnable); > + > + if (Ps2KbMsEnable =3D=3D 0x1 > + && IsPs2KeyboardConnected()) > + { > + // add ps2 device path to ConIn and ConInDev > + AddPs2Keyboard (); > + } > + > + return EFI_SUCCESS; > +} > diff --git > a/Platform/Intel/BoardModulePkg/Library/BdsPs2KbcLib/BdsPs2KbcLib.h > b/Platform/Intel/BoardModulePkg/Library/BdsPs2KbcLib/BdsPs2KbcLib.h > new file mode 100644 > index 0000000000..d9a27e6681 > --- /dev/null > +++ > b/Platform/Intel/BoardModulePkg/Library/BdsPs2KbcLib/BdsPs2KbcLib.h > @@ -0,0 +1,65 @@ > +/** @file > + Header file for the Ps2 keyboard controller library. > + > + Copyright (c) 2019, Intel Corporation. All rights reserved.
> + SPDX-License-Identifier: BSD-2-Clause-Patent > + > +**/ > + > +#ifndef _PS2_KBC_LIB_H > +#define _PS2_KBC_LIB_H > + > +#include > +#include > +#include > +#include > +#include > +#include > +#include > + > +// > +// Below is the platform console device path // typedef struct { > + ACPI_HID_DEVICE_PATH PciRootBridge; > + PCI_DEVICE_PATH IsaBridge; > + ACPI_HID_DEVICE_PATH Keyboard; > + EFI_DEVICE_PATH_PROTOCOL End; > +} PLATFORM_KEYBOARD_DEVICE_PATH; > + > +typedef struct { > + UINT8 Segment; > + UINT8 Bus; > + UINT8 Device; > + UINT8 Funtion; > +} SIO_PCI_ISA_BRIDGE_DEVICE_INFO; > + > +#define gPciRootBridge \ > + { \ > + { \ > + ACPI_DEVICE_PATH, \ > + ACPI_DP, \ > + { \ > + (UINT8) (sizeof (ACPI_HID_DEVICE_PATH)), \ > + (UINT8) ((sizeof (ACPI_HID_DEVICE_PATH)) >> 8) \ > + }, \ > + }, \ > + EISA_PNP_ID (0x0A03), \ > + 0 \ > + } > + > +#define gEndEntire \ > + { \ > + END_DEVICE_PATH_TYPE, END_ENTIRE_DEVICE_PATH_SUBTYPE, { > +END_DEVICE_PATH_LENGTH, 0 } \ > + } > + > +#define KBC_INPBUF_VIA60_KBECHO 0xEE > +#define KEYBOARD_8042_DATA_REGISTER 0x60 > +#define KEYBOARD_8042_STATUS_REGISTER 0x64 > + > +#define PS2_KEYBOARD_TIMEOUT 65536 // 0.07s > +#define PS2_KEYBOARD_WAITFORVALUE_TIMEOUT 1000000 // 1s > +#define PS2_KEYBOARD_KBEN 0xF4 > +#define PS2_KEYBOARD_CMDECHO_ACK 0xFA > + > +#endif > diff --git > a/Platform/Intel/BoardModulePkg/Library/BdsPs2KbcLib/BdsPs2KbcLib.inf > b/Platform/Intel/BoardModulePkg/Library/BdsPs2KbcLib/BdsPs2KbcLib.inf > new file mode 100644 > index 0000000000..e00638daa7 > --- /dev/null > +++ > b/Platform/Intel/BoardModulePkg/Library/BdsPs2KbcLib/BdsPs2KbcLib.in > +++ f > @@ -0,0 +1,38 @@ > +## @file > +# Component information file for Ps2 keyboard controller library # # > +Copyright (c) 2019, Intel Corporation. All rights reserved.
# # > +SPDX-License-Identifier: BSD-2-Clause-Patent # ## [Defines] > + INF_VERSION =3D 0x00010006 > + BASE_NAME =3D BdsPs2KbcLib > + FILE_GUID =3D E94EA52E-E84C-42E7-B863-EA1327EFA26= 5 > + MODULE_TYPE =3D UEFI_DRIVER > + VERSION_STRING =3D 1.2 > + LIBRARY_CLASS =3D NULL|UEFI_DRIVER > + CONSTRUCTOR =3D BdsPs2KbcLibConstructor > + > +[Packages] > + MdePkg/MdePkg.dec > + MdeModulePkg/MdeModulePkg.dec > + BoardModulePkg/BoardModulePkg.dec > + > +[Sources] > + BdsPs2KbcLib.c > + BdsPs2KbcLib.h > + > +[LibraryClasses] > + DevicePathLib > + DebugLib > + IoLib > + UefiDriverEntryPoint > + UefiBootManagerLib > + UefiLib > + TimerLib > + > +[Pcd] > + gBoardModulePkgTokenSpaceGuid.PcdPs2KbMsEnable > + gBoardModulePkgTokenSpaceGuid.PcdSuperIoPciIsaBridgeDevice > -- > 2.19.1.windows.1