M7350/kernel/include/soc/qcom/perf_event_kryo.h
2024-09-09 08:57:42 +00:00

59 lines
1.9 KiB
C

/*
* Copyright (c) 2015 The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef __PERF_EVENT_KRYO_H
#define __PERF_EVENT_KRYO_H
#define pmactlr_el0 "S3_5_c11_c0_2"
#define pmresr0l_el0 "S3_5_c11_c3_0"
#define pmresr0h_el0 "S3_5_c11_c3_1"
#define pmresr1l_el0 "S3_5_c11_c3_2"
#define pmresr1h_el0 "S3_5_c11_c3_3"
#define pmresr2l_el0 "S3_5_c11_c3_4"
#define pmresr2h_el0 "S3_5_c11_c3_5"
#define pmxevcntcr_el0 "S3_5_c11_c0_3"
#define RESR_L 0
#define RESR_H 1
#define RESR_ENABLE 0x80000000
#define ARMV8_PMCR_P 0x00000002 /* Reset counters */
#define ARMV8_PMCR_C 0x00000004 /* Reset cycle counter */
#define PMACTLR_UEN 0x00000001
#define PMUSERENR_UEN 0x00000001
/*
event encoding: NRCCG
n = prefix (1 for Kryo CPU)
r = register
cc = code
g = group
*/
#define KRYO_EVT_PREFIX 1
#define KRYO_EVT_MASK 0x000FFFFF
#define KRYO_EVT_PREFIX_MASK 0x000F0000
#define KRYO_EVT_REG_MASK 0x0000F000
#define KRYO_EVT_CODE_MASK 0x00000FF0
#define KRYO_EVT_GROUP_MASK 0x0000000F
#define KRYO_EVT_PREFIX_SHIFT 16
#define KRYO_EVT_REG_SHIFT 12
#define KRYO_EVT_CODE_SHIFT 4
#define KRYO_EVT_GROUP_SHIFT 0
#define KRYO_MODE_EXCL_MASK 0xC0000000
#define KRYO_MAX_L1_REG 2
#define KRYO_MAX_GROUP 7
#endif