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