From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mx.groups.io with SMTP id smtpd.web12.1007.1601011508708392129 for ; Thu, 24 Sep 2020 22:25:08 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=oYqqGTVK; spf=pass (domain: intel.com, ip: 192.55.52.88, mailfrom: ray.ni@intel.com) IronPort-SDR: STm6rjZsVrdcnhgcvfI+72QrdgbyI71cWj/tj9/bDHJUK50Hd0oBf+xNyqq4XWryULTJlQNkXR 4oijttiFDDEA== X-IronPort-AV: E=McAfee;i="6000,8403,9754"; a="179528208" X-IronPort-AV: E=Sophos;i="5.77,300,1596524400"; d="scan'208";a="179528208" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Sep 2020 22:25:07 -0700 IronPort-SDR: RJysHE8boc3nr02wmfGi0jZEcycadGV0ZMItSyahIdi8/c0ChCvuqrnixoktatfo+q3IIu75nX uoIZNNo2JTkw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,300,1596524400"; d="scan'208";a="292471778" Received: from orsmsx605.amr.corp.intel.com ([10.22.229.18]) by fmsmga008.fm.intel.com with ESMTP; 24 Sep 2020 22:25:07 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 24 Sep 2020 22:25:06 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 24 Sep 2020 22:25:06 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Thu, 24 Sep 2020 22:25:06 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.168) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Thu, 24 Sep 2020 22:25:05 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MJ3tg93CjQx8o/8KemKXDD7fQs77awTCnlB/ytK+R5ZuHkuesQcK89P+unC7PLbeDo4B+i0faIe6hlmKbj6XcIqxW5kZPV51oWty7kqlmnXcwJhHXjX/vMCgdHUKrrzdRs+oFAwvG8ydE15pOMYuMz6mYie7yJufMzTiQEybFn0upd3Zndk0ADaz1nGFtdr27SSnPkfOc71X9Bl17SYILDPh1njMD5+tgbxfutvRpbPk4C33Pip215WIukgWQ69/pgfFL3/cp2cXKftytAWXRqBELI5KbhMO2z37hf+C1AmeGDTOUhHZQb6T6mbJADie0+bOccpCbBqfKrqS/shJig== 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=Qod5Hv6h+R3o55qpll4Rt3l+/VfNwOVjeTpejJk5n14=; b=FSJrTF9r/hd+wtgJfONsDl11NbjU8YGEdjpteoWrwRWgML4x/+JEbpgxXGhHNnc6GdJVpo4mY+0xwJchf4GgXrR0ULXAarfC3uOQ4ksxeytC52yWczCqbHRt/vuj7DnaPYkkZ9AnS2daDdnYMYzwISwxjPHfJ/7flLkWE9Itqhq1/PYrkQwPQKuUtOQQNrcaIkKvrUXQ8IgeTnaH47j4Q4mHLs6Qb286vBomVhp0LKdxmkTl/Y+i287m9cNPH0Hx/dkp9vZ0v4ZzedzbQACp7+hMjuKZmC+wbtGhpBYvR/UbzD+NW6S2BsedMKTpWIZLpISawVxWlBAO/smVdwG0hw== 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=Qod5Hv6h+R3o55qpll4Rt3l+/VfNwOVjeTpejJk5n14=; b=oYqqGTVK2WGn/iy6NSm6Tqv9g7/Lqituf8mZoH0eJk+3Q0KrgtjL78TF7uvYuA23wwjTu+Q7+3pLmXtFMYKlrKRMdg6zUeEsBRWUzqFYxVxAhpWuphx3KID5zbAClgArHSX013+l63B6Oc9lDS4b1QtEp8OSjsCsZD3ZP0V2UB0= Received: from BY5PR11MB4007.namprd11.prod.outlook.com (2603:10b6:a03:189::28) by BY5PR11MB4101.namprd11.prod.outlook.com (2603:10b6:a03:18e::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3391.14; Fri, 25 Sep 2020 05:25:03 +0000 Received: from BY5PR11MB4007.namprd11.prod.outlook.com ([fe80::1533:4053:1c45:3596]) by BY5PR11MB4007.namprd11.prod.outlook.com ([fe80::1533:4053:1c45:3596%6]) with mapi id 15.20.3370.033; Fri, 25 Sep 2020 05:25:03 +0000 From: "Ni, Ray" To: "Lou, Yun" , "devel@edk2.groups.io" CC: "Dong, Eric" , Laszlo Ersek , "Kumar, Rahul1" Subject: Re: [PATCH v1 1/1] UefiCpuPkg: Remove PEI/DXE instances of CpuTimerLib. Thread-Topic: [PATCH v1 1/1] UefiCpuPkg: Remove PEI/DXE instances of CpuTimerLib. Thread-Index: AQHWkvCplFTwhKNFTEKDMu0YoLe76Kl40nRw Date: Fri, 25 Sep 2020 05:25:03 +0000 Message-ID: References: <20200925035755.3442-1-yun.lou@intel.com> In-Reply-To: <20200925035755.3442-1-yun.lou@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-reaction: no-action dlp-product: dlpe-windows authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [124.77.209.203] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 79f2dfaf-a304-4fed-8e16-08d861135b6a x-ms-traffictypediagnostic: BY5PR11MB4101: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:5236; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: NoHojHd+RTf++gIZbfeE8AOleXg8w6IFGfZMHDcFAqlhAqjiin+P0e5XWvcqRnesoxxtYRPG/LTT8c4Hf8Ytl7JeXgiua6gwfqsYBmedCYTAJF9kzPO6pDGZ/2DSbPepZchsO25crVWaZh+NnK2PbDEElSphLuOY98cY8yW8WCaggCHh3ScHQEexLmGELvuVZXx1P3DQi6ek2r5llASLcW9qecEIiCdFm/OdqZlp0aDdJWq+aiPljMVuOdbNkCdgpFXCB42p9luVEw06Ix4J+WEVEeZHvxbHKKlKugEJP5/s5S/pF2bwwF9jyH88iyURgxczE3ll/sBx3WJM4ReazFFCNSSaVfvQrQzBOnGyV7MQRxJjLJUR0T4sln0lzjz6Dv5/KUNHw11DRHQrUxMuZA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR11MB4007.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(376002)(396003)(346002)(366004)(136003)(39860400002)(86362001)(316002)(30864003)(4326008)(26005)(66946007)(33656002)(66446008)(53546011)(110136005)(55016002)(83380400001)(6506007)(66476007)(64756008)(2906002)(66556008)(76116006)(966005)(54906003)(5660300002)(8676002)(186003)(478600001)(71200400001)(8936002)(9686003)(52536014)(107886003)(7696005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: whRDIRzkJzev3+iUbEDP9nK2YlQuIWMG1FK3sNEsa+5endSNJSjf6S74dBv/n6SOzSzhNj8aYWQigJLN2mglW6H+SpUmBjT3/xzStQuKhctHg3eNfAYstsuI6M/mKYdM7UpqHnmcunKxf8z2aO6KrPVSSmAZJsJwhSYckPyWFmTUZNk5fdPkFehQKTa4MqVnmEmgzvoaHYwig/JN6trhTZVoLd5zotEUK9VTC9qgmibYliSMvVDUEIYLJKKAYddW48ArxnNclo90EDzqiunaf2HSWkZZRpLKNwAXx2SdhmjRjWb20AP2veBtVQ2vSuBsrk6Bfm+QNuha7WalbPosUDVSpXWjH0YBp4Zlxxat6IsQ579SkBMRbxyA6DmS40dSclYC6h2KfVj2Op1ONUxIXsgim83++Mr5NgGnLzKDTUv4HHQ+LjGXBzPOP2Z7tY8ge6sE+e0WjoxbVwZMzUo/g7wbJpcNYtym5mFZ0ymy/F4h1VzJ3WNU5+RDeA69nORlyLNeDVuE6Fh0utKDHUqlbd1gEmupvTuw5zIaUtp1uUSiiS/MKUy6ztkyKizR0Cyazj2wVdv42Fyndvt7KXfMPe20nnmrrXhjpRXMOJOYTtBiny6ixyvR127n9kAZODfwXlHDo01F+oCX2DZuZkwyzw== MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BY5PR11MB4007.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 79f2dfaf-a304-4fed-8e16-08d861135b6a X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Sep 2020 05:25:03.7258 (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: IBVvedQZlb6ft5E1Hiey3BK0IOfNaf5/j6PPpK58XcNl2R6bHgpZeofbKt9x3Q90uI8pf/KqBN1rzl+hTcOw+A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR11MB4101 Return-Path: ray.ni@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Ray Ni > -----Original Message----- > From: Lou, Yun > Sent: Friday, September 25, 2020 11:58 AM > To: devel@edk2.groups.io > Cc: Lou, Yun ; Ni, Ray ; Dong, Eric = ; Laszlo Ersek > ; Kumar, Rahul1 > Subject: [PATCH v1 1/1] UefiCpuPkg: Remove PEI/DXE instances of CpuTimerL= ib. >=20 > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D2832 >=20 > 1. Remove PEI instance(PeiCpuTimerLib). > PeiCpuTimerLib is currently designed to save time by getting CPU TSC freq= uncy from Hob. > BaseCpuTimerLib is designed to calculate TSC frequency by using CPUID[15h= ] each time. > The time it takes to find CpuCrystalFrequencyHob (about 2000ns) is much l= onger than it takes to > calculate TSC frequency with CPUID[15h] (about 450ns), which means using = BaseCpuTimerLib to > trigger a delay is more accurate than using PeiCpuTimerLib, recommend to = use BaseCpuTimerLib > instead of PeiCpuTimerLib. >=20 > 2. Remove DXE instance(DxeCpuTimerLib). > DxeCpuTimerLib is designed to calculate TSC frequency with CPUID[15h] in = its constructor function, > then save it in a global variable. For this design, once the driver conta= ining this instance is > running, the constructor function is called, it will take extra time to c= alculate TSC frequency. > The time it takes to get TSC frequncy from global variable is shorter tha= n it takes to calculate > TSC frequency with CPUID[15h], but 450ns is a short time, the impact on t= he platform is very limited. > In addition, in order to simplify the code, recommend to use BaseCpuTimer= Lib instead of DxeCpuTimerLib. >=20 > I did some experiments on one Intel server platform and collected the fol= lowing data: > 1. Average time taken to find CpuCrystalFrequencyHob: about 2000 ns. > 2. Average time taken to calculate TSC frequency: about 450 ns. >=20 > Reference code: > // > // Calculate average time taken to find Hob. > // > DEBUG((DEBUG_ERROR, "[PeiCpuTimerLib] GetPerformanceCounterFrequency = - GetFirstGuidHob (1000 cycles)\n")); > Ticks1 =3D AsmReadTsc(); > for (i =3D 0; i < 1000; i++) { > GuidHob =3D GetFirstGuidHob (&mCpuCrystalFrequencyHobGuid); > } > Ticks2 =3D AsmReadTsc(); >=20 > if (GuidHob =3D=3D NULL) { > DEBUG((DEBUG_ERROR, "[PeiCpuTimerLib] - CpuCrystalFrequencyHob can= not be found!\n")); > } else { > DEBUG((DEBUG_ERROR, "[PeiCpuTimerLib] - Average time taken to find= Hob =3D %d ns\n", \ > DivU64x32(DivU64x64Remainder(MultU64x32((Ticks2 - Ticks1), 1000= 000000), *CpuCrystalCounterFrequency, NULL), > 1000))); > } >=20 > // > // Calculate average time taken to calculate CPU frequency. > // > DEBUG((DEBUG_ERROR, "[PeiCpuTimerLib] GetPerformanceCounterFrequency = - CpuidCoreClockCalculateTscFrequency > (1000 cycles)\n")); > Ticks1 =3D AsmReadTsc(); > for (i =3D 0; i < 1000; i++) { > Freq =3D CpuidCoreClockCalculateTscFrequency (); > } > Ticks2 =3D AsmReadTsc(); > DEBUG((DEBUG_ERROR, "[PeiCpuTimerLib] - Average time taken to calcul= ate TSC frequency =3D %d ns\n", \ > DivU64x32(DivU64x64Remainder(MultU64x32((Ticks2 - Ticks1), 100000= 0000), *CpuCrystalCounterFrequency, NULL), > 1000))); >=20 > Signed-off-by: Jason Lou > Cc: Ray Ni > Cc: Eric Dong > Cc: Laszlo Ersek > Cc: Rahul Kumar > --- > UefiCpuPkg/Library/CpuTimerLib/DxeCpuTimerLib.c | 85 -----------------= --- > UefiCpuPkg/Library/CpuTimerLib/PeiCpuTimerLib.c | 58 ------------- > UefiCpuPkg/Library/CpuTimerLib/DxeCpuTimerLib.inf | 37 --------- > UefiCpuPkg/Library/CpuTimerLib/DxeCpuTimerLib.uni | 17 ---- > UefiCpuPkg/Library/CpuTimerLib/PeiCpuTimerLib.inf | 36 --------- > UefiCpuPkg/Library/CpuTimerLib/PeiCpuTimerLib.uni | 17 ---- > UefiCpuPkg/UefiCpuPkg.dsc | 4 +- > 7 files changed, 1 insertion(+), 253 deletions(-) >=20 > diff --git a/UefiCpuPkg/Library/CpuTimerLib/DxeCpuTimerLib.c b/UefiCpuPkg= /Library/CpuTimerLib/DxeCpuTimerLib.c > deleted file mode 100644 > index 269e5a3e83d7..000000000000 > --- a/UefiCpuPkg/Library/CpuTimerLib/DxeCpuTimerLib.c > +++ /dev/null > @@ -1,85 +0,0 @@ > -/** @file >=20 > - CPUID Leaf 0x15 for Core Crystal Clock frequency instance of Timer Lib= rary. >=20 > - >=20 > - Copyright (c) 2019 Intel Corporation. All rights reserved.
>=20 > - SPDX-License-Identifier: BSD-2-Clause-Patent >=20 > - >=20 > -**/ >=20 > - >=20 > -#include >=20 > -#include >=20 > -#include >=20 > -#include >=20 > - >=20 > -extern GUID mCpuCrystalFrequencyHobGuid; >=20 > - >=20 > -/** >=20 > - CPUID Leaf 0x15 for Core Crystal Clock Frequency. >=20 > - >=20 > - The TSC counting frequency is determined by using CPUID leaf 0x15. Fre= quency in MHz =3D Core XTAL frequency * EBX/EAX. >=20 > - In newer flavors of the CPU, core xtal frequency is returned in ECX or= 0 if not supported. >=20 > - @return The number of TSC counts per second. >=20 > - >=20 > -**/ >=20 > -UINT64 >=20 > -CpuidCoreClockCalculateTscFrequency ( >=20 > - VOID >=20 > - ); >=20 > - >=20 > -// >=20 > -// Cached CPU Crystal counter frequency >=20 > -// >=20 > -UINT64 mCpuCrystalCounterFrequency =3D 0; >=20 > - >=20 > - >=20 > -/** >=20 > - Internal function to retrieves the 64-bit frequency in Hz. >=20 > - >=20 > - Internal function to retrieves the 64-bit frequency in Hz. >=20 > - >=20 > - @return The frequency in Hz. >=20 > - >=20 > -**/ >=20 > -UINT64 >=20 > -InternalGetPerformanceCounterFrequency ( >=20 > - VOID >=20 > - ) >=20 > -{ >=20 > - return mCpuCrystalCounterFrequency; >=20 > -} >=20 > - >=20 > -/** >=20 > - The constructor function is to initialize CpuCrystalCounterFrequency. >=20 > - >=20 > - @param ImageHandle The firmware allocated handle for the EFI image. >=20 > - @param SystemTable A pointer to the EFI System Table. >=20 > - >=20 > - @retval EFI_SUCCESS The constructor always returns RETURN_SUCCESS. >=20 > - >=20 > -**/ >=20 > -EFI_STATUS >=20 > -EFIAPI >=20 > -DxeCpuTimerLibConstructor ( >=20 > - IN EFI_HANDLE ImageHandle, >=20 > - IN EFI_SYSTEM_TABLE *SystemTable >=20 > - ) >=20 > -{ >=20 > - EFI_HOB_GUID_TYPE *GuidHob; >=20 > - >=20 > - // >=20 > - // Initialize CpuCrystalCounterFrequency >=20 > - // >=20 > - GuidHob =3D GetFirstGuidHob (&mCpuCrystalFrequencyHobGuid); >=20 > - if (GuidHob !=3D NULL) { >=20 > - mCpuCrystalCounterFrequency =3D *(UINT64*)GET_GUID_HOB_DATA (GuidHob= ); >=20 > - } else { >=20 > - mCpuCrystalCounterFrequency =3D CpuidCoreClockCalculateTscFrequency = (); >=20 > - } >=20 > - >=20 > - if (mCpuCrystalCounterFrequency =3D=3D 0) { >=20 > - return EFI_UNSUPPORTED; >=20 > - } >=20 > - >=20 > - return EFI_SUCCESS; >=20 > -} >=20 > - >=20 > diff --git a/UefiCpuPkg/Library/CpuTimerLib/PeiCpuTimerLib.c b/UefiCpuPkg= /Library/CpuTimerLib/PeiCpuTimerLib.c > deleted file mode 100644 > index 91a721205653..000000000000 > --- a/UefiCpuPkg/Library/CpuTimerLib/PeiCpuTimerLib.c > +++ /dev/null > @@ -1,58 +0,0 @@ > -/** @file >=20 > - CPUID Leaf 0x15 for Core Crystal Clock frequency instance as PEI Timer= Library. >=20 > - >=20 > - Copyright (c) 2019 Intel Corporation. All rights reserved.
>=20 > - SPDX-License-Identifier: BSD-2-Clause-Patent >=20 > - >=20 > -**/ >=20 > - >=20 > -#include >=20 > -#include >=20 > -#include >=20 > -#include >=20 > -#include >=20 > - >=20 > -extern GUID mCpuCrystalFrequencyHobGuid; >=20 > - >=20 > -/** >=20 > - CPUID Leaf 0x15 for Core Crystal Clock Frequency. >=20 > - >=20 > - The TSC counting frequency is determined by using CPUID leaf 0x15. Fre= quency in MHz =3D Core XTAL frequency * EBX/EAX. >=20 > - In newer flavors of the CPU, core xtal frequency is returned in ECX or= 0 if not supported. >=20 > - @return The number of TSC counts per second. >=20 > - >=20 > -**/ >=20 > -UINT64 >=20 > -CpuidCoreClockCalculateTscFrequency ( >=20 > - VOID >=20 > - ); >=20 > - >=20 > -/** >=20 > - Internal function to retrieves the 64-bit frequency in Hz. >=20 > - >=20 > - Internal function to retrieves the 64-bit frequency in Hz. >=20 > - >=20 > - @return The frequency in Hz. >=20 > - >=20 > -**/ >=20 > -UINT64 >=20 > -InternalGetPerformanceCounterFrequency ( >=20 > - VOID >=20 > - ) >=20 > -{ >=20 > - UINT64 *CpuCrystalCounterFrequency; >=20 > - EFI_HOB_GUID_TYPE *GuidHob; >=20 > - >=20 > - CpuCrystalCounterFrequency =3D NULL; >=20 > - GuidHob =3D GetFirstGuidHob (&mCpuCrystalFrequencyHobGuid); >=20 > - if (GuidHob =3D=3D NULL) { >=20 > - CpuCrystalCounterFrequency =3D (UINT64*)BuildGuidHob(&mCpuCrystalFr= equencyHobGuid, sizeof > (*CpuCrystalCounterFrequency)); >=20 > - ASSERT (CpuCrystalCounterFrequency !=3D NULL); >=20 > - *CpuCrystalCounterFrequency =3D CpuidCoreClockCalculateTscFrequency = (); >=20 > - } else { >=20 > - CpuCrystalCounterFrequency =3D (UINT64*)GET_GUID_HOB_DATA (GuidHob); >=20 > - } >=20 > - >=20 > - return *CpuCrystalCounterFrequency; >=20 > -} >=20 > - >=20 > diff --git a/UefiCpuPkg/Library/CpuTimerLib/DxeCpuTimerLib.inf b/UefiCpuP= kg/Library/CpuTimerLib/DxeCpuTimerLib.inf > deleted file mode 100644 > index 6c83549c87da..000000000000 > --- a/UefiCpuPkg/Library/CpuTimerLib/DxeCpuTimerLib.inf > +++ /dev/null > @@ -1,37 +0,0 @@ > -## @file >=20 > -# DXE CPU Timer Library >=20 > -# >=20 > -# Provides basic timer support using CPUID Leaf 0x15 XTAL frequency. Th= e performance >=20 > -# counter features are provided by the processors time stamp counter. >=20 > -# >=20 > -# Copyright (c) 2019, Intel Corporation. All rights reserved.
>=20 > -# SPDX-License-Identifier: BSD-2-Clause-Patent >=20 > -# >=20 > -## >=20 > - >=20 > -[Defines] >=20 > - INF_VERSION =3D 0x00010005 >=20 > - BASE_NAME =3D DxeCpuTimerLib >=20 > - FILE_GUID =3D F22CC0DA-E7DB-4E4D-ABE2-A608188233A= 2 >=20 > - MODULE_TYPE =3D DXE_DRIVER >=20 > - VERSION_STRING =3D 1.0 >=20 > - LIBRARY_CLASS =3D TimerLib|DXE_CORE DXE_DRIVER DXE_RU= NTIME_DRIVER DXE_SMM_DRIVER > UEFI_APPLICATION UEFI_DRIVER SMM_CORE >=20 > - CONSTRUCTOR =3D DxeCpuTimerLibConstructor >=20 > - MODULE_UNI_FILE =3D DxeCpuTimerLib.uni >=20 > - >=20 > -[Sources] >=20 > - CpuTimerLib.c >=20 > - DxeCpuTimerLib.c >=20 > - >=20 > -[Packages] >=20 > - MdePkg/MdePkg.dec >=20 > - UefiCpuPkg/UefiCpuPkg.dec >=20 > - >=20 > -[LibraryClasses] >=20 > - BaseLib >=20 > - PcdLib >=20 > - DebugLib >=20 > - HobLib >=20 > - >=20 > -[Pcd] >=20 > - gUefiCpuPkgTokenSpaceGuid.PcdCpuCoreCrystalClockFrequency ## CONSUMES >=20 > diff --git a/UefiCpuPkg/Library/CpuTimerLib/DxeCpuTimerLib.uni b/UefiCpuP= kg/Library/CpuTimerLib/DxeCpuTimerLib.uni > deleted file mode 100644 > index f55b92abace7..000000000000 > --- a/UefiCpuPkg/Library/CpuTimerLib/DxeCpuTimerLib.uni > +++ /dev/null > @@ -1,17 +0,0 @@ > -// /** @file >=20 > -// DXE CPU Timer Library >=20 > -// >=20 > -// Provides basic timer support using CPUID Leaf 0x15 XTAL frequency. T= he performance >=20 > -// counter features are provided by the processors time stamp counter. >=20 > -// >=20 > -// Copyright (c) 2019, Intel Corporation. All rights reserved.
>=20 > -// >=20 > -// SPDX-License-Identifier: BSD-2-Clause-Patent >=20 > -// >=20 > -// **/ >=20 > - >=20 > - >=20 > -#string STR_MODULE_ABSTRACT #language en-US "CPU Timer Libra= ry" >=20 > - >=20 > -#string STR_MODULE_DESCRIPTION #language en-US "Provides basic = timer support using CPUID Leaf 0x15 XTAL > frequency." >=20 > - >=20 > diff --git a/UefiCpuPkg/Library/CpuTimerLib/PeiCpuTimerLib.inf b/UefiCpuP= kg/Library/CpuTimerLib/PeiCpuTimerLib.inf > deleted file mode 100644 > index 7af0fc44a65d..000000000000 > --- a/UefiCpuPkg/Library/CpuTimerLib/PeiCpuTimerLib.inf > +++ /dev/null > @@ -1,36 +0,0 @@ > -## @file >=20 > -# PEI CPU Timer Library >=20 > -# >=20 > -# Provides basic timer support using CPUID Leaf 0x15 XTAL frequency. Th= e performance >=20 > -# counter features are provided by the processors time stamp counter. >=20 > -# >=20 > -# Copyright (c) 2019, Intel Corporation. All rights reserved.
>=20 > -# SPDX-License-Identifier: BSD-2-Clause-Patent >=20 > -# >=20 > -## >=20 > - >=20 > -[Defines] >=20 > - INF_VERSION =3D 0x00010005 >=20 > - BASE_NAME =3D PeiCpuTimerLib >=20 > - FILE_GUID =3D 2B13DE00-1A5F-4DD7-A298-01B08AF1015= A >=20 > - MODULE_TYPE =3D BASE >=20 > - VERSION_STRING =3D 1.0 >=20 > - LIBRARY_CLASS =3D TimerLib|PEI_CORE PEIM >=20 > - MODULE_UNI_FILE =3D PeiCpuTimerLib.uni >=20 > - >=20 > -[Sources] >=20 > - CpuTimerLib.c >=20 > - PeiCpuTimerLib.c >=20 > - >=20 > -[Packages] >=20 > - MdePkg/MdePkg.dec >=20 > - UefiCpuPkg/UefiCpuPkg.dec >=20 > - >=20 > -[LibraryClasses] >=20 > - BaseLib >=20 > - PcdLib >=20 > - DebugLib >=20 > - HobLib >=20 > - >=20 > -[Pcd] >=20 > - gUefiCpuPkgTokenSpaceGuid.PcdCpuCoreCrystalClockFrequency ## CONSUMES >=20 > diff --git a/UefiCpuPkg/Library/CpuTimerLib/PeiCpuTimerLib.uni b/UefiCpuP= kg/Library/CpuTimerLib/PeiCpuTimerLib.uni > deleted file mode 100644 > index 49beb44908d6..000000000000 > --- a/UefiCpuPkg/Library/CpuTimerLib/PeiCpuTimerLib.uni > +++ /dev/null > @@ -1,17 +0,0 @@ > -// /** @file >=20 > -// PEI CPU Timer Library >=20 > -// >=20 > -// Provides basic timer support using CPUID Leaf 0x15 XTAL frequency. T= he performance >=20 > -// counter features are provided by the processors time stamp counter. >=20 > -// >=20 > -// Copyright (c) 2019, Intel Corporation. All rights reserved.
>=20 > -// >=20 > -// SPDX-License-Identifier: BSD-2-Clause-Patent >=20 > -// >=20 > -// **/ >=20 > - >=20 > - >=20 > -#string STR_MODULE_ABSTRACT #language en-US "CPU Timer Libra= ry" >=20 > - >=20 > -#string STR_MODULE_DESCRIPTION #language en-US "Provides basic = timer support using CPUID Leaf 0x15 XTAL > frequency." >=20 > - >=20 > diff --git a/UefiCpuPkg/UefiCpuPkg.dsc b/UefiCpuPkg/UefiCpuPkg.dsc > index b2b6d78a71b0..e915b5c81b66 100644 > --- a/UefiCpuPkg/UefiCpuPkg.dsc > +++ b/UefiCpuPkg/UefiCpuPkg.dsc > @@ -1,7 +1,7 @@ > ## @file >=20 > # UefiCpuPkg Package >=20 > # >=20 > -# Copyright (c) 2007 - 2019, Intel Corporation. All rights reserved. >=20 > +# Copyright (c) 2007 - 2020, Intel Corporation. All rights reserved. >=20 > # >=20 > # SPDX-License-Identifier: BSD-2-Clause-Patent >=20 > # >=20 > @@ -107,8 +107,6 @@ [Components] > UefiCpuPkg/Library/SecPeiDxeTimerLibUefiCpu/SecPeiDxeTimerLibUefiCpu.i= nf >=20 > UefiCpuPkg/Application/Cpuid/Cpuid.inf >=20 > UefiCpuPkg/Library/CpuTimerLib/BaseCpuTimerLib.inf >=20 > - UefiCpuPkg/Library/CpuTimerLib/DxeCpuTimerLib.inf >=20 > - UefiCpuPkg/Library/CpuTimerLib/PeiCpuTimerLib.inf >=20 >=20 >=20 > [Components.IA32, Components.X64] >=20 > UefiCpuPkg/CpuDxe/CpuDxe.inf >=20 > -- > 2.28.0.windows.1