]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPkg/Drivers/TimerDxe/TimerDxe.c
ArmPkg: Move TimerDxe and ArmArchTimerLib to new ArmGenericTimerCounterLib
[mirror_edk2.git] / ArmPkg / Drivers / TimerDxe / TimerDxe.c
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