llcc_perfmon.h 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Copyright (c) 2019-2021, The Linux Foundation. All rights reserved.
  4. * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
  5. */
  6. #ifndef _SOC_QCOM_LLCC_PERFMON_H_
  7. #define _SOC_QCOM_LLCC_PERFMON_H_
  8. #define LLCC_VER4 (41)
  9. #define LLCC_VER2 (21)
  10. #define VER_CHK(v) (v >= LLCC_VER2) //check LLCC version 2
  11. #define VER_CHK4(v) (v >= LLCC_VER4) //check LLCC version 4
  12. /* COMMON */
  13. #define LLCC_COMMON_HW_INFO(v) (VER_CHK(v) ? 0x34000 : 0x30000)
  14. #define LLCC_COMMON_STATUS0(v) (VER_CHK(v) ? 0x3400C : 0x3000C)
  15. /* FEAC */
  16. #define FEAC_PROF_FILTER_0_CFG1(v) (VER_CHK(v) ? 0x43004 : 0x037004)
  17. #define FEAC_PROF_FILTER_0_CFG2(v) (VER_CHK(v) ? 0x43008 : 0x037008)
  18. #define FEAC_PROF_FILTER_0_CFG3(v) (VER_CHK(v) ? 0x4300C : 0x03700C)
  19. #define FEAC_PROF_FILTER_0_CFG5(v) (VER_CHK(v) ? 0x43014 : 0x037014)
  20. #define FEAC_PROF_FILTER_0_CFG6(v) (VER_CHK(v) ? 0x43018 : 0x037018)
  21. #define FEAC_PROF_FILTER_0_CFG7(v) (VER_CHK(v) ? 0x4301C : 0x03701C)
  22. #define FEAC_PROF_FILTER_1_CFG1(v) (VER_CHK(v) ? 0x43034 : 0x037034)
  23. #define FEAC_PROF_FILTER_1_CFG2(v) (VER_CHK(v) ? 0x43038 : 0x037038)
  24. #define FEAC_PROF_FILTER_1_CFG3(v) (VER_CHK(v) ? 0x4303C : 0x03703C)
  25. #define FEAC_PROF_FILTER_1_CFG5(v) (VER_CHK(v) ? 0x43044 : 0x037044)
  26. #define FEAC_PROF_FILTER_1_CFG6(v) (VER_CHK(v) ? 0x43048 : 0x037048)
  27. #define FEAC_PROF_FILTER_1_CFG7(v) (VER_CHK(v) ? 0x4304C : 0x03704C)
  28. #define FEAC_PROF_EVENT_n_CFG(v, n) ((VER_CHK(v) ? 0x43060 : 0x037060) + 4 * (n))
  29. #define FEAC_PROF_CFG(v) (VER_CHK(v) ? 0x430A0 : 0x0370A0)
  30. #define FEAC_PROF_CFG(v) (VER_CHK(v) ? 0x430A0 : 0x0370A0)
  31. #define FEAC_PROF_CFG1(v) (VER_CHK(v) ? 0x430A4 : 0x0370A4)
  32. /* FERC */
  33. #define FERC_PROF_FILTER_0_CFG0(v) (VER_CHK(v) ? 0x49000 : 0x03B000)
  34. #define FERC_PROF_FILTER_1_CFG0(v) (VER_CHK(v) ? 0x49010 : 0x03B010)
  35. #define FERC_PROF_EVENT_n_CFG(v, n) ((VER_CHK(v) ? 0x49020 : 0x03B020) + 4 * (n))
  36. #define FERC_PROF_CFG(v) (VER_CHK(v) ? 0x49060 : 0x03B060)
  37. /* FEWC */
  38. #define FEWC_PROF_FILTER_0_CFG0(v) (VER_CHK(v) ? 0x39000 : 0x033000)
  39. #define FEWC_PROF_FILTER_1_CFG0(v) (VER_CHK(v) ? 0x39010 : 0x033010)
  40. #define FEWC_PROF_EVENT_n_CFG(v, n) ((VER_CHK(v) ? 0x39020 : 0x033020) + 4 * (n))
  41. /* BEAC */
  42. #define BEAC0_PROF_FILTER_0_CFG3(v) (VER_CHK(v) ? 0x6100C : 0x04900C)
  43. #define BEAC0_PROF_FILTER_0_CFG4(v) (VER_CHK(v) ? 0x61010 : 0x049010)
  44. #define BEAC0_PROF_FILTER_0_CFG5(v) (VER_CHK(v) ? 0x61014 : 0x049014)
  45. #define BEAC0_PROF_FILTER_0_CFG2(v) (VER_CHK(v) ? 0x61008 : 0x049008)
  46. #define BEAC0_PROF_FILTER_1_CFG2(v) (VER_CHK(v) ? 0x61028 : 0x049028)
  47. #define BEAC0_PROF_FILTER_1_CFG3(v) (VER_CHK(v) ? 0x6102C : 0x04902C)
  48. #define BEAC0_PROF_FILTER_1_CFG4(v) (VER_CHK(v) ? 0x61030 : 0x049030)
  49. #define BEAC0_PROF_FILTER_1_CFG5(v) (VER_CHK(v) ? 0x61034 : 0x049034)
  50. #define BEAC0_PROF_EVENT_n_CFG(v, n) ((VER_CHK(v) ? 0x61040 : 0x049040) + 4 * (n))
  51. #define BEAC0_PROF_CFG(v) (VER_CHK(v) ? 0x61080 : 0x049080)
  52. #define BEAC0_PROF_CFG0(v) (VER_CHK(v) ? 0x61088 : 0x049088)
  53. #define BEAC0_PROF_CFG1(v) (VER_CHK(v) ? 0x6108C : 0x04908C)
  54. #define BEAC_INST_OFF (0x4000)
  55. /* BERC */
  56. #define BERC_PROF_FILTER_0_CFG0(v) (VER_CHK(v) ? 0x3D000 : 0x039000)
  57. #define BERC_PROF_FILTER_1_CFG0(v) (VER_CHK(v) ? 0x3D010 : 0x039010)
  58. #define BERC_PROF_EVENT_n_CFG(v, n) ((VER_CHK(v) ? 0x3D020 : 0x039020) + 4 * (n))
  59. #define BERC_PROF_CFG(v) (VER_CHK(v) ? 0x3D060 : 0x039060)
  60. /* TRP */
  61. #define TRP_PROF_FILTER_0_CFG1 (0x024004)
  62. #define TRP_PROF_FILTER_0_CFG2 (0x024008)
  63. #define TRP_PROF_FILTER_1_CFG1 (0x024014)
  64. #define TRP_PROF_FILTER_1_CFG2 (0x024018)
  65. #define TRP_PROF_EVENT_n_CFG(n) (0x024020 + 4 * (n))
  66. #define TRP_SCID_n_STATUS(n) (0x000004 + 0x1000 * (n))
  67. /* DRP */
  68. #define DRP_PROF_EVENT_n_CFG(v, n) ((VER_CHK(v) ? 0x51010 : 0x044010) + 4 * (n))
  69. #define DRP_PROF_CFG(v) (VER_CHK(v) ? 0x51050 : 0x044050)
  70. /* PMGR */
  71. #define PMGR_PROF_EVENT_n_CFG(v, n) ((VER_CHK(v) ? 0x4D000 : 0x03F000) + 4 * (n))
  72. #define PERFMON_COUNTER_n_CONFIG(v, n) ((VER_CHK(v) ? 0x36020 : 0x031020) + 4 * (n))
  73. #define PERFMON_NUM_CNTRS_DUMP_CFG(v) (VER_CHK(v) ? 0x360EC : 0x0310EC)
  74. #define PERFMON_MODE(v) (VER_CHK(v) ? 0x3600C : 0x03100C)
  75. #define PERFMON_DUMP(v) (VER_CHK4(v) ? 0x37000 : VER_CHK(v) ? 0x36010 : 0x031010)
  76. #define LLCC_COUNTER_n_VALUE(v, n) ((VER_CHK4(v) ? 0x37008 : VER_CHK(v) ? 0x36060 : 0x31060)\
  77. + 4 * (n))
  78. #define EVENT_NUM_MAX (128)
  79. #define SCID_MAX (32)
  80. /* Perfmon */
  81. #define CLEAR_ON_ENABLE BIT(31)
  82. #define CLEAR_ON_DUMP BIT(30)
  83. #define FREEZE_ON_SATURATE BIT(29)
  84. #define CHAINING_EN BIT(28)
  85. #define COUNT_CLOCK_EVENT BIT(24)
  86. #define EVENT_SELECT_SHIFT (16)
  87. #define PERFMON_EVENT_SELECT_MASK GENMASK(EVENT_SELECT_SHIFT + 4, EVENT_SELECT_SHIFT)
  88. #define PORT_SELECT_SHIFT (0)
  89. #define PERFMON_PORT_SELECT_MASK GENMASK(PORT_SELECT_SHIFT + 3, PORT_SELECT_SHIFT)
  90. #define MANUAL_MODE (0)
  91. #define TIMED_MODE (1)
  92. #define TRIGGER_MODE (2)
  93. #define DUMP_SEL_SHIFT (13)
  94. #define DUMP_SEL BIT(DUMP_SEL_SHIFT)
  95. #define MONITOR_EN_SHIFT (15)
  96. #define MONITOR_EN BIT(MONITOR_EN_SHIFT)
  97. #define PERFMON_MODE_DUMP_SEL_MASK GENMASK(DUMP_SEL_SHIFT + 0, DUMP_SEL_SHIFT)
  98. #define PERFMON_MODE_MONITOR_EN_MASK GENMASK(MONITOR_EN_SHIFT + 0, MONITOR_EN_SHIFT)
  99. #define MONITOR_MODE_SHIFT (0)
  100. #define PERFMON_MODE_MONITOR_MODE_MASK GENMASK(MONITOR_MODE_SHIFT + 0, MONITOR_MODE_SHIFT)
  101. #define MONITOR_DUMP BIT(0)
  102. #define DUMP_NUM_COUNTERS_SHIFT (0)
  103. #define DUMP_NUM_COUNTERS_MASK GENMASK(DUMP_NUM_COUNTERS_SHIFT + 3,\
  104. DUMP_NUM_COUNTERS_SHIFT)
  105. /* COMMON */
  106. #define BYTE_SCALING (1024)
  107. #define BEAT_SCALING (32)
  108. #define LB_CNT_SHIFT (28)
  109. #define LB_CNT_MASK GENMASK(LB_CNT_SHIFT + 3, LB_CNT_SHIFT)
  110. #define NUM_MC_SHIFT (10)
  111. #define NUM_MC_MASK GENMASK(NUM_MC_SHIFT + 1, NUM_MC_SHIFT)
  112. #define BYTE_SCALING_SHIFT (16)
  113. #define PROF_CFG_BYTE_SCALING_MASK GENMASK(BYTE_SCALING_SHIFT + 11, BYTE_SCALING_SHIFT)
  114. #define BEAT_SCALING_SHIFT (8)
  115. #define PROF_CFG_BEAT_SCALING_MASK GENMASK(BEAT_SCALING_SHIFT + 7, BEAT_SCALING_SHIFT)
  116. #define WR_BEAT_FILTER_SEL_SHIFT (6)
  117. #define WR_BEAT_FILTER_SEL_MASK GENMASK(WR_BEAT_FILTER_SEL_SHIFT + 0, \
  118. WR_BEAT_FILTER_SEL_SHIFT)
  119. #define WR_BEAT_FILTER_EN_SHIFT (5)
  120. #define WR_BEAT_FILTER_EN BIT(WR_BEAT_FILTER_EN_SHIFT)
  121. #define WR_BEAT_FILTER_EN_MASK GENMASK(WR_BEAT_FILTER_EN_SHIFT + 0, \
  122. WR_BEAT_FILTER_EN_SHIFT)
  123. #define RD_BEAT_FILTER_SEL_SHIFT (4)
  124. #define RD_BEAT_FILTER_SEL_MASK GENMASK(RD_BEAT_FILTER_SEL_SHIFT + 0, \
  125. RD_BEAT_FILTER_SEL_SHIFT)
  126. #define RD_BEAT_FILTER_EN_SHIFT (3)
  127. #define RD_BEAT_FILTER_EN BIT(RD_BEAT_FILTER_EN_SHIFT)
  128. #define RD_BEAT_FILTER_EN_MASK GENMASK(RD_BEAT_FILTER_EN_SHIFT + 0, \
  129. RD_BEAT_FILTER_EN_SHIFT)
  130. #define MC_PROFTAG_SHIFT (1)
  131. #define MC_PROFTAG_MASK GENMASK(MC_PROFTAG_SHIFT + 1, MC_PROFTAG_SHIFT)
  132. #define BEAT_SCALING_0_SHIFT_ (8)
  133. #define PROF_CFG_BEAT_SCALING_0_MASK GENMASK(BEAT_SCALING_0_SHIFT + 7, BEAT_SCALING_0_SHIFT)
  134. #define BEAT_SCALING_1_SHIFT_ (8)
  135. #define PROF_CFG_BEAT_SCALING_1_MASK GENMASK(BEAT_SCALING_1_SHIFT + 7, BEAT_SCALING_1_SHIFT)
  136. #define WR_BEAT_FILTER_SEL_0_SHIFT (6)
  137. #define WR_BEAT_FILTER_SEL_0_MASK GENMASK(WR_BEAT_FILTER_SEL_0_SHIFT + 0, \
  138. WR_BEAT_FILTER_SEL_0_SHIFT)
  139. #define WR_BEAT_FILTER_EN_0_SHIFT (5)
  140. #define WR_BEAT_FILTER_EN_0 BIT(WR_BEAT_FILTER_EN_0_SHIFT)
  141. #define WR_BEAT_FILTER_EN_0_MASK GENMASK(WR_BEAT_FILTER_EN_0_SHIFT + 0, \
  142. WR_BEAT_FILTER_EN_0_SHIFT)
  143. #define RD_BEAT_FILTER_SEL_0_SHIFT (4)
  144. #define RD_BEAT_FILTER_SEL_0_MASK GENMASK(WR_BEAT_FILTER_SEL_0_SHIFT + 0, \
  145. WR_BEAT_FILTER_SEL_0_SHIFT)
  146. #define RD_BEAT_FILTER_EN_0_SHIFT (3)
  147. #define RD_BEAT_FILTER_EN_0 BIT(RD_BEAT_FILTER_EN_0_SHIFT)
  148. #define RD_BEAT_FILTER_EN_0_MASK GENMASK(WR_BEAT_FILTER_EN_0_SHIFT + 0, \
  149. WR_BEAT_FILTER_EN_0_SHIFT)
  150. #define WR_BEAT_FILTER_SEL_1_SHIFT (6)
  151. #define WR_BEAT_FILTER_SEL_1_MASK GENMASK(WR_BEAT_FILTER_SEL_1_SHIFT + 0, \
  152. WR_BEAT_FILTER_SEL_1_SHIFT)
  153. #define WR_BEAT_FILTER_EN_1_SHIFT (5)
  154. #define WR_BEAT_FILTER_EN_1 BIT(WR_BEAT_FILTER_EN_1_SHIFT)
  155. #define WR_BEAT_FILTER_EN_1_MASK GENMASK(WR_BEAT_FILTER_EN_1_SHIFT + 0, \
  156. WR_BEAT_FILTER_EN_1_SHIFT)
  157. #define RD_BEAT_FILTER_SEL_1_SHIFT (4)
  158. #define RD_BEAT_FILTER_SEL_1_MASK GENMASK(WR_BEAT_FILTER_SEL_1_SHIFT + 0, \
  159. WR_BEAT_FILTER_SEL_1_SHIFT)
  160. #define RD_BEAT_FILTER_EN_1_SHIFT (3)
  161. #define RD_BEAT_FILTER_EN_1 BIT(RD_BEAT_FILTER_EN_1_SHIFT)
  162. #define RD_BEAT_FILTER_EN_1_MASK GENMASK(WR_BEAT_FILTER_EN_1_SHIFT + 0, \
  163. WR_BEAT_FILTER_EN_1_SHIFT)
  164. #define PROF_EN_SHIFT (0)
  165. #define PROF_EN BIT(PROF_EN_SHIFT)
  166. #define PROF_CFG_EN_MASK GENMASK(PROF_EN_SHIFT + 0, PROF_EN_SHIFT)
  167. #define FILTER_EN_SHIFT (31)
  168. #define FILTER_EN BIT(FILTER_EN_SHIFT)
  169. #define FILTER_EN_MASK GENMASK(FILTER_EN_SHIFT + 0, FILTER_EN_SHIFT)
  170. #define FILTER_0 (0)
  171. #define FILTER_0_MASK GENMASK(FILTER_0 + 0, FILTER_0)
  172. #define FILTER_1 (1)
  173. #define FILTER_1_MASK GENMASK(FILTER_1 + 0, FILTER_1)
  174. #define FILTER_SEL_SHIFT (16)
  175. #define FILTER_SEL_MASK GENMASK(FILTER_SEL_SHIFT + 0, FILTER_SEL_SHIFT)
  176. #define EVENT_SEL_SHIFT (0)
  177. #define EVENT_SEL_MASK GENMASK(EVENT_SEL_SHIFT + 5, EVENT_SEL_SHIFT)
  178. #define EVENT_SEL_MASK7 GENMASK(EVENT_SEL_SHIFT + 6, EVENT_SEL_SHIFT)
  179. #define EVENT_SEL_MASK8 GENMASK(EVENT_SEL_SHIFT + 7, EVENT_SEL_SHIFT)
  180. #define MEMTAGOPS_MASK_SHIFT (12)
  181. #define MEMTAGOPS_MASK_MASK GENMASK(MEMTAGOPS_MASK_SHIFT + 2, MEMTAGOPS_MASK_SHIFT)
  182. #define MEMTAGOPS_MATCH_SHIFT (10)
  183. #define MEMTAGOPS_MATCH_MASK GENMASK(MEMTAGOPS_MATCH_SHIFT + 2, MEMTAGOPS_MATCH_SHIFT)
  184. #define DIRTYINFO_MASK_SHIFT (1)
  185. #define DIRTYINFO_MASK_MASK GENMASK(DIRTYINFO_MASK_SHIFT + 1, DIRTYINFO_MASK_SHIFT)
  186. #define DIRTYINFO_MATCH_SHIFT (0)
  187. #define DIRTYINFO_MATCH_MASK GENMASK(DIRTYINFO_MATCH_SHIFT + 1, DIRTYINFO_MATCH_SHIFT)
  188. #define CACHEALLOC_MASK_SHIFT (16)
  189. #define CACHEALLOC_MASK_MASK GENMASK(CACHEALLOC_MASK_SHIFT + 3, CACHEALLOC_MASK_SHIFT)
  190. #define CACHEALLOC_MATCH_SHIFT (12)
  191. #define CACHEALLOC_MATCH_MASK GENMASK(CACHEALLOC_MATCH_SHIFT + 3, CACHEALLOC_MATCH_SHIFT)
  192. #define OPCODE_MASK_SHIFT (28)
  193. #define OPCODE_MASK_MASK GENMASK(OPCODE_MASK_SHIFT + 3, OPCODE_MASK_SHIFT)
  194. #define OPCODE_MATCH_SHIFT (24)
  195. #define OPCODE_MATCH_MASK GENMASK(OPCODE_MATCH_SHIFT + 3, OPCODE_MATCH_SHIFT)
  196. #define MID_MASK_SHIFT (16)
  197. #define MID_MASK_MASK GENMASK(MID_MASK_SHIFT + 15, MID_MASK_SHIFT)
  198. #define MID_MATCH_SHIFT (0)
  199. #define MID_MATCH_MASK GENMASK(MID_MATCH_SHIFT + 15, MID_MATCH_SHIFT)
  200. #define SCID_MASK_SHIFT (16)
  201. #define SCID_MASK_MASK GENMASK(SCID_MASK_SHIFT + 15, SCID_MASK_SHIFT)
  202. #define SCID_MATCH_SHIFT (0)
  203. #define SCID_MATCH_MASK GENMASK(SCID_MATCH_SHIFT + 15, SCID_MATCH_SHIFT)
  204. #define SCID_MULTI_MATCH_SHIFT (0)
  205. #define SCID_MULTI_MATCH_MASK GENMASK(SCID_MULTI_MATCH_SHIFT + 31, SCID_MULTI_MATCH_SHIFT)
  206. #define PROFTAG_MASK_SHIFT (2)
  207. #define PROFTAG_MASK_MASK GENMASK(PROFTAG_MASK_SHIFT + 1, PROFTAG_MASK_SHIFT)
  208. #define PROFTAG_MATCH_SHIFT (0)
  209. #define PROFTAG_MATCH_MASK GENMASK(PROFTAG_MATCH_SHIFT + 1, PROFTAG_MATCH_SHIFT)
  210. /* FEAC */
  211. #define FEAC_SCALING_FILTER_SEL_SHIFT (2)
  212. #define FEAC_SCALING_FILTER_SEL_MASK GENMASK(FEAC_SCALING_FILTER_SEL_SHIFT + 0,\
  213. FEAC_SCALING_FILTER_SEL_SHIFT)
  214. #define FEAC_SCALING_FILTER_EN_SHIFT (1)
  215. #define FEAC_SCALING_FILTER_EN BIT(FEAC_SCALING_FILTER_EN_SHIFT)
  216. #define FEAC_SCALING_FILTER_EN_MASK GENMASK(FEAC_SCALING_FILTER_EN_SHIFT + 0,\
  217. FEAC_SCALING_FILTER_EN_SHIFT)
  218. #define FEAC_WR_BEAT_FILTER_SEL_SHIFT (29)
  219. #define FEAC_WR_BEAT_FILTER_SEL_MASK GENMASK(FEAC_WR_BEAT_FILTER_SEL_SHIFT + 0,\
  220. FEAC_WR_BEAT_FILTER_SEL_SHIFT)
  221. #define FEAC_WR_BEAT_FILTER_EN_SHIFT (28)
  222. #define FEAC_WR_BEAT_FILTER_EN_MASK GENMASK(FEAC_WR_BEAT_FILTER_EN_SHIFT + 0,\
  223. FEAC_WR_BEAT_FILTER_EN_SHIFT)
  224. #define FEAC_WR_BEAT_FILTER_EN BIT(FEAC_WR_BEAT_FILTER_EN_SHIFT)
  225. #define FEAC_WR_BYTE_FILTER_SEL_SHIFT (6)
  226. #define FEAC_WR_BYTE_FILTER_SEL_MASK GENMASK(FEAC_WR_BYTE_FILTER_SEL_SHIFT + 0,\
  227. FEAC_WR_BYTE_FILTER_SEL_SHIFT)
  228. #define FEAC_WR_BYTE_FILTER_EN_SHIFT (5)
  229. #define FEAC_WR_BYTE_FILTER_EN_MASK GENMASK(FEAC_WR_BYTE_FILTER_EN_SHIFT + 0,\
  230. FEAC_WR_BYTE_FILTER_EN_SHIFT)
  231. #define FEAC_WR_BYTE_FILTER_EN BIT(FEAC_WR_BYTE_FILTER_EN_SHIFT)
  232. #define FEAC_RD_BEAT_FILTER_SEL_SHIFT (4)
  233. #define FEAC_RD_BEAT_FILTER_SEL_MASK GENMASK(FEAC_RD_BEAT_FILTER_SEL_SHIFT + 0,\
  234. FEAC_RD_BEAT_FILTER_SEL_SHIFT)
  235. #define FEAC_RD_BEAT_FILTER_EN_SHIFT (3)
  236. #define FEAC_RD_BEAT_FILTER_EN_MASK GENMASK(FEAC_RD_BEAT_FILTER_EN_SHIFT + 0,\
  237. FEAC_RD_BEAT_FILTER_EN_SHIFT)
  238. #define FEAC_RD_BEAT_FILTER_EN BIT(FEAC_RD_BEAT_FILTER_EN_SHIFT)
  239. #define FEAC_RD_BYTE_FILTER_SEL_SHIFT (2)
  240. #define FEAC_RD_BYTE_FILTER_SEL_MASK GENMASK(FEAC_RD_BYTE_FILTER_SEL_SHIFT + 0,\
  241. FEAC_RD_BYTE_FILTER_SEL_SHIFT)
  242. #define FEAC_RD_BYTE_FILTER_EN_SHIFT (1)
  243. #define FEAC_RD_BYTE_FILTER_EN_MASK GENMASK(FEAC_RD_BYTE_FILTER_EN_SHIFT + 0,\
  244. FEAC_RD_BYTE_FILTER_EN_SHIFT)
  245. #define FEAC_RD_BYTE_FILTER_EN BIT(FEAC_RD_BYTE_FILTER_EN_SHIFT)
  246. #define FEAC_ADDR_LOWER_MATCH_SHIFT (0)
  247. #define FEAC_ADDR_LOWER_MATCH_MASK GENMASK(FEAC_ADDR_LOWER_MATCH_SHIFT + 31,\
  248. FEAC_ADDR_LOWER_MATCH_SHIFT)
  249. #define FEAC_ADDR_LOWER_MASK_SHIFT (0)
  250. #define FEAC_ADDR_LOWER_MASK_MASK GENMASK(FEAC_ADDR_LOWER_MASK_SHIFT + 31,\
  251. FEAC_ADDR_LOWER_MASK_SHIFT)
  252. #define FEAC_ADDR_UPPER_MATCH_SHIFT (0)
  253. #define FEAC_ADDR_UPPER_MATCH_MASK GENMASK(FEAC_ADDR_UPPER_MATCH_SHIFT + 4,\
  254. FEAC_ADDR_UPPER_MATCH_SHIFT)
  255. #define FEAC_ADDR_UPPER_MASK_SHIFT (4)
  256. #define FEAC_ADDR_UPPER_MASK_MASK GENMASK(FEAC_ADDR_UPPER_MASK_SHIFT + 4,\
  257. FEAC_ADDR_UPPER_MASK_SHIFT)
  258. /* BEAC */
  259. #define BEAC_PROFTAG_MASK_SHIFT (14)
  260. #define BEAC_PROFTAG_MASK_MASK GENMASK(BEAC_PROFTAG_MASK_SHIFT + 1,\
  261. BEAC_PROFTAG_MASK_SHIFT)
  262. #define BEAC_PROFTAG_MATCH_SHIFT (12)
  263. #define BEAC_PROFTAG_MATCH_MASK GENMASK(BEAC_PROFTAG_MATCH_SHIFT + 1,\
  264. BEAC_PROFTAG_MATCH_SHIFT)
  265. #define BEAC_MC_PROFTAG_SHIFT (1)
  266. #define BEAC_MC_PROFTAG_MASK GENMASK(BEAC_MC_PROFTAG_SHIFT + 1, BEAC_MC_PROFTAG_SHIFT)
  267. #define BEAC_WR_BEAT_FILTER_SEL_SHIFT (6)
  268. #define BEAC_WR_BEAT_FILTER_SEL_MASK GENMASK(BEAC_WR_BEAT_FILTER_SEL_SHIFT + 0,\
  269. BEAC_WR_BEAT_FILTER_SEL_SHIFT)
  270. #define BEAC_WR_BEAT_FILTER_EN_SHIFT (5)
  271. #define BEAC_WR_BEAT_FILTER_EN_MASK GENMASK(BEAC_WR_BEAT_FILTER_EN_SHIFT + 0,\
  272. BEAC_WR_BEAT_FILTER_EN_SHIFT)
  273. #define BEAC_WR_BEAT_FILTER_EN BIT(BEAC_WR_BEAT_FILTER_EN_SHIFT)
  274. #define BEAC_RD_BEAT_FILTER_SEL_SHIFT (4)
  275. #define BEAC_RD_BEAT_FILTER_SEL_MASK GENMASK(BEAC_RD_BEAT_FILTER_SEL_SHIFT + 0,\
  276. BEAC_RD_BEAT_FILTER_SEL_SHIFT)
  277. #define BEAC_RD_BEAT_FILTER_EN_SHIFT (3)
  278. #define BEAC_RD_BEAT_FILTER_EN_MASK GENMASK(BEAC_RD_BEAT_FILTER_EN_SHIFT + 0,\
  279. BEAC_RD_BEAT_FILTER_EN_SHIFT)
  280. #define BEAC_RD_BEAT_FILTER_EN BIT(BEAC_RD_BEAT_FILTER_EN_SHIFT)
  281. #define BEAC_ADDR_LOWER_MATCH_SHIFT (0)
  282. #define BEAC_ADDR_LOWER_MATCH_MASK GENMASK(BEAC_ADDR_LOWER_MATCH_SHIFT + 31,\
  283. BEAC_ADDR_LOWER_MATCH_SHIFT)
  284. #define BEAC_ADDR_LOWER_MASK_SHIFT (0)
  285. #define BEAC_ADDR_LOWER_MASK_MASK GENMASK(BEAC_ADDR_LOWER_MASK_SHIFT + 31,\
  286. BEAC_ADDR_LOWER_MASK_SHIFT)
  287. #define BEAC_ADDR_UPPER_MATCH_SHIFT (0)
  288. #define BEAC_ADDR_UPPER_MATCH_MASK GENMASK(BEAC_ADDR_UPPER_MATCH_SHIFT + 4,\
  289. BEAC_ADDR_UPPER_MATCH_SHIFT)
  290. #define BEAC_ADDR_UPPER_MASK_SHIFT (4)
  291. #define BEAC_ADDR_UPPER_MASK_MASK GENMASK(BEAC_ADDR_UPPER_MASK_SHIFT + 4,\
  292. BEAC_ADDR_UPPER_MASK_SHIFT)
  293. /* TRP */
  294. #define TRP_SCID_MATCH_SHIFT (0)
  295. #define TRP_SCID_MATCH_MASK GENMASK(TRP_SCID_MATCH_SHIFT + 4, TRP_SCID_MATCH_SHIFT)
  296. #define TRP_SCID_MASK_SHIFT (8)
  297. #define TRP_SCID_MASK_MASK GENMASK(TRP_SCID_MASK_SHIFT + 4, TRP_SCID_MASK_SHIFT)
  298. #define TRP_WAY_ID_MATCH_SHIFT (0)
  299. #define TRP_WAY_ID_MATCH_MASK GENMASK(TRP_WAY_ID_MATCH_SHIFT + 4, TRP_WAY_ID_MATCH_SHIFT)
  300. #define TRP_WAY_ID_MASK_SHIFT (8)
  301. #define TRP_WAY_ID_MASK_MASK GENMASK(TRP_WAY_ID_MASK_SHIFT + 4, TRP_WAY_ID_MASK_SHIFT)
  302. #define TRP_PROFTAG_MATCH_SHIFT (24)
  303. #define TRP_PROFTAG_MATCH_MASK GENMASK(TRP_PROFTAG_MATCH_SHIFT + 1,\
  304. TRP_PROFTAG_MATCH_SHIFT)
  305. #define TRP_PROFTAG_MASK_SHIFT (28)
  306. #define TRP_PROFTAG_MASK_MASK GENMASK(TRP_PROFTAG_MASK_SHIFT + 1, TRP_PROFTAG_MASK_SHIFT)
  307. #define TRP_SCID_STATUS_ACTIVE_SHIFT (0)
  308. #define TRP_SCID_STATUS_ACTIVE_MASK GENMASK(TRP_SCID_STATUS_ACTIVE_SHIFT + 0,\
  309. TRP_SCID_STATUS_ACTIVE_SHIFT)
  310. #define TRP_SCID_STATUS_DEACTIVE_SHIFT (1)
  311. #define TRP_SCID_STATUS_CURRENT_CAP_SHIFT (16)
  312. #define TRP_SCID_STATUS_CURRENT_CAP_MASK GENMASK(TRP_SCID_STATUS_CURRENT_CAP_SHIFT + 14,\
  313. TRP_SCID_STATUS_CURRENT_CAP_SHIFT)
  314. #define ADDR_LOWER_MASK (0xFFFFFFFF)
  315. #define ADDR_UPPER_MASK (0xF00000000)
  316. #define ADDR_UPPER_SHIFT (32)
  317. #define MAJOR_VER_MASK (0xFF000000)
  318. #define BRANCH_MASK (0x00FF0000)
  319. #define MINOR_MASK (0x0000FF00)
  320. #define LLCC_VERSION_1 (0x01010200)
  321. #define LLCC_VERSION_2 (0x02000000)
  322. #define LLCC_VERSION_3 (0x03000000)
  323. #define LLCC_VERSION_4 (0x04000000)
  324. #define LLCC_VERSION_5 (0x05000000)
  325. #define MAJOR_REV_NO(v) ((v & MAJOR_VER_MASK) >> 24)
  326. #define BRANCH_NO(v) ((v & BRANCH_MASK) >> 16)
  327. #define MINOR_NO(v) ((v & MINOR_MASK) >> 8)
  328. #define REV_0 (0x0)
  329. #define REV_1 (0x1)
  330. #define REV_2 (0x2)
  331. #define REV_5 (0x5)
  332. #define BANK_OFFSET (0x80000)
  333. #endif /* _SOC_QCOM_LLCC_PERFMON_H_ */