PcAtChipsetPkg: new AcpiTimerLib libraries.

Two library instances are added to support BASE type and DXE type. Those libraries provides basic timer support using the ACPI timer hardware.  The performance  counter features are provided by the processors time stamp counter.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Gao, Liming <liming.gao@intel.com>
Reviewed-by: Kinney, Michael D <michael.d.kinney@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15803 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Gao, Liming
2014-08-14 14:30:32 +00:00
committed by lgao4
parent f61d69cc44
commit 83d1ffb92f
8 changed files with 569 additions and 1 deletions

View File

@@ -0,0 +1,42 @@
/** @file
ACPI Timer implements one instance of Timer Library.
Copyright (c) 2013 - 2014, 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.
**/
#include <Base.h>
#include <Library/TimerLib.h>
#include <Library/BaseLib.h>
/**
Internal function to retrieves the 64-bit frequency in Hz.
Internal function to retrieves the 64-bit frequency in Hz.
@return The frequency in Hz.
**/
UINT64
InternalGetPerformanceCounterFrequency (
VOID
)
{
BOOLEAN InterruptState;
UINT64 Count;
UINT64 Frequency;
InterruptState = SaveAndDisableInterrupts ();
Count = GetPerformanceCounter ();
MicroSecondDelay (100);
Frequency = MultU64x32 (GetPerformanceCounter () - Count, 10000);
SetInterruptState (InterruptState);
return Frequency;
}