Home | History | Annotate | Download | only in TscTimerLib
      1 ## @file

      2 #  Dxe Timer Library which uses the Time Stamp Counter in the processor.

      3 #

      4 #  Note: This library is a sample implementation that depends on chipset ACPI timer. 

      5 #    It may not work on new generation chipset. PcAtChipsetPkg AcpiTimerLib is 

      6 #    the generic timer library that can replace this one. 

      7 #

      8 #  A version of the Timer Library using the processor's TSC.

      9 #  The time stamp counter in newer processors may support an enhancement, referred to as invariant TSC.

     10 #  The invariant TSC runs at a constant rate in all ACPI P-, C-. and T-states.

     11 #  This is the architectural behavior moving forward.

     12 #  TSC reads are much more efficient and do not incur the overhead associated with a ring transition or

     13 #  access to a platform resource.

     14 #

     15 #  Copyright (c) 2009 - 2015, Intel Corporation. All rights reserved.<BR>

     16 #  This program and the accompanying materials

     17 #  are licensed and made available under the terms and conditions of the BSD License

     18 #  which accompanies this distribution. The full text of the license may be found at

     19 #  http://opensource.org/licenses/bsd-license.php

     20 #  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,

     21 #  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

     22 #

     23 ##

     24 
     25 [Defines]
     26   INF_VERSION                    = 0x00010005
     27   BASE_NAME                      = DxeTscTimerLib
     28   FILE_GUID                      = 95ab030f-b4fd-4ee4-92a5-9e04e87634d9
     29   MODULE_TYPE                    = DXE_DRIVER
     30   VERSION_STRING                 = 1.0
     31   LIBRARY_CLASS                  = TimerLib|DXE_CORE DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER SMM_CORE
     32 
     33   CONSTRUCTOR                    = DxeTscTimerLibConstructor
     34 
     35 
     36 #

     37 #  VALID_ARCHITECTURES           = IA32 X64

     38 #

     39 
     40 [Sources.common]
     41   TscTimerLibShare.c
     42   DxeTscTimerLib.c
     43   TscTimerLibInternal.h
     44 
     45 
     46 [Packages]
     47   MdePkg/MdePkg.dec
     48   PerformancePkg/PerformancePkg.dec
     49 
     50 
     51 [LibraryClasses]
     52   UefiBootServicesTableLib
     53   PcdLib
     54   PciLib
     55   IoLib
     56   BaseLib
     57   UefiLib
     58   DebugLib
     59 
     60 [Guids]
     61   gEfiTscFrequencyGuid                          ## CONSUMES ## SystemTable

     62 
     63 [Pcd.common]
     64   gPerformancePkgTokenSpaceGuid.PcdPerfPkgAcpiIoPortBaseAddress   ## SOMETIMES_CONSUMES

     65