]> git.proxmox.com Git - mirror_edk2.git/blame - ArmPkg/Library/ArmGenericTimerVirtCounterLib/ArmGenericTimerVirtCounterLib.c
ArmPkg/TimerDxe: remove workaround for KVM timer handling
[mirror_edk2.git] / ArmPkg / Library / ArmGenericTimerVirtCounterLib / ArmGenericTimerVirtCounterLib.c
CommitLineData
bcf37cf6
AB
1/** @file\r
2\r
3 Copyright (c) 2011 - 2014, ARM Ltd. All rights reserved.<BR>\r
4 Copyright (c) 2014, Linaro Ltd. All rights reserved.<BR>\r
5\r
6 This program and the accompanying materials\r
7 are licensed and made available under the terms and conditions of the BSD License\r
8 which accompanies this distribution. The full text of the license may be found at\r
9 http://opensource.org/licenses/bsd-license.php\r
10\r
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
13\r
14**/\r
15\r
16#include <Library/ArmGenericTimerCounterLib.h>\r
734bd6cc 17#include <Library/ArmLib.h>\r
bcf37cf6
AB
18\r
19VOID\r
20EFIAPI\r
21ArmGenericTimerEnableTimer (\r
22 VOID\r
23 )\r
24{\r
25 UINTN TimerCtrlReg;\r
26\r
734bd6cc 27 TimerCtrlReg = ArmReadCntvCtl ();\r
bcf37cf6 28 TimerCtrlReg |= ARM_ARCH_TIMER_ENABLE;\r
734bd6cc 29 ArmWriteCntvCtl (TimerCtrlReg);\r
bcf37cf6
AB
30}\r
31\r
32VOID\r
33EFIAPI\r
34ArmGenericTimerDisableTimer (\r
35 VOID\r
36 )\r
37{\r
38 UINTN TimerCtrlReg;\r
39\r
734bd6cc 40 TimerCtrlReg = ArmReadCntvCtl ();\r
bcf37cf6 41 TimerCtrlReg &= ~ARM_ARCH_TIMER_ENABLE;\r
734bd6cc 42 ArmWriteCntvCtl (TimerCtrlReg);\r
bcf37cf6
AB
43}\r
44\r
45VOID\r
46EFIAPI\r
47ArmGenericTimerSetTimerFreq (\r
48 IN UINTN FreqInHz\r
49 )\r
50{\r
734bd6cc 51 ArmWriteCntFrq (FreqInHz);\r
bcf37cf6
AB
52}\r
53\r
54UINTN\r
55EFIAPI\r
56ArmGenericTimerGetTimerFreq (\r
57 VOID\r
58 )\r
59{\r
734bd6cc 60 return ArmReadCntFrq ();\r
bcf37cf6
AB
61}\r
62\r
63UINTN\r
64EFIAPI\r
65ArmGenericTimerGetTimerVal (\r
66 VOID\r
67 )\r
68{\r
734bd6cc 69 return ArmReadCntvTval ();\r
bcf37cf6
AB
70}\r
71\r
72\r
73VOID\r
74EFIAPI\r
75ArmGenericTimerSetTimerVal (\r
76 IN UINTN Value\r
77 )\r
78{\r
734bd6cc 79 ArmWriteCntvTval (Value);\r
bcf37cf6
AB
80}\r
81\r
82UINT64\r
83EFIAPI\r
84ArmGenericTimerGetSystemCount (\r
85 VOID\r
86 )\r
87{\r
734bd6cc 88 return ArmReadCntvCt ();\r
bcf37cf6
AB
89}\r
90\r
91UINTN\r
92EFIAPI\r
93ArmGenericTimerGetTimerCtrlReg (\r
94 VOID\r
95 )\r
96{\r
734bd6cc 97 return ArmReadCntvCtl ();\r
bcf37cf6
AB
98}\r
99\r
100VOID\r
101EFIAPI\r
102ArmGenericTimerSetTimerCtrlReg (\r
103 UINTN Value\r
104 )\r
105{\r
734bd6cc 106 ArmWriteCntvCtl (Value);\r
bcf37cf6
AB
107}\r
108\r
109UINT64\r
110EFIAPI\r
111ArmGenericTimerGetCompareVal (\r
112 VOID\r
113 )\r
114{\r
734bd6cc 115 return ArmReadCntvCval ();\r
bcf37cf6
AB
116}\r
117\r
118VOID\r
119EFIAPI\r
120ArmGenericTimerSetCompareVal (\r
121 IN UINT64 Value\r
122 )\r
123{\r
734bd6cc 124 ArmWriteCntvCval (Value);\r
bcf37cf6 125}\r