]>
git.proxmox.com Git - mirror_edk2.git/blob - ArmPkg/Library/ArmGenericTimerPhyCounterLib/ArmGenericTimerPhyCounterLib.c
3 Copyright (c) 2011 - 2014, ARM Ltd. All rights reserved.<BR>
4 Copyright (c) 2014, Linaro Ltd. All rights reserved.<BR>
6 This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
16 #include <Library/ArmGenericTimerCounterLib.h>
17 #include <Library/ArmArchTimer.h>
21 ArmGenericTimerEnableTimer (
27 ArmArchTimerReadReg (CntpCtl
, (VOID
*)&TimerCtrlReg
);
28 TimerCtrlReg
|= ARM_ARCH_TIMER_ENABLE
;
29 ArmArchTimerWriteReg (CntpCtl
, (VOID
*)&TimerCtrlReg
);
34 ArmGenericTimerDisableTimer (
40 ArmArchTimerReadReg (CntpCtl
, (VOID
*)&TimerCtrlReg
);
41 TimerCtrlReg
&= ~ARM_ARCH_TIMER_ENABLE
;
42 ArmArchTimerWriteReg (CntpCtl
, (VOID
*)&TimerCtrlReg
);
47 ArmGenericTimerSetTimerFreq (
51 ArmArchTimerWriteReg (CntFrq
, (VOID
*)&FreqInHz
);
56 ArmGenericTimerGetTimerFreq (
60 UINTN ArchTimerFreq
= 0;
61 ArmArchTimerReadReg (CntFrq
, (VOID
*)&ArchTimerFreq
);
67 ArmGenericTimerGetTimerVal (
72 ArmArchTimerReadReg (CntpTval
, (VOID
*)&ArchTimerValue
);
74 return ArchTimerValue
;
80 ArmGenericTimerSetTimerVal (
84 ArmArchTimerWriteReg (CntpTval
, (VOID
*)&Value
);
89 ArmGenericTimerGetSystemCount (
94 ArmArchTimerReadReg (CntPct
, (VOID
*)&SystemCount
);
101 ArmGenericTimerGetTimerCtrlReg (
106 ArmArchTimerReadReg (CntpCtl
, (VOID
*)&Value
);
113 ArmGenericTimerSetTimerCtrlReg (
117 ArmArchTimerWriteReg (CntpCtl
, (VOID
*)&Value
);
122 ArmGenericTimerGetCompareVal (
127 ArmArchTimerReadReg (CntpCval
, (VOID
*)&Value
);
134 ArmGenericTimerSetCompareVal (
138 ArmArchTimerWriteReg (CntpCval
, (VOID
*)&Value
);