]> git.proxmox.com Git - mirror_edk2.git/blobdiff - PcAtChipsetPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.c
PcAtChipsetPkg: AcpiTimerLib: Added StandaloneMm instance of AcpiTimerLib
[mirror_edk2.git] / PcAtChipsetPkg / Library / AcpiTimerLib / DxeAcpiTimerLib.c
index 3ad831b15e8ada72a2e74ea6f3a794b0d29a4bd1..9ac2a446e365ffb587b9595985d41044623a98f6 100644 (file)
@@ -2,72 +2,14 @@
   ACPI Timer implements one instance of Timer Library.\r
 \r
   Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) Microsoft Corporation.\r
   SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
 \r
 #include <PiDxe.h>\r
-#include <Library/TimerLib.h>\r
-#include <Library/BaseLib.h>\r
-#include <Library/HobLib.h>\r
 \r
-extern GUID mFrequencyHobGuid;\r
-\r
-/**\r
-  The constructor function enables ACPI IO space.\r
-\r
-  If ACPI I/O space not enabled, this function will enable it.\r
-  It will always return RETURN_SUCCESS.\r
-\r
-  @retval EFI_SUCCESS   The constructor always returns RETURN_SUCCESS.\r
-\r
-**/\r
-RETURN_STATUS\r
-EFIAPI\r
-AcpiTimerLibConstructor (\r
-  VOID\r
-  );\r
-\r
-/**\r
-  Calculate TSC frequency.\r
-\r
-  The TSC counting frequency is determined by comparing how far it counts\r
-  during a 101.4 us period as determined by the ACPI timer.\r
-  The ACPI timer is used because it counts at a known frequency.\r
-  The TSC is sampled, followed by waiting 363 counts of the ACPI timer,\r
-  or 101.4 us. The TSC is then sampled again. The difference multiplied by\r
-  9861 is the TSC frequency. There will be a small error because of the\r
-  overhead of reading the ACPI timer. An attempt is made to determine and\r
-  compensate for this error.\r
-\r
-  @return The number of TSC counts per second.\r
-\r
-**/\r
-UINT64\r
-InternalCalculateTscFrequency (\r
-  VOID\r
-  );\r
-\r
-//\r
-// Cached performance counter frequency\r
-//\r
-UINT64  mPerformanceCounterFrequency = 0;\r
-\r
-/**\r
-  Internal function to retrieves the 64-bit frequency in Hz.\r
-\r
-  Internal function to retrieves the 64-bit frequency in Hz.\r
-\r
-  @return The frequency in Hz.\r
-\r
-**/\r
-UINT64\r
-InternalGetPerformanceCounterFrequency (\r
-  VOID\r
-  )\r
-{\r
-  return  mPerformanceCounterFrequency;\r
-}\r
+#include "DxeStandaloneMmAcpiTimerLib.h"\r
 \r
 /**\r
   The constructor function enables ACPI IO space, and caches PerformanceCounterFrequency.\r
@@ -85,22 +27,5 @@ DxeAcpiTimerLibConstructor (
   IN EFI_SYSTEM_TABLE  *SystemTable\r
   )\r
 {\r
-  EFI_HOB_GUID_TYPE   *GuidHob;\r
-\r
-  //\r
-  // Enable ACPI IO space.\r
-  //\r
-  AcpiTimerLibConstructor ();\r
-\r
-  //\r
-  // Initialize PerformanceCounterFrequency\r
-  //\r
-  GuidHob = GetFirstGuidHob (&mFrequencyHobGuid);\r
-  if (GuidHob != NULL) {\r
-    mPerformanceCounterFrequency = *(UINT64*)GET_GUID_HOB_DATA (GuidHob);\r
-  } else {\r
-    mPerformanceCounterFrequency = InternalCalculateTscFrequency ();\r
-  }\r
-\r
-  return EFI_SUCCESS;\r
+  return CommonAcpiTimerLibConstructor ();\r
 }\r