xref: /rk3399_ARM-atf/include/lib/cpus/aarch64/cpuamu.h (revision a2e702a2f3ffb9c90263285d333a2107cfb43fc4)
1*a2e702a2SDimitris Papastamos /*
2*a2e702a2SDimitris Papastamos  * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
3*a2e702a2SDimitris Papastamos  *
4*a2e702a2SDimitris Papastamos  * SPDX-License-Identifier: BSD-3-Clause
5*a2e702a2SDimitris Papastamos  */
6*a2e702a2SDimitris Papastamos 
7*a2e702a2SDimitris Papastamos #ifndef __CPUAMU_H__
8*a2e702a2SDimitris Papastamos #define __CPUAMU_H__
9*a2e702a2SDimitris Papastamos 
10*a2e702a2SDimitris Papastamos /*******************************************************************************
11*a2e702a2SDimitris Papastamos  * CPU Activity Monitor Unit register specific definitions.
12*a2e702a2SDimitris Papastamos  ******************************************************************************/
13*a2e702a2SDimitris Papastamos #define CPUAMCNTENCLR_EL0	S3_3_C15_C9_7
14*a2e702a2SDimitris Papastamos #define CPUAMCNTENSET_EL0	S3_3_C15_C9_6
15*a2e702a2SDimitris Papastamos #define CPUAMCFGR_EL0		S3_3_C15_C10_6
16*a2e702a2SDimitris Papastamos #define CPUAMUSERENR_EL0	S3_3_C15_C10_7
17*a2e702a2SDimitris Papastamos 
18*a2e702a2SDimitris Papastamos /* Activity Monitor Event Counter Registers */
19*a2e702a2SDimitris Papastamos #define CPUAMEVCNTR0_EL0	S3_3_C15_C9_0
20*a2e702a2SDimitris Papastamos #define CPUAMEVCNTR1_EL0	S3_3_C15_C9_1
21*a2e702a2SDimitris Papastamos #define CPUAMEVCNTR2_EL0	S3_3_C15_C9_2
22*a2e702a2SDimitris Papastamos #define CPUAMEVCNTR3_EL0	S3_3_C15_C9_3
23*a2e702a2SDimitris Papastamos #define CPUAMEVCNTR4_EL0	S3_3_C15_C9_4
24*a2e702a2SDimitris Papastamos 
25*a2e702a2SDimitris Papastamos /* Activity Monitor Event Type Registers */
26*a2e702a2SDimitris Papastamos #define CPUAMEVTYPER0_EL0	S3_3_C15_C10_0
27*a2e702a2SDimitris Papastamos #define CPUAMEVTYPER1_EL0	S3_3_C15_C10_1
28*a2e702a2SDimitris Papastamos #define CPUAMEVTYPER2_EL0	S3_3_C15_C10_2
29*a2e702a2SDimitris Papastamos #define CPUAMEVTYPER3_EL0	S3_3_C15_C10_3
30*a2e702a2SDimitris Papastamos #define CPUAMEVTYPER4_EL0	S3_3_C15_C10_4
31*a2e702a2SDimitris Papastamos 
32*a2e702a2SDimitris Papastamos #ifndef __ASSEMBLY__
33*a2e702a2SDimitris Papastamos #include <stdint.h>
34*a2e702a2SDimitris Papastamos 
35*a2e702a2SDimitris Papastamos uint64_t cpuamu_cnt_read(int idx);
36*a2e702a2SDimitris Papastamos void cpuamu_cnt_write(int idx, uint64_t val);
37*a2e702a2SDimitris Papastamos unsigned int cpuamu_read_cpuamcntenset_el0(void);
38*a2e702a2SDimitris Papastamos unsigned int cpuamu_read_cpuamcntenclr_el0(void);
39*a2e702a2SDimitris Papastamos void cpuamu_write_cpuamcntenset_el0(unsigned int mask);
40*a2e702a2SDimitris Papastamos void cpuamu_write_cpuamcntenclr_el0(unsigned int mask);
41*a2e702a2SDimitris Papastamos #endif /* __ASSEMBLY__ */
42*a2e702a2SDimitris Papastamos 
43*a2e702a2SDimitris Papastamos #endif /* __CPUAMU_H__ */
44