X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=Omap35xxPkg%2FLibrary%2FDebugAgentTimerLib%2FDebugAgentTimerLib.c;fp=Omap35xxPkg%2FLibrary%2FDebugAgentTimerLib%2FDebugAgentTimerLib.c;h=1abdb63c7c86a8d82240b1682b0d0847684204d5;hp=72b860361bd335f8eba86a0b8d30161fb393115d;hb=9e4f210c32dd8ad4484cedbe9a09c5b44e4f2e3c;hpb=2db3d8672c0d8048ade24b822eafceed6aaef3ab diff --git a/Omap35xxPkg/Library/DebugAgentTimerLib/DebugAgentTimerLib.c b/Omap35xxPkg/Library/DebugAgentTimerLib/DebugAgentTimerLib.c index 72b860361b..1abdb63c7c 100755 --- a/Omap35xxPkg/Library/DebugAgentTimerLib/DebugAgentTimerLib.c +++ b/Omap35xxPkg/Library/DebugAgentTimerLib/DebugAgentTimerLib.c @@ -77,19 +77,27 @@ DebugAgentTimerIntialize ( ) { UINT32 TimerBaseAddress; + UINT32 TimerNumber; - - gVector = InterruptVectorForTimer (PcdGet32(PcdOmap35xxDebugAgentTimer)); + TimerNumber = PcdGet32(PcdOmap35xxDebugAgentTimer); + gVector = InterruptVectorForTimer (TimerNumber); // 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; - DisableInterruptSource (); + if ((TimerNumber < 2) || (TimerNumber > 9)) { + // This code assumes one the General Purpose timers is used + // GPT2 - GPT9 + CpuDeadLoop (); + } + // Set source clock for GPT2 - GPT9 to SYS_CLK + MmioOr32 (CM_CLKSEL_PER, 1 << (TimerNumber - 2)); + } @@ -154,5 +162,5 @@ DebugAgentTimerEndOfInterrupt ( ArmDataSyncronizationBarrier (); } - + \ No newline at end of file