]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Omap35xxPkg/Library/DebugAgentTimerLib/DebugAgentTimerLib.c
DebugAgentTimerLib cleanup
[mirror_edk2.git] / Omap35xxPkg / Library / DebugAgentTimerLib / DebugAgentTimerLib.c
index 72b860361bd335f8eba86a0b8d30161fb393115d..1abdb63c7c86a8d82240b1682b0d0847684204d5 100755 (executable)
@@ -77,19 +77,27 @@ DebugAgentTimerIntialize (
   )\r
 {\r
   UINT32      TimerBaseAddress;\r
+  UINT32      TimerNumber;\r
 \r
-\r
-  gVector = InterruptVectorForTimer (PcdGet32(PcdOmap35xxDebugAgentTimer));
+  TimerNumber = PcdGet32(PcdOmap35xxDebugAgentTimer);\r
+  gVector = InterruptVectorForTimer (TimerNumber);
 \r
   // Set up the timer registers
-  TimerBaseAddress = TimerBase (PcdGet32(PcdOmap35xxDebugAgentTimer));
+  TimerBaseAddress = TimerBase (TimerNumber);
   gTISR = TimerBaseAddress + GPTIMER_TISR;
   gTCLR = TimerBaseAddress + GPTIMER_TCLR;
   gTLDR = TimerBaseAddress + GPTIMER_TLDR;
   gTCRR = TimerBaseAddress + GPTIMER_TCRR;
   gTIER = TimerBaseAddress + GPTIMER_TIER;
 \r
-  DisableInterruptSource ();\r
+  if ((TimerNumber < 2) || (TimerNumber > 9)) {\r
+    // This code assumes one the General Purpose timers is used\r
+    // GPT2 - GPT9\r
+    CpuDeadLoop ();\r
+  }\r
+  // Set source clock for GPT2 - GPT9 to SYS_CLK\r
+  MmioOr32 (CM_CLKSEL_PER, 1 << (TimerNumber - 2)); \r
+\r
 }\r
   \r
   \r
@@ -154,5 +162,5 @@ DebugAgentTimerEndOfInterrupt (
   ArmDataSyncronizationBarrier ();\r
 \r
 }\r
-  \r
+\r
   
\ No newline at end of file