]>
Commit | Line | Data |
---|---|---|
25402f5d HL |
1 | #------------------------------------------------------------------------------\r |
2 | #\r | |
3 | # Copyright (c) 2011 - 2013, ARM Limited. All rights reserved.\r | |
0efaa42f | 4 | # Copyright (c) 2016, Linaro Limited. All rights reserved.\r |
25402f5d | 5 | #\r |
4059386c | 6 | # SPDX-License-Identifier: BSD-2-Clause-Patent\r |
25402f5d HL |
7 | #\r |
8 | #------------------------------------------------------------------------------\r | |
9 | \r | |
0efaa42f AB |
10 | #include <AsmMacroIoLibV8.h>\r |
11 | \r | |
12 | ASM_FUNC(ArmReadCntFrq)\r | |
25402f5d HL |
13 | mrs x0, cntfrq_el0 // Read CNTFRQ\r |
14 | ret\r | |
15 | \r | |
16 | \r | |
17 | # NOTE - Can only write while at highest implemented EL level (EL3 on model). Else ReadOnly (EL2, EL1, EL0)\r | |
0efaa42f | 18 | ASM_FUNC(ArmWriteCntFrq)\r |
25402f5d HL |
19 | msr cntfrq_el0, x0 // Write to CNTFRQ\r |
20 | ret\r | |
21 | \r | |
22 | \r | |
0efaa42f | 23 | ASM_FUNC(ArmReadCntPct)\r |
25402f5d HL |
24 | mrs x0, cntpct_el0 // Read CNTPCT (Physical counter register)\r |
25 | ret\r | |
26 | \r | |
27 | \r | |
0efaa42f | 28 | ASM_FUNC(ArmReadCntkCtl)\r |
25402f5d HL |
29 | mrs x0, cntkctl_el1 // Read CNTK_CTL (Timer PL1 Control Register)\r |
30 | ret\r | |
31 | \r | |
32 | \r | |
0efaa42f | 33 | ASM_FUNC(ArmWriteCntkCtl)\r |
c37e542b | 34 | msr cntkctl_el1, x0 // Write to CNTK_CTL (Timer PL1 Control Register)\r |
25402f5d HL |
35 | ret\r |
36 | \r | |
37 | \r | |
0efaa42f | 38 | ASM_FUNC(ArmReadCntpTval)\r |
25402f5d HL |
39 | mrs x0, cntp_tval_el0 // Read CNTP_TVAL (PL1 physical timer value register)\r |
40 | ret\r | |
41 | \r | |
42 | \r | |
0efaa42f | 43 | ASM_FUNC(ArmWriteCntpTval)\r |
25402f5d HL |
44 | msr cntp_tval_el0, x0 // Write to CNTP_TVAL (PL1 physical timer value register)\r |
45 | ret\r | |
46 | \r | |
47 | \r | |
0efaa42f | 48 | ASM_FUNC(ArmReadCntpCtl)\r |
25402f5d HL |
49 | mrs x0, cntp_ctl_el0 // Read CNTP_CTL (PL1 Physical Timer Control Register)\r |
50 | ret\r | |
51 | \r | |
52 | \r | |
0efaa42f | 53 | ASM_FUNC(ArmWriteCntpCtl)\r |
25402f5d HL |
54 | msr cntp_ctl_el0, x0 // Write to CNTP_CTL (PL1 Physical Timer Control Register)\r |
55 | ret\r | |
56 | \r | |
57 | \r | |
0efaa42f | 58 | ASM_FUNC(ArmReadCntvTval)\r |
25402f5d HL |
59 | mrs x0, cntv_tval_el0 // Read CNTV_TVAL (Virtual Timer Value register)\r |
60 | ret\r | |
61 | \r | |
62 | \r | |
0efaa42f | 63 | ASM_FUNC(ArmWriteCntvTval)\r |
25402f5d HL |
64 | msr cntv_tval_el0, x0 // Write to CNTV_TVAL (Virtual Timer Value register)\r |
65 | ret\r | |
66 | \r | |
67 | \r | |
0efaa42f | 68 | ASM_FUNC(ArmReadCntvCtl)\r |
25402f5d HL |
69 | mrs x0, cntv_ctl_el0 // Read CNTV_CTL (Virtual Timer Control Register)\r |
70 | ret\r | |
71 | \r | |
72 | \r | |
0efaa42f | 73 | ASM_FUNC(ArmWriteCntvCtl)\r |
25402f5d HL |
74 | msr cntv_ctl_el0, x0 // Write to CNTV_CTL (Virtual Timer Control Register)\r |
75 | ret\r | |
76 | \r | |
77 | \r | |
0efaa42f | 78 | ASM_FUNC(ArmReadCntvCt)\r |
25402f5d HL |
79 | mrs x0, cntvct_el0 // Read CNTVCT (Virtual Count Register)\r |
80 | ret\r | |
81 | \r | |
82 | \r | |
0efaa42f | 83 | ASM_FUNC(ArmReadCntpCval)\r |
25402f5d HL |
84 | mrs x0, cntp_cval_el0 // Read CNTP_CTVAL (Physical Timer Compare Value Register)\r |
85 | ret\r | |
86 | \r | |
87 | \r | |
0efaa42f | 88 | ASM_FUNC(ArmWriteCntpCval)\r |
25402f5d HL |
89 | msr cntp_cval_el0, x0 // Write to CNTP_CTVAL (Physical Timer Compare Value Register)\r |
90 | ret\r | |
91 | \r | |
92 | \r | |
0efaa42f | 93 | ASM_FUNC(ArmReadCntvCval)\r |
25402f5d HL |
94 | mrs x0, cntv_cval_el0 // Read CNTV_CTVAL (Virtual Timer Compare Value Register)\r |
95 | ret\r | |
96 | \r | |
97 | \r | |
0efaa42f | 98 | ASM_FUNC(ArmWriteCntvCval)\r |
25402f5d HL |
99 | msr cntv_cval_el0, x0 // write to CNTV_CTVAL (Virtual Timer Compare Value Register)\r |
100 | ret\r | |
101 | \r | |
102 | \r | |
0efaa42f | 103 | ASM_FUNC(ArmReadCntvOff)\r |
25402f5d HL |
104 | mrs x0, cntvoff_el2 // Read CNTVOFF (virtual Offset register)\r |
105 | ret\r | |
106 | \r | |
107 | \r | |
0efaa42f | 108 | ASM_FUNC(ArmWriteCntvOff)\r |
25402f5d HL |
109 | msr cntvoff_el2, x0 // Write to CNTVOFF (Virtual Offset register)\r |
110 | ret\r | |
111 | \r | |
112 | \r | |
113 | ASM_FUNCTION_REMOVE_IF_UNREFERENCED\r |