]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ArmPkg: Move TimerDxe and ArmArchTimerLib to new ArmGenericTimerCounterLib
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Tue, 9 Sep 2014 16:10:18 +0000 (16:10 +0000)
committeroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 9 Sep 2014 16:10:18 +0000 (16:10 +0000)
Move TimerDxe and ArmArchTimerLib to ArmGenericTimerCounterLib, and update all
platforms to select the physical counter instance they have been using
implicitly all along.

Contributed-under: TianoCore Contribution Agreement 1.0
Acked-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-By: Olivier Martin <olivier.martin@arm.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16078 6f19259b-4bc3-4df7-8a09-765794883524

17 files changed:
ArmPkg/ArmPkg.dsc
ArmPkg/Drivers/ArmCpuLib/ArmCortexA15Lib/ArmCortexA15Lib.c
ArmPkg/Drivers/ArmCpuLib/ArmCortexA15Lib/ArmCortexA15Lib.inf
ArmPkg/Drivers/ArmCpuLib/ArmCortexA5xLib/ArmCortexA5xLib.c
ArmPkg/Drivers/ArmCpuLib/ArmCortexA5xLib/ArmCortexA5xLib.inf
ArmPkg/Drivers/ArmCpuLib/ArmCortexAEMv8Lib/ArmCortexAEMv8Lib.c
ArmPkg/Drivers/ArmCpuLib/ArmCortexAEMv8Lib/ArmCortexAEMv8Lib.inf
ArmPkg/Drivers/TimerDxe/TimerDxe.c
ArmPkg/Drivers/TimerDxe/TimerDxe.inf
ArmPkg/Include/Library/ArmArchTimer.h
ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.c
ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf
ArmPkg/Library/ArmLib/AArch64/AArch64ArchTimer.c
ArmPkg/Library/ArmLib/ArmV7/ArmV7ArchTimer.c
ArmPlatformPkg/ArmPlatformPkg.dsc
ArmPlatformPkg/ArmRealViewEbPkg/ArmRealViewEb.dsc.inc
ArmPlatformPkg/ArmVExpressPkg/ArmVExpress.dsc.inc

index 4a02517c4be771db712499b864244b670b6c7744..3a51b5ce1c1445aab4d1d3dbe995a08f6590fde8 100644 (file)
@@ -64,6 +64,7 @@
 \r
   CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf\r
   ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicLib.inf\r
+  ArmGenericTimerCounterLib|ArmPkg/Library/ArmGenericTimerPhyCounterLib/ArmGenericTimerPhyCounterLib.inf\r
   ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf\r
   ArmDisassemblerLib|ArmPkg/Library/ArmDisassemblerLib/ArmDisassemblerLib.inf\r
   DmaLib|ArmPkg/Library/ArmDmaLib/ArmDmaLib.inf\r
index 585695a7dd5c44216b5bb408e4ea2c7f55fe11fa..a1678febc44da20dfc728b76af5e16ad73a8d2e2 100644 (file)
@@ -15,9 +15,8 @@
 #include <Base.h>\r
 #include <Library/ArmLib.h>\r
 #include <Library/ArmCpuLib.h>\r
-#include <Library/ArmArchTimer.h>\r
+#include <Library/ArmGenericTimerCounterLib.h>\r
 #include <Library/DebugLib.h>\r
-#include <Library/IoLib.h>\r
 #include <Library/PcdLib.h>\r
 \r
 #include <Chipset/ArmCortexA15.h>\r
@@ -39,7 +38,7 @@ ArmCpuSetup (
 \r
   // Note: System Counter frequency can only be set in Secure privileged mode,\r
   // if security extensions are implemented.\r
-  ArmArchTimerSetTimerFreq (PcdGet32 (PcdArmArchTimerFreqInHz));\r
+  ArmGenericTimerSetTimerFreq (PcdGet32 (PcdArmArchTimerFreqInHz));\r
 \r
   if (ArmIsMpCore()) {\r
     // Turn on SMP coherency\r
index ed4bdc377dde6021016f1407cdbe6b3592ca916c..bd9a733b46cd6646d2e575bf20d78c66c28cedd9 100644 (file)
@@ -1,5 +1,5 @@
 #/* @file\r
-#  Copyright (c) 2011-2012, ARM Limited. All rights reserved.\r
+#  Copyright (c) 2011-2014, ARM Limited. All rights reserved.\r
 #\r
 #  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
@@ -25,7 +25,7 @@
 \r
 [LibraryClasses]\r
   ArmLib\r
-  IoLib\r
+  ArmGenericTimerCounterLib\r
   PcdLib\r
 \r
 [Sources.common]\r
index 97f1ced413625db3de0d99f2fd7439383178a61d..135bd6b86d74f7cf78df530a10f0472c1d7f5c0c 100644 (file)
@@ -15,9 +15,8 @@
 #include <Base.h>\r
 #include <Library/ArmLib.h>\r
 #include <Library/ArmCpuLib.h>\r
-#include <Library/ArmArchTimer.h>\r
+#include <Library/ArmGenericTimerCounterLib.h>\r
 #include <Library/DebugLib.h>\r
-#include <Library/IoLib.h>\r
 #include <Library/PcdLib.h>\r
 \r
 #include <Chipset/ArmCortexA5x.h>\r
@@ -33,7 +32,7 @@ ArmCpuSetup (
 \r
   // Note: System Counter frequency can only be set in Secure privileged mode,\r
   // if security extensions are implemented.\r
-  ArmArchTimerSetTimerFreq (PcdGet32 (PcdArmArchTimerFreqInHz));\r
+  ArmGenericTimerSetTimerFreq (PcdGet32 (PcdArmArchTimerFreqInHz));\r
 \r
   if (ArmIsMpCore ()) {\r
     // Turn on SMP coherency\r
index acfa98d41db8fba6f75ce4cc766387987b4ed584..e27022032624a98fc732af6a08dc0c343af5c73c 100644 (file)
@@ -25,7 +25,7 @@
 \r
 [LibraryClasses]\r
   ArmLib\r
-  IoLib\r
+  ArmGenericTimerCounterLib\r
   PcdLib\r
 \r
 [Sources.common]\r
index 3e7fa124ce486fba286604b15fe8b9e0fbdc2ff1..9b1815f8f291ef3633eb088473c90b529b861e49 100644 (file)
@@ -14,7 +14,7 @@
 \r
 #include <Base.h>\r
 #include <Library/ArmCpuLib.h>\r
-#include <Library/ArmArchTimer.h>\r
+#include <Library/ArmGenericTimerCounterLib.h>\r
 #include <Library/PcdLib.h>\r
 \r
 #include <Chipset/ArmAemV8.h>\r
@@ -26,7 +26,7 @@ ArmCpuSetup (
 {\r
   // Note: System Counter frequency can only be set in Secure privileged mode,\r
   // if security extensions are implemented.\r
-  ArmArchTimerSetTimerFreq (PcdGet32 (PcdArmArchTimerFreqInHz));\r
+  ArmGenericTimerSetTimerFreq (PcdGet32 (PcdArmArchTimerFreqInHz));\r
 }\r
 \r
 \r
index 0109cc53a39f7b107869b47853a326860e2d6f0d..1c8122082d9dc5405820a01c7d1b09036b26bca9 100644 (file)
@@ -24,8 +24,7 @@
   ArmPkg/ArmPkg.dec\r
 \r
 [LibraryClasses]\r
-  ArmLib\r
-  IoLib\r
+  ArmGenericTimerCounterLib\r
   PcdLib\r
 \r
 [Sources.common]\r
index 239a3532693871058ff26173578f297762e4868d..3e5d8e72be845d48edbfc503172a0e6060a2510d 100644 (file)
@@ -24,6 +24,7 @@
 #include <Library/UefiLib.h>\r
 #include <Library/PcdLib.h>\r
 #include <Library/IoLib.h>\r
+#include <Library/ArmGenericTimerCounterLib.h>\r
 #include <Library/ArmArchTimer.h>\r
 \r
 #include <Protocol/Timer.h>\r
@@ -101,7 +102,7 @@ ExitBootServicesEvent (
   IN VOID       *Context\r
   )\r
 {\r
-  ArmArchTimerDisableTimer ();\r
+  ArmGenericTimerDisableTimer ();\r
 }\r
 \r
 /**\r
@@ -144,7 +145,7 @@ TimerDriverSetTimerPeriod (
   EFI_TPL     OriginalTPL;\r
 \r
   // Always disable the timer\r
-  ArmArchTimerDisableTimer ();\r
+  ArmGenericTimerDisableTimer ();\r
 \r
   if (TimerPeriod != 0) {\r
     // mTimerTicks = TimerPeriod in 1ms unit x Frequency.10^-3\r
@@ -163,13 +164,13 @@ TimerDriverSetTimerPeriod (
 \r
     gBS->RestoreTPL (OriginalTPL);\r
 \r
-    // Get value of the current physical timer\r
-    CounterValue = ArmReadCntPct ();\r
+    // Get value of the current timer\r
+    CounterValue = ArmGenericTimerGetSystemCount ();\r
     // Set the interrupt in Current Time + mTimerTick\r
-    ArmWriteCntpCval (CounterValue + mTimerTicks);\r
+    ArmGenericTimerSetCompareVal (CounterValue + mTimerTicks);\r
 \r
     // Enable the timer\r
-    ArmArchTimerEnableTimer ();\r
+    ArmGenericTimerEnableTimer ();\r
   } else {\r
     // Save the new timer period\r
     mTimerPeriod   = TimerPeriod;\r
@@ -307,7 +308,7 @@ TimerInterruptHandler (
   OriginalTPL = gBS->RaiseTPL (TPL_HIGH_LEVEL);\r
 \r
   // Check if the timer interrupt is active\r
-  if ((ArmArchTimerGetTimerCtrlReg () ) & ARM_ARCH_TIMER_ISTATUS) {\r
+  if ((ArmGenericTimerGetTimerCtrlReg () ) & ARM_ARCH_TIMER_ISTATUS) {\r
 \r
     // Signal end of interrupt early to help avoid losing subsequent ticks from long duration handlers\r
     gInterrupt->EndOfInterrupt (gInterrupt, Source);\r
@@ -321,9 +322,9 @@ TimerInterruptHandler (
     //\r
 \r
     // Get current counter value\r
-    CurrentValue = ArmReadCntPct ();\r
+    CurrentValue = ArmGenericTimerGetSystemCount ();\r
     // Get the counter value to compare with\r
-    CompareValue = ArmReadCntpCval ();\r
+    CompareValue = ArmGenericTimerGetCompareVal ();\r
 \r
     // This loop is needed in case we missed interrupts (eg: case when the interrupt handling\r
     // has taken longer than mTickPeriod).\r
@@ -335,7 +336,7 @@ TimerInterruptHandler (
     } while (CompareValue < CurrentValue);\r
 \r
     // Set next compare value\r
-    ArmWriteCntpCval (CompareValue);\r
+    ArmGenericTimerSetCompareVal (CompareValue);\r
   }\r
 \r
   // Enable timer interrupts\r
@@ -379,10 +380,10 @@ TimerInitialize (
   ASSERT_EFI_ERROR (Status);\r
 \r
   // Disable the timer\r
-  TimerCtrlReg = ArmArchTimerGetTimerCtrlReg ();\r
+  TimerCtrlReg = ArmGenericTimerGetTimerCtrlReg ();\r
   TimerCtrlReg |= ARM_ARCH_TIMER_IMASK;\r
   TimerCtrlReg &= ~ARM_ARCH_TIMER_ENABLE;\r
-  ArmArchTimerSetTimerCtrlReg (TimerCtrlReg);\r
+  ArmGenericTimerSetTimerCtrlReg (TimerCtrlReg);\r
   Status = TimerDriverSetTimerPeriod (&gTimer, 0);\r
   ASSERT_EFI_ERROR (Status);\r
 \r
@@ -416,7 +417,7 @@ TimerInitialize (
 \r
   // Everything is ready, unmask and enable timer interrupts\r
   TimerCtrlReg = ARM_ARCH_TIMER_ENABLE;\r
-  ArmArchTimerSetTimerCtrlReg (TimerCtrlReg);\r
+  ArmGenericTimerSetTimerCtrlReg (TimerCtrlReg);\r
 \r
   // Register for an ExitBootServicesEvent\r
   Status = gBS->CreateEvent (EVT_SIGNAL_EXIT_BOOT_SERVICES, TPL_NOTIFY, ExitBootServicesEvent, NULL, &EfiExitBootServicesEvent);\r
index 161d286d9c57aebd01d509c7b4946beb7438cf1d..9e9768fbb56749b7a159adf018dacb4bdb6f5ded 100644 (file)
@@ -41,6 +41,7 @@
   DebugLib\r
   UefiDriverEntryPoint\r
   IoLib\r
+  ArmGenericTimerCounterLib\r
 \r
 [Guids]\r
 \r
index eb7e87d3c4fcec731b4f8d05008ac52ce87360cd..876c1f65c5255d0148766d137fc3015be6d61bbc 100644 (file)
@@ -52,64 +52,4 @@ ArmArchTimerWriteReg (
   IN   VOID                  *SrcBuf\r
   );\r
 \r
-VOID\r
-EFIAPI\r
-ArmArchTimerEnableTimer (\r
-  VOID\r
-  );\r
-\r
-VOID\r
-EFIAPI\r
-ArmArchTimerDisableTimer (\r
-  VOID\r
-  );\r
-\r
-VOID\r
-EFIAPI\r
-ArmArchTimerSetTimerFreq (\r
-  IN   UINTN  FreqInHz\r
-  );\r
-\r
-UINTN\r
-EFIAPI\r
-ArmArchTimerGetTimerFreq (\r
-  VOID\r
-  );\r
-\r
-VOID\r
-EFIAPI\r
-ArmArchTimerSetTimerVal (\r
-  IN   UINTN   Val\r
-  );\r
-\r
-UINTN\r
-EFIAPI\r
-ArmArchTimerGetTimerVal (\r
-  VOID\r
-  );\r
-\r
-UINT64\r
-EFIAPI\r
-ArmArchTimerGetSystemCount (\r
-  VOID\r
-  );\r
-\r
-UINTN\r
-EFIAPI\r
-ArmArchTimerGetTimerCtrlReg (\r
-  VOID\r
-  );\r
-\r
-VOID\r
-EFIAPI\r
-ArmArchTimerSetTimerCtrlReg (\r
-  UINTN Val\r
-  );\r
-\r
-VOID\r
-EFIAPI\r
-ArmArchTimerSetCompareVal (\r
-  IN   UINT64   Val\r
-  );\r
-\r
 #endif // __ARM_ARCH_TIMER_H__\r
index ec4c39dbc9893381875d68d57e60c19302d8b74f..5d8e006cc99c0889aa23e2602b2ec758b28ec5f6 100644 (file)
@@ -20,7 +20,7 @@
 #include <Library/TimerLib.h>\r
 #include <Library/DebugLib.h>\r
 #include <Library/PcdLib.h>\r
-#include <Library/ArmArchTimer.h>\r
+#include <Library/ArmGenericTimerCounterLib.h>\r
 \r
 #define TICKS_PER_MICRO_SEC     (PcdGet32 (PcdArmArchTimerFreqInHz)/1000000U)\r
 \r
@@ -47,13 +47,13 @@ TimerConstructor (
     // Only set the frequency for ARMv7. We expect the secure firmware to have already do it\r
     // If the security extensions are not implemented set Timer Frequency\r
     if ((ArmReadIdPfr1 () & ARM_PFR1_SEC) == 0x0) {\r
-      ArmArchTimerSetTimerFreq (PcdGet32 (PcdArmArchTimerFreqInHz));\r
+      ArmGenericTimerSetTimerFreq (PcdGet32 (PcdArmArchTimerFreqInHz));\r
     }\r
 #endif\r
 \r
     // Architectural Timer Frequency must be set in the Secure privileged(if secure extensions are supported) mode.\r
     // If the reset value (0) is returned just ASSERT.\r
-    TimerFreq = ArmArchTimerGetTimerFreq ();\r
+    TimerFreq = ArmGenericTimerGetTimerFreq ();\r
     ASSERT (TimerFreq != 0);\r
 \r
   } else {\r
@@ -88,13 +88,13 @@ MicroSecondDelay (
   TimerTicks64 = (MicroSeconds * PcdGet32 (PcdArmArchTimerFreqInHz)) / 1000000U;\r
 \r
   // Read System Counter value\r
-  SystemCounterVal = ArmArchTimerGetSystemCount ();\r
+  SystemCounterVal = ArmGenericTimerGetSystemCount ();\r
 \r
   TimerTicks64 += SystemCounterVal;\r
 \r
   // Wait until delay count is expired.\r
   while (SystemCounterVal < TimerTicks64) {\r
-    SystemCounterVal = ArmArchTimerGetSystemCount ();\r
+    SystemCounterVal = ArmGenericTimerGetSystemCount ();\r
   }\r
 \r
   return MicroSeconds;\r
@@ -149,7 +149,7 @@ GetPerformanceCounter (
   )\r
 {\r
   // Just return the value of system count\r
-  return ArmArchTimerGetSystemCount ();\r
+  return ArmGenericTimerGetSystemCount ();\r
 }\r
 \r
 /**\r
@@ -192,5 +192,5 @@ GetPerformanceCounterProperties (
     *EndValue = 0xFFFFFFFFFFFFFFFFUL;\r
   }\r
 \r
-  return (UINT64)ArmArchTimerGetTimerFreq ();\r
+  return (UINT64)ArmGenericTimerGetTimerFreq ();\r
 }\r
index ecdf0837f121c2e1232a1ccb3db5e973444e327b..03a4b1efa657e0c92ccba6129a3c64c7751762f1 100644 (file)
@@ -32,6 +32,7 @@
   DebugLib\r
   ArmLib\r
   BaseLib\r
+  ArmGenericTimerCounterLib\r
 \r
 [Pcd]\r
   gArmTokenSpaceGuid.PcdArmArchTimerFreqInHz\r
index 6a461eb2e43e2b4e1974483c5a573cb2fd42be0a..63ce1978c0913fa5832cd237664ccded0cd5bd1a 100644 (file)
@@ -166,110 +166,3 @@ ArmArchTimerWriteReg (
     ASSERT (0);\r
   }\r
 }\r
-\r
-VOID\r
-EFIAPI\r
-ArmArchTimerEnableTimer (\r
-    VOID\r
-    )\r
-{\r
-  UINTN TimerCtrlReg;\r
-\r
-  ArmArchTimerReadReg (CntpCtl, (VOID *)&TimerCtrlReg);\r
-  TimerCtrlReg |= ARM_ARCH_TIMER_ENABLE;\r
-  ArmArchTimerWriteReg (CntpCtl, (VOID *)&TimerCtrlReg);\r
-}\r
-\r
-VOID\r
-EFIAPI\r
-ArmArchTimerDisableTimer (\r
-    VOID\r
-    )\r
-{\r
-  UINTN TimerCtrlReg;\r
-\r
-  ArmArchTimerReadReg (CntpCtl, (VOID *)&TimerCtrlReg);\r
-  TimerCtrlReg &= ~ARM_ARCH_TIMER_ENABLE;\r
-  ArmArchTimerWriteReg (CntpCtl, (VOID *)&TimerCtrlReg);\r
-}\r
-\r
-VOID\r
-EFIAPI\r
-ArmArchTimerSetTimerFreq (\r
-    IN   UINTN  FreqInHz\r
-    )\r
-{\r
-  ArmArchTimerWriteReg (CntFrq, (VOID *)&FreqInHz);\r
-}\r
-\r
-UINTN\r
-EFIAPI\r
-ArmArchTimerGetTimerFreq (\r
-    VOID\r
-    )\r
-{\r
-  UINTN ArchTimerFreq = 0;\r
-  ArmArchTimerReadReg (CntFrq, (VOID *)&ArchTimerFreq);\r
-  return ArchTimerFreq;\r
-}\r
-\r
-UINTN\r
-EFIAPI\r
-ArmArchTimerGetTimerVal (\r
-    VOID\r
-    )\r
-{\r
-  UINTN ArchTimerVal;\r
-  ArmArchTimerReadReg (CntpTval, (VOID *)&ArchTimerVal);\r
-  return ArchTimerVal;\r
-}\r
-\r
-\r
-VOID\r
-EFIAPI\r
-ArmArchTimerSetTimerVal (\r
-    IN   UINTN   Val\r
-    )\r
-{\r
-  ArmArchTimerWriteReg (CntpTval, (VOID *)&Val);\r
-}\r
-\r
-UINT64\r
-EFIAPI\r
-ArmArchTimerGetSystemCount (\r
-    VOID\r
-    )\r
-{\r
-  UINT64 SystemCount;\r
-  ArmArchTimerReadReg (CntPct, (VOID *)&SystemCount);\r
-  return SystemCount;\r
-}\r
-\r
-UINTN\r
-EFIAPI\r
-ArmArchTimerGetTimerCtrlReg (\r
-    VOID\r
-    )\r
-{\r
-  UINTN  Val;\r
-  ArmArchTimerReadReg (CntpCtl, (VOID *)&Val);\r
-  return Val;\r
-}\r
-\r
-VOID\r
-EFIAPI\r
-ArmArchTimerSetTimerCtrlReg (\r
-    UINTN Val\r
-    )\r
-{\r
-  ArmArchTimerWriteReg (CntpCtl, (VOID *)&Val);\r
-}\r
-\r
-VOID\r
-EFIAPI\r
-ArmArchTimerSetCompareVal (\r
-    IN   UINT64   Val\r
-    )\r
-{\r
-  ArmArchTimerWriteReg (CntpCval, (VOID *)&Val);\r
-}\r
index bebdafce7dbaba034c9f43bbe269e382de85f6ec..49be71bbe088fafdc99f57371ed9205d5bc760ed 100644 (file)
@@ -166,110 +166,3 @@ ArmArchTimerWriteReg (
     ASSERT (0);\r
   }\r
 }\r
-\r
-VOID\r
-EFIAPI\r
-ArmArchTimerEnableTimer (\r
-    VOID\r
-    )\r
-{\r
-  UINTN TimerCtrlReg;\r
-\r
-  ArmArchTimerReadReg (CntpCtl, (VOID *)&TimerCtrlReg);\r
-  TimerCtrlReg |= ARM_ARCH_TIMER_ENABLE;\r
-  ArmArchTimerWriteReg (CntpCtl, (VOID *)&TimerCtrlReg);\r
-}\r
-\r
-VOID\r
-EFIAPI\r
-ArmArchTimerDisableTimer (\r
-    VOID\r
-    )\r
-{\r
-  UINTN TimerCtrlReg;\r
-\r
-  ArmArchTimerReadReg (CntpCtl, (VOID *)&TimerCtrlReg);\r
-  TimerCtrlReg &= ~ARM_ARCH_TIMER_ENABLE;\r
-  ArmArchTimerWriteReg (CntpCtl, (VOID *)&TimerCtrlReg);\r
-}\r
-\r
-VOID\r
-EFIAPI\r
-ArmArchTimerSetTimerFreq (\r
-    IN   UINTN  FreqInHz\r
-    )\r
-{\r
-  ArmArchTimerWriteReg (CntFrq, (VOID *)&FreqInHz);\r
-}\r
-\r
-UINTN\r
-EFIAPI\r
-ArmArchTimerGetTimerFreq (\r
-    VOID\r
-    )\r
-{\r
-  UINTN ArchTimerFreq;\r
-  ArmArchTimerReadReg (CntFrq, (VOID *)&ArchTimerFreq);\r
-  return ArchTimerFreq;\r
-}\r
-\r
-UINTN\r
-EFIAPI\r
-ArmArchTimerGetTimerVal (\r
-    VOID\r
-    )\r
-{\r
-  UINTN ArchTimerVal;\r
-  ArmArchTimerReadReg (CntpTval, (VOID *)&ArchTimerVal);\r
-  return ArchTimerVal;\r
-}\r
-\r
-\r
-VOID\r
-EFIAPI\r
-ArmArchTimerSetTimerVal (\r
-    IN   UINTN   Val\r
-    )\r
-{\r
-  ArmArchTimerWriteReg (CntpTval, (VOID *)&Val);\r
-}\r
-\r
-UINT64\r
-EFIAPI\r
-ArmArchTimerGetSystemCount (\r
-    VOID\r
-    )\r
-{\r
-  UINT64 SystemCount;\r
-  ArmArchTimerReadReg (CntPct, (VOID *)&SystemCount);\r
-  return SystemCount;\r
-}\r
-\r
-UINTN\r
-EFIAPI\r
-ArmArchTimerGetTimerCtrlReg (\r
-    VOID\r
-    )\r
-{\r
-  UINTN  Val;\r
-  ArmArchTimerReadReg (CntpCtl, (VOID *)&Val);\r
-  return Val;\r
-}\r
-\r
-VOID\r
-EFIAPI\r
-ArmArchTimerSetTimerCtrlReg (\r
-    UINTN Val\r
-    )\r
-{\r
-  ArmArchTimerWriteReg (CntpCtl, (VOID *)&Val);\r
-}\r
-\r
-VOID\r
-EFIAPI\r
-ArmArchTimerSetCompareVal (\r
-    IN   UINT64   Val\r
-    )\r
-{\r
-  ArmArchTimerWriteReg (CntpCval, (VOID *)&Val);\r
-}\r
index 420ab334c811f65031b1fb66e4db90b89ad137fd..bed1b94436133a18a7b899b661d851f12a50a401 100644 (file)
 [LibraryClasses.AARCH64]\r
   ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf\r
   ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexAEMv8Lib/ArmCortexAEMv8Lib.inf\r
+  ArmGenericTimerCounterLib|ArmPkg/Library/ArmGenericTimerPhyCounterLib/ArmGenericTimerPhyCounterLib.inf\r
 \r
 [LibraryClasses.common.SEC]\r
   ArmPlatformSecLib|ArmPlatformPkg/Library/ArmPlatformSecLibNull/ArmPlatformLibNullSec.inf\r
index 28a18eda3a500a82744fcfd2196ba7aef41d0c53..75dd11ca614926f9dde1c2f4f059fe7e0d085b08 100644 (file)
@@ -62,6 +62,7 @@
   DmaLib|ArmPkg/Library/ArmDmaLib/ArmDmaLib.inf\r
   ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicLib.inf\r
   ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf\r
+  ArmGenericTimerCounterLib|ArmPkg/Library/ArmGenericTimerPhyCounterLib/ArmGenericTimerPhyCounterLib.inf\r
 \r
   # RealView Emulation Board Specific Libraries\r
   EfiResetSystemLib|ArmPlatformPkg/ArmRealViewEbPkg/Library/ResetSystemLib/ResetSystemLib.inf\r
index 424c1311c55d117911176a70f8af7bb007685df1..8b5bcdf89edc84f4076169b883e775799835c24d 100644 (file)
@@ -69,6 +69,7 @@
   ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicLib.inf\r
   ArmPlatformStackLib|ArmPlatformPkg/Library/ArmPlatformStackLib/ArmPlatformStackLib.inf\r
   ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf\r
+  ArmGenericTimerCounterLib|ArmPkg/Library/ArmGenericTimerPhyCounterLib/ArmGenericTimerPhyCounterLib.inf\r
 \r
   # Versatile Express Specific Libraries\r
   ArmPlatformSysConfigLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSysConfigLib/ArmVExpressSysConfigLib.inf\r