TscTimerLib in PerformancePkg is a BASE type library, which should be used by any module type.

But its constructor uses the global variable mTscFrequency to store frequency, which doesn't work on XIP PEIM.
Split it to two LIBs for PEI and DXE separately.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11312 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
lzeng14
2011-02-15 02:02:06 +00:00
parent b7bc11a4ff
commit d50f6f8be8
9 changed files with 440 additions and 33 deletions

View File

@@ -0,0 +1,54 @@
#/** @file
# Pei Timer Library which uses the Time Stamp Counter in the processor.
#
# A version of the Timer Library using the processor's TSC.
# The time stamp counter in newer processors may support an enhancement, referred to as invariant TSC.
# The invariant TSC runs at a constant rate in all ACPI P-, C-. and T-states.
# This is the architectural behavior moving forward.
# TSC reads are much more efficient and do not incur the overhead associated with a ring transition or
# access to a platform resource.
#
# Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
# 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.
#
#**/
[Defines]
INF_VERSION = 0x00010005
BASE_NAME = PeiTscTimerLib
FILE_GUID = 342C36C0-15DF-43b4-9EC9-FBF748BFB3D1
MODULE_TYPE = PEIM
VERSION_STRING = 1.0
LIBRARY_CLASS = TimerLib|SEC PEIM PEI_CORE
#
# VALID_ARCHITECTURES = IA32 X64
#
[Sources.common]
PeiTscTimerLib.c
[Packages]
MdePkg/MdePkg.dec
PerformancePkg/PerformancePkg.dec
[LibraryClasses]
PcdLib
PciLib
IoLib
BaseLib
HobLib
[Guids]
gEfiTscFrequencyGuid ## PRODUCES ## Hob
[Pcd.common]
gPerformancePkgTokenSpaceGuid.PcdPerfPkgAcpiIoPortBaseAddress