From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.93; helo=mga11.intel.com; envelope-from=eric.dong@intel.com; receiver=edk2-devel@lists.01.org Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 7FD1021205153 for ; Wed, 13 Jun 2018 01:51:05 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 Jun 2018 01:51:05 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.51,218,1526367600"; d="scan'208";a="64173361" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by orsmga001.jf.intel.com with ESMTP; 13 Jun 2018 01:51:04 -0700 Received: from fmsmsx118.amr.corp.intel.com (10.18.116.18) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 13 Jun 2018 01:51:04 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by fmsmsx118.amr.corp.intel.com (10.18.116.18) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 13 Jun 2018 01:51:03 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.223]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.82]) with mapi id 14.03.0319.002; Wed, 13 Jun 2018 16:51:01 +0800 From: "Dong, Eric" To: "Chen, Chen A" , "edk2-devel@lists.01.org" CC: Laszlo Ersek , "Kinney, Michael D" Thread-Topic: [PATCH 36/37] UefiCpuPkg: Removing ipf which is no longer supported from edk2. Thread-Index: AQHUAskgfm7HIrJSz0G4vgYBKg85YaRd4KUg Date: Wed, 13 Jun 2018 08:51:01 +0000 Message-ID: References: <20180613034616.11780-1-chen.a.chen@intel.com> In-Reply-To: <20180613034616.11780-1-chen.a.chen@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH 36/37] UefiCpuPkg: Removing ipf which is no longer supported from edk2. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Jun 2018 08:51:05 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Chen, For SecPeiDxeTimerLibUefiCpu.inf file, please change [Sources.Ia32, Sources= .X64] to [Sources] because after remove IPF, these info is not needed. Also= change others similar parts in this file. With above changes, Reviewed-by: Eric Dong -----Original Message----- From: Chen, Chen A=20 Sent: Wednesday, June 13, 2018 11:46 AM To: edk2-devel@lists.01.org Cc: Chen, Chen A ; Dong, Eric ;= Laszlo Ersek ; Kinney, Michael D Subject: [PATCH 36/37] UefiCpuPkg: Removing ipf which is no longer supporte= d from edk2. Removing rules for Ipf sources file: * Remove the source file which path with "ipf" and also listed in [Sources.IPF] section of INF file. * Remove the source file which listed in [Components.IPF] section of DSC file and not listed in any other [Components] section. * Remove the embedded Ipf code for MDE_CPU_IPF. Removing rules for Inf file: * Remove IPF from VALID_ARCHITECTURES comments. * Remove DXE_SAL_DRIVER from LIBRARY_CLASS in [Defines] section. * Remove the INF which only listed in [Components.IPF] section in DSC. * Remove statements from [BuildOptions] that provide IPF specific flags. * Remove any IPF sepcific sections. Removing rules for Dec file: * Remove [Includes.IPF] section from Dec. Removing rules for Dsc file: * Remove IPF from SUPPORTED_ARCHITECTURES in [Defines] section of DSC. * Remove any IPF specific sections. * Remove statements from [BuildOptions] that provide IPF specific flags. Cc: Eric Dong Cc: Laszlo Ersek Cc: Michael D Kinney Signed-off-by: chenc2 Contributed-under: TianoCore Contribution Agreement 1.1 --- UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf | 2 +- UefiCpuPkg/CpuIoPei/CpuIoPei.inf | 2 +- .../Library/SecPeiDxeTimerLibUefiCpu/IpfTimerLib.c | 216 -----------------= ---- .../SecPeiDxeTimerLibUefiCpu.inf | 10 +- UefiCpuPkg/SecCore/SecCore.inf | 2 +- UefiCpuPkg/UefiCpuPkg.dsc | 5 +- 6 files changed, 5 insertions(+), 232 deletions(-) delete mode 100644 Uef= iCpuPkg/Library/SecPeiDxeTimerLibUefiCpu/IpfTimerLib.c diff --git a/UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf b/UefiCpuPkg/CpuIo2Dxe/CpuI= o2Dxe.inf index 55036622ca..28dce937b0 100644 --- a/UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf +++ b/UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf @@ -26,7 +26,7 @@ # # The following information is for reference only and not required by the = build tools. # -# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC +# VALID_ARCHITECTURES =3D IA32 X64 EBC # =20 [Sources] diff --git a/UefiCpuPkg/CpuIoPei/CpuIoPei.inf b/UefiCpuPkg/CpuIoPei/CpuIoPe= i.inf index b72ad6bfaf..724999d7cd 100644 --- a/UefiCpuPkg/CpuIoPei/CpuIoPei.inf +++ b/UefiCpuPkg/CpuIoPei/CpuIoPei.inf @@ -24,7 +24,7 @@ # # The following information is for reference only and not required by the = build tools. # -# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC +# VALID_ARCHITECTURES =3D IA32 X64 EBC # =20 [Sources] diff --git a/UefiCpuPkg/Library/SecPeiDxeTimerLibUefiCpu/IpfTimerLib.c b/Ue= fiCpuPkg/Library/SecPeiDxeTimerLibUefiCpu/IpfTimerLib.c deleted file mode 100644 index 714b99eec4..0000000000 --- a/UefiCpuPkg/Library/SecPeiDxeTimerLibUefiCpu/IpfTimerLib.c +++ /dev/null @@ -1,216 +0,0 @@ -/** @file - Timer Library functions built upon ITC on IPF. - - Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.
- This program and the accompanying materials - are licensed and made available under the terms and conditions of the BS= D License - which accompanies this distribution. The full text of the license may b= e found at - http://opensource.org/licenses/bsd-license.php. - - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, - WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMP= LIED. - -**/ - -#include -#include -#include -#include - - -/** - Performs a delay measured as number of ticks. - - An internal function to perform a delay measured as number of ticks. It'= s - invoked by MicroSecondDelay() and NanoSecondDelay(). - - @param Delay The number of ticks to delay. - -**/ -VOID -EFIAPI -InternalIpfDelay ( - IN INT64 Delay - ) -{ - INT64 Ticks; - - // - // The target timer count is calculated here - // - Ticks =3D (INT64)AsmReadItc () + Delay; - - // - // Wait until time out - // Delay > 2^63 could not be handled by this function - // Timer wrap-arounds are handled correctly by this function - // - while (Ticks - (INT64)AsmReadItc() >=3D 0); -} - -/** - Stalls the CPU for at least the given number of microseconds. - - Stalls the CPU for the number of microseconds specified by MicroSeconds. - - @param MicroSeconds The minimum number of microseconds to delay. - - @return The value of MicroSeconds inputted. - -**/ -UINTN -EFIAPI -MicroSecondDelay ( - IN UINTN MicroSeconds - ) -{ - InternalIpfDelay ( - GetPerformanceCounterProperties (NULL, NULL) * - MicroSeconds / - 1000000 - ); - return MicroSeconds; -} - -/** - Stalls the CPU for at least the given number of nanoseconds. - - Stalls the CPU for the number of nanoseconds specified by NanoSeconds. - - @param NanoSeconds The minimum number of nanoseconds to delay. - - @return The value of NanoSeconds inputted. - -**/ -UINTN -EFIAPI -NanoSecondDelay ( - IN UINTN NanoSeconds - ) -{ - InternalIpfDelay ( - GetPerformanceCounterProperties (NULL, NULL) * - NanoSeconds / - 1000000000 - ); - return NanoSeconds; -} - -/** - Retrieves the current value of a 64-bit free running performance counter= . - - The counter can either count up by 1 or count down by 1. If the physical - performance counter counts by a larger increment, then the counter value= s - must be translated. The properties of the counter can be retrieved from - GetPerformanceCounterProperties(). - - @return The current value of the free running performance counter. - -**/ -UINT64 -EFIAPI -GetPerformanceCounter ( - VOID - ) -{ - return AsmReadItc (); -} - -/** - Retrieves the 64-bit frequency in Hz and the range of performance counte= r - values. - - If StartValue is not NULL, then the value that the performance counter s= tarts - with immediately after is it rolls over is returned in StartValue. If - EndValue is not NULL, then the value that the performance counter end wi= th - immediately before it rolls over is returned in EndValue. The 64-bit - frequency of the performance counter in Hz is always returned. If StartV= alue - is less than EndValue, then the performance counter counts up. If StartV= alue - is greater than EndValue, then the performance counter counts down. For - example, a 64-bit free running counter that counts up would have a Start= Value - of 0 and an EndValue of 0xFFFFFFFFFFFFFFFF. A 24-bit free running counte= r - that counts down would have a StartValue of 0xFFFFFF and an EndValue of = 0. - - @param StartValue The value the performance counter starts with when i= t - rolls over. - @param EndValue The value that the performance counter ends with bef= ore - it rolls over. - - @return The frequency in Hz. - -**/ -UINT64 -EFIAPI -GetPerformanceCounterProperties ( - OUT UINT64 *StartValue, OPTIONAL - OUT UINT64 *EndValue OPTIONAL - ) -{ - PAL_CALL_RETURN PalRet; - UINT64 BaseFrequence; - - if (StartValue !=3D NULL) { - *StartValue =3D 0; - } - - if (EndValue !=3D NULL) { - *EndValue =3D (UINT64)(-1); - } - - PalRet =3D PalCall (PAL_FREQ_BASE, 0, 0, 0); - if (PalRet.Status !=3D 0) { - return 1000000; - } - BaseFrequence =3D PalRet.r9; - - PalRet =3D PalCall (PAL_FREQ_RATIOS, 0, 0, 0); - if (PalRet.Status !=3D 0) { - return 1000000; - } - - return BaseFrequence * (PalRet.r11 >> 32) / (UINT32)PalRet.r11; -} - -/** - Converts elapsed ticks of performance counter to time in nanoseconds. - - This function converts the elapsed ticks of running performance counter = to - time value in unit of nanoseconds. - - @param Ticks The number of elapsed ticks of running performance cou= nter. - - @return The elapsed time in nanoseconds. - -**/ -UINT64 -EFIAPI -GetTimeInNanoSecond ( - IN UINT64 Ticks - ) -{ - UINT64 Frequency; - UINT64 NanoSeconds; - UINT64 Remainder; - INTN Shift; - - Frequency =3D GetPerformanceCounterProperties (NULL, NULL); - - // - // Ticks - // Time =3D --------- x 1,000,000,000 - // Frequency - // - NanoSeconds =3D MultU64x32 (DivU64x64Remainder (Ticks, Frequency, &Remai= nder), 1000000000u); - - // - // Ensure (Remainder * 1,000,000,000) will not overflow 64-bit. - // Since 2^29 < 1,000,000,000 =3D 0x3B9ACA00 < 2^30, Remainder should < = 2^(64-30) =3D 2^34, - // i.e. highest bit set in Remainder should <=3D 33. - // - Shift =3D MAX (0, HighBitSet64 (Remainder) - 33); - Remainder =3D RShiftU64 (Remainder, (UINTN) Shift); - Frequency =3D RShiftU64 (Frequency, (UINTN) Shift); - NanoSeconds +=3D DivU64x64Remainder (MultU64x32 (Remainder, 1000000000u)= , Frequency, NULL); - - return NanoSeconds; -} diff --git a/UefiCpuPkg/Library/SecPeiDxeTimerLibUefiCpu/SecPeiDxeTimerLibU= efiCpu.inf b/UefiCpuPkg/Library/SecPeiDxeTimerLibUefiCpu/SecPeiDxeTimerLibU= efiCpu.inf index a25e94a61a..e520e1cb78 100644 --- a/UefiCpuPkg/Library/SecPeiDxeTimerLibUefiCpu/SecPeiDxeTimerLibUefiCpu.= inf +++ b/UefiCpuPkg/Library/SecPeiDxeTimerLibUefiCpu/SecPeiDxeTimerLibUefiC +++ pu.inf @@ -36,16 +36,12 @@ =20 =20 # -# VALID_ARCHITECTURES =3D IA32 X64 IPF +# VALID_ARCHITECTURES =3D IA32 X64 # =20 [Sources.Ia32, Sources.X64] X86TimerLib.c =20 -[Sources.IPF] - IpfTimerLib.c - - [Packages] MdePkg/MdePkg.dec UefiCpuPkg/UefiCpuPkg.dec @@ -58,10 +54,6 @@ DebugLib LocalApicLib =20 -[LibraryClasses.IPF] - PalLib - - [Pcd.IA32, Pcd.X64] gEfiMdePkgTokenSpaceGuid.PcdFSBClock ## SOMETIMES_CONSUMES =20 diff --git a/UefiCpuPkg/SecCore/SecCore.inf b/UefiCpuPkg/SecCore/SecCore.in= f index a8f8a6da27..3805fda42a 100644 --- a/UefiCpuPkg/SecCore/SecCore.inf +++ b/UefiCpuPkg/SecCore/SecCore.inf @@ -30,7 +30,7 @@ # # The following information is for reference only and not required by the = build tools. # -# VALID_ARCHITECTURES =3D IA32 X64 IPF EBC +# VALID_ARCHITECTURES =3D IA32 X64 EBC # =20 [Sources] diff --git a/UefiCpuPkg/UefiCpuPkg.dsc b/UefiCpuPkg/UefiCpuPkg.dsc index 2e= 4b0fd776..5c2239967f 100644 --- a/UefiCpuPkg/UefiCpuPkg.dsc +++ b/UefiCpuPkg/UefiCpuPkg.dsc @@ -19,7 +19,7 @@ PLATFORM_VERSION =3D 0.90 DSC_SPECIFICATION =3D 0x00010005 OUTPUT_DIRECTORY =3D Build/UefiCpu - SUPPORTED_ARCHITECTURES =3D IA32|IPF|X64 + SUPPORTED_ARCHITECTURES =3D IA32|X64 BUILD_TARGETS =3D DEBUG|RELEASE|NOOPT SKUID_IDENTIFIER =3D DEFAULT =20 @@ -81,9 +81,6 @@ PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLibIdt/= PeiServicesTablePointerLibIdt.inf CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiCpuE= xceptionHandlerLib.inf =20 -[LibraryClasses.IPF.PEIM] - PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLibKr7/= PeiServicesTablePointerLibKr7.inf - [LibraryClasses.common.DXE_DRIVER] MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAll= ocationLib.inf HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf -- 2.16.2.windows.1