From 586cd1f1f4129ab7ec24543d4968801e17cc870b Mon Sep 17 00:00:00 2001 From: lhauch Date: Fri, 1 Jun 2007 14:49:55 +0000 Subject: Moved the MdePkg to OldMdePkg so that new code in MdePkg does not break existing builds. Also updated the SPD and FPD files UiNames git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2616 6f19259b-4bc3-4df7-8a09-765794883524 --- MdePkg/Library/SecPeiDxeTimerLibCpu/IpfTimerLib.c | 168 -------------- .../SecPeiDxeTimerLibCpu/SecPeiDxeTimerLibCpu.msa | 64 ------ MdePkg/Library/SecPeiDxeTimerLibCpu/x86TimerLib.c | 246 --------------------- 3 files changed, 478 deletions(-) delete mode 100644 MdePkg/Library/SecPeiDxeTimerLibCpu/IpfTimerLib.c delete mode 100644 MdePkg/Library/SecPeiDxeTimerLibCpu/SecPeiDxeTimerLibCpu.msa delete mode 100644 MdePkg/Library/SecPeiDxeTimerLibCpu/x86TimerLib.c (limited to 'MdePkg/Library/SecPeiDxeTimerLibCpu') diff --git a/MdePkg/Library/SecPeiDxeTimerLibCpu/IpfTimerLib.c b/MdePkg/Library/SecPeiDxeTimerLibCpu/IpfTimerLib.c deleted file mode 100644 index 2e511704d8..0000000000 --- a/MdePkg/Library/SecPeiDxeTimerLibCpu/IpfTimerLib.c +++ /dev/null @@ -1,168 +0,0 @@ -/** @file - Timer Library functions built upon ITC on IPF. - - Copyright (c) 2006 - 2007, Intel Corporation
- All rights reserved. This program and the accompanying materials - are licensed and made available under the terms and conditions of the BSD License - which accompanies this distribution. The full text of the license may be 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 IMPLIED. - - Module Name: IpfTimerLib.c - -**/ - - - - -/** - 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 Number of ticks to delay. - -**/ -STATIC -VOID -InternalIpfDelay ( - IN INT64 Delay - ) -{ - INT64 Ticks; - - // - // The target timer count is calculated here - // - Ticks = (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() >= 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 MicroSeconds - -**/ -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 NanoSeconds - -**/ -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. - - 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 values - 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 counter - values. - - If StartValue is not NULL, then the value that the performance counter starts - with immediately after is it rolls over is returned in StartValue. If - EndValue is not NULL, then the value that the performance counter end with - immediately before it rolls over is returned in EndValue. The 64-bit - frequency of the performance counter in Hz is always returned. If StartValue - is less than EndValue, then the performance counter counts up. If StartValue - is greater than EndValue, then the performance counter counts down. For - example, a 64-bit free running counter that counts up would have a StartValue - of 0 and an EndValue of 0xFFFFFFFFFFFFFFFF. A 24-bit free running counter - that counts down would have a StartValue of 0xFFFFFF and an EndValue of 0. - - @param StartValue The value the performance counter starts with when it - rolls over. - @param EndValue The value that the performance counter ends with before - 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; - - PalRet = PalCallStatic (NULL, 13, 0, 0, 0); - ASSERT (PalRet.Status == 0); - BaseFrequence = PalRet.r9; - - PalRet = PalCallStatic (NULL, 14, 0, 0, 0); - ASSERT (PalRet.Status == 0); - - if (StartValue != NULL) { - *StartValue = 0; - } - - if (EndValue != NULL) { - *EndValue = (UINT64)(-1); - } - - return BaseFrequence * (PalRet.r11 >> 32) / (UINT32)PalRet.r11; -} diff --git a/MdePkg/Library/SecPeiDxeTimerLibCpu/SecPeiDxeTimerLibCpu.msa b/MdePkg/Library/SecPeiDxeTimerLibCpu/SecPeiDxeTimerLibCpu.msa deleted file mode 100644 index d6126f74e7..0000000000 --- a/MdePkg/Library/SecPeiDxeTimerLibCpu/SecPeiDxeTimerLibCpu.msa +++ /dev/null @@ -1,64 +0,0 @@ - - - - SecPeiDxeTimerLibCpu - BASE - b5a05743-9b71-489b-a0ed-a0eb3950d23b - 1.0 - Timer Library implementation for Boot Timer moudles that require timer services. - Timer Library that uses CPU resources to provide calibrated - delays on IA-32 and x64, and uses ITC on IPF. Note: Because CpuLocalApci - and ITC could be programmed by OS, it cannot be used by SMM drivers - and runtime drivers, ACPI timer is recommended for SMM drivers and RUNTIME - drivers. - Copyright (c) 2006 - 2007, Intel Corporation. - All rights reserved. This program and the accompanying materials - are licensed and made available under the terms and conditions of the BSD License - which accompanies this distribution. The full text of the license may be 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 IMPLIED. - FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052 - - - IA32 X64 IPF - false - SecPeiDxeTimerLibCpu - - - - TimerLib - - - BaseLib - - - IoLib - - - DebugLib - - - PcdLib - - - - x86TimerLib.c - x86TimerLib.c - IpfTimerLib.c - - - - - - EFI_SPECIFICATION_VERSION 0x00020000 - EDK_RELEASE_VERSION 0x00020000 - - - - PcdFSBClock - gEfiMdePkgTokenSpaceGuid - This value is FSB Clock frequency. Its unit is Hz and its default value is 200000000, that means FSB frequency is 200Mhz. - - - \ No newline at end of file diff --git a/MdePkg/Library/SecPeiDxeTimerLibCpu/x86TimerLib.c b/MdePkg/Library/SecPeiDxeTimerLibCpu/x86TimerLib.c deleted file mode 100644 index dd105de7fb..0000000000 --- a/MdePkg/Library/SecPeiDxeTimerLibCpu/x86TimerLib.c +++ /dev/null @@ -1,246 +0,0 @@ -/** @file - Timer Library functions built upon local APIC on IA32/x64. - - Copyright (c) 2006 - 2007, Intel Corporation
- All rights reserved. This program and the accompanying materials - are licensed and made available under the terms and conditions of the BSD License - which accompanies this distribution. The full text of the license may be 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 IMPLIED. - - Module Name: x86TimerLib.c - -**/ - -// -// The following array is used in calculating the frequency of local APIC -// timer. Refer to IA-32 developers' manual for more details. -// -GLOBAL_REMOVE_IF_UNREFERENCED -CONST UINT8 mTimerLibLocalApicDivisor[] = { - 0x02, 0x04, 0x08, 0x10, - 0x02, 0x04, 0x08, 0x10, - 0x20, 0x40, 0x80, 0x01, - 0x20, 0x40, 0x80, 0x01 -}; - -/** - Internal function to retrieve the base address of local APIC. - - Internal function to retrieve the base address of local APIC. - - @return The base address of local APIC - -**/ -STATIC -UINTN -InternalX86GetApicBase ( - VOID - ) -{ - return (UINTN)AsmMsrBitFieldRead64 (27, 12, 35) << 12; -} - -/** - Internal function to return the frequency of the local APIC timer. - - Internal function to return the frequency of the local APIC timer. - - @param ApicBase The base address of memory mapped registers of local APIC. - - @return The frequency of the timer in Hz. - -**/ -STATIC -UINT32 -InternalX86GetTimerFrequency ( - IN UINTN ApicBase - ) -{ - return - PcdGet32(PcdFSBClock) / - mTimerLibLocalApicDivisor[MmioBitFieldRead32 (ApicBase + 0x3e0, 0, 3)]; -} - -/** - Internal function to read the current tick counter of local APIC. - - Internal function to read the current tick counter of local APIC. - - @param ApicBase The base address of memory mapped registers of local APIC. - - @return The tick counter read. - -**/ -STATIC -INT32 -InternalX86GetTimerTick ( - IN UINTN ApicBase - ) -{ - return MmioRead32 (ApicBase + 0x390); -} - -/** - Stalls the CPU for at least the given number of ticks. - - Stalls the CPU for at least the given number of ticks. It's invoked by - MicroSecondDelay() and NanoSecondDelay(). - - @param ApicBase The base address of memory mapped registers of local APIC. - @param Delay A period of time to delay in ticks. - -**/ -STATIC -VOID -InternalX86Delay ( - IN UINTN ApicBase, - IN UINT32 Delay - ) -{ - INT32 Ticks; - - // - // The target timer count is calculated here - // - Ticks = InternalX86GetTimerTick (ApicBase) - Delay; - - // - // Wait until time out - // Delay > 2^31 could not be handled by this function - // Timer wrap-arounds are handled correctly by this function - // - while (InternalX86GetTimerTick (ApicBase) - Ticks >= 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 MicroSeconds - -**/ -UINTN -EFIAPI -MicroSecondDelay ( - IN UINTN MicroSeconds - ) -{ - UINTN ApicBase; - - ApicBase = InternalX86GetApicBase (); - InternalX86Delay ( - ApicBase, - (UINT32)DivU64x32 ( - MultU64x64 ( - InternalX86GetTimerFrequency (ApicBase), - MicroSeconds - ), - 1000000u - ) - ); - 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 NanoSeconds - -**/ -UINTN -EFIAPI -NanoSecondDelay ( - IN UINTN NanoSeconds - ) -{ - UINTN ApicBase; - - ApicBase = InternalX86GetApicBase (); - InternalX86Delay ( - ApicBase, - (UINT32)DivU64x32 ( - MultU64x64 ( - InternalX86GetTimerFrequency (ApicBase), - NanoSeconds - ), - 1000000000u - ) - ); - return NanoSeconds; -} - -/** - Retrieves the current value of a 64-bit free running performance counter. - - 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 values - 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 (UINT64)(UINT32)InternalX86GetTimerTick (InternalX86GetApicBase ()); -} - -/** - Retrieves the 64-bit frequency in Hz and the range of performance counter - values. - - If StartValue is not NULL, then the value that the performance counter starts - with immediately after is it rolls over is returned in StartValue. If - EndValue is not NULL, then the value that the performance counter end with - immediately before it rolls over is returned in EndValue. The 64-bit - frequency of the performance counter in Hz is always returned. If StartValue - is less than EndValue, then the performance counter counts up. If StartValue - is greater than EndValue, then the performance counter counts down. For - example, a 64-bit free running counter that counts up would have a StartValue - of 0 and an EndValue of 0xFFFFFFFFFFFFFFFF. A 24-bit free running counter - that counts down would have a StartValue of 0xFFFFFF and an EndValue of 0. - - @param StartValue The value the performance counter starts with when it - rolls over. - @param EndValue The value that the performance counter ends with before - it rolls over. - - @return The frequency in Hz. - -**/ -UINT64 -EFIAPI -GetPerformanceCounterProperties ( - OUT UINT64 *StartValue, OPTIONAL - OUT UINT64 *EndValue OPTIONAL - ) -{ - UINTN ApicBase; - - ApicBase = InternalX86GetApicBase (); - - if (StartValue != NULL) { - *StartValue = MmioRead32 (ApicBase + 0x380); - } - - if (EndValue != NULL) { - *EndValue = 0; - } - - return (UINT64) InternalX86GetTimerFrequency (ApicBase);; -} -- cgit v1.2.3