a3xx_reg.h 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799
  1. /* Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
  2. *
  3. * This program is free software; you can redistribute it and/or modify
  4. * it under the terms of the GNU General Public License version 2 and
  5. * only version 2 as published by the Free Software Foundation.
  6. *
  7. * This program is distributed in the hope that it will be useful,
  8. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. * GNU General Public License for more details.
  11. *
  12. */
  13. #ifndef _A300_REG_H
  14. #define _A300_REG_H
  15. /* Interrupt bit positions within RBBM_INT_0 */
  16. #define A3XX_INT_RBBM_GPU_IDLE 0
  17. #define A3XX_INT_RBBM_AHB_ERROR 1
  18. #define A3XX_INT_RBBM_REG_TIMEOUT 2
  19. #define A3XX_INT_RBBM_ME_MS_TIMEOUT 3
  20. #define A3XX_INT_RBBM_PFP_MS_TIMEOUT 4
  21. #define A3XX_INT_RBBM_ATB_BUS_OVERFLOW 5
  22. #define A3XX_INT_VFD_ERROR 6
  23. #define A3XX_INT_CP_SW_INT 7
  24. #define A3XX_INT_CP_T0_PACKET_IN_IB 8
  25. #define A3XX_INT_CP_OPCODE_ERROR 9
  26. #define A3XX_INT_CP_RESERVED_BIT_ERROR 10
  27. #define A3XX_INT_CP_HW_FAULT 11
  28. #define A3XX_INT_CP_DMA 12
  29. #define A3XX_INT_CP_IB2_INT 13
  30. #define A3XX_INT_CP_IB1_INT 14
  31. #define A3XX_INT_CP_RB_INT 15
  32. #define A3XX_INT_CP_REG_PROTECT_FAULT 16
  33. #define A3XX_INT_CP_RB_DONE_TS 17
  34. #define A3XX_INT_CP_VS_DONE_TS 18
  35. #define A3XX_INT_CP_PS_DONE_TS 19
  36. #define A3XX_INT_CACHE_FLUSH_TS 20
  37. #define A3XX_INT_CP_AHB_ERROR_HALT 21
  38. #define A3XX_INT_MISC_HANG_DETECT 24
  39. #define A3XX_INT_UCHE_OOB_ACCESS 25
  40. /* Register definitions */
  41. #define A3XX_RBBM_HW_VERSION 0x000
  42. #define A3XX_RBBM_HW_RELEASE 0x001
  43. #define A3XX_RBBM_HW_CONFIGURATION 0x002
  44. #define A3XX_RBBM_CLOCK_CTL 0x010
  45. #define A3XX_RBBM_SP_HYST_CNT 0x012
  46. #define A3XX_RBBM_SW_RESET_CMD 0x018
  47. #define A3XX_RBBM_AHB_CTL0 0x020
  48. #define A3XX_RBBM_AHB_CTL1 0x021
  49. #define A3XX_RBBM_AHB_CMD 0x022
  50. #define A3XX_RBBM_AHB_ERROR_STATUS 0x027
  51. #define A3XX_RBBM_GPR0_CTL 0x02E
  52. /* This the same register as on A2XX, just in a different place */
  53. #define A3XX_RBBM_STATUS 0x030
  54. #define A3XX_RBBM_WAIT_IDLE_CLOCKS_CTL 0x33
  55. #define A3XX_RBBM_INTERFACE_HANG_INT_CTL 0x50
  56. #define A3XX_RBBM_INTERFACE_HANG_MASK_CTL0 0x51
  57. #define A3XX_RBBM_INTERFACE_HANG_MASK_CTL1 0x54
  58. #define A3XX_RBBM_INTERFACE_HANG_MASK_CTL2 0x57
  59. #define A3XX_RBBM_INTERFACE_HANG_MASK_CTL3 0x5A
  60. #define A3XX_RBBM_INT_CLEAR_CMD 0x061
  61. #define A3XX_RBBM_INT_0_MASK 0x063
  62. #define A3XX_RBBM_INT_0_STATUS 0x064
  63. #define A3XX_RBBM_PERFCTR_CTL 0x80
  64. #define A3XX_RBBM_PERFCTR_LOAD_CMD0 0x81
  65. #define A3XX_RBBM_PERFCTR_LOAD_CMD1 0x82
  66. #define A3XX_RBBM_PERFCTR_LOAD_VALUE_LO 0x84
  67. #define A3XX_RBBM_PERFCTR_LOAD_VALUE_HI 0x85
  68. #define A3XX_RBBM_PERFCOUNTER0_SELECT 0x86
  69. #define A3XX_RBBM_PERFCOUNTER1_SELECT 0x87
  70. #define A3XX_RBBM_GPU_BUSY_MASKED 0x88
  71. #define A3XX_RBBM_PERFCTR_CP_0_LO 0x90
  72. #define A3XX_RBBM_PERFCTR_CP_0_HI 0x91
  73. #define A3XX_RBBM_PERFCTR_RBBM_0_LO 0x92
  74. #define A3XX_RBBM_PERFCTR_RBBM_0_HI 0x93
  75. #define A3XX_RBBM_PERFCTR_RBBM_1_LO 0x94
  76. #define A3XX_RBBM_PERFCTR_RBBM_1_HI 0x95
  77. #define A3XX_RBBM_PERFCTR_PC_0_LO 0x96
  78. #define A3XX_RBBM_PERFCTR_PC_0_HI 0x97
  79. #define A3XX_RBBM_PERFCTR_PC_1_LO 0x98
  80. #define A3XX_RBBM_PERFCTR_PC_1_HI 0x99
  81. #define A3XX_RBBM_PERFCTR_PC_2_LO 0x9A
  82. #define A3XX_RBBM_PERFCTR_PC_2_HI 0x9B
  83. #define A3XX_RBBM_PERFCTR_PC_3_LO 0x9C
  84. #define A3XX_RBBM_PERFCTR_PC_3_HI 0x9D
  85. #define A3XX_RBBM_PERFCTR_VFD_0_LO 0x9E
  86. #define A3XX_RBBM_PERFCTR_VFD_0_HI 0x9F
  87. #define A3XX_RBBM_PERFCTR_VFD_1_LO 0xA0
  88. #define A3XX_RBBM_PERFCTR_VFD_1_HI 0xA1
  89. #define A3XX_RBBM_PERFCTR_HLSQ_0_LO 0xA2
  90. #define A3XX_RBBM_PERFCTR_HLSQ_0_HI 0xA3
  91. #define A3XX_RBBM_PERFCTR_HLSQ_1_LO 0xA4
  92. #define A3XX_RBBM_PERFCTR_HLSQ_1_HI 0xA5
  93. #define A3XX_RBBM_PERFCTR_HLSQ_2_LO 0xA6
  94. #define A3XX_RBBM_PERFCTR_HLSQ_2_HI 0xA7
  95. #define A3XX_RBBM_PERFCTR_HLSQ_3_LO 0xA8
  96. #define A3XX_RBBM_PERFCTR_HLSQ_3_HI 0xA9
  97. #define A3XX_RBBM_PERFCTR_HLSQ_4_LO 0xAA
  98. #define A3XX_RBBM_PERFCTR_HLSQ_4_HI 0xAB
  99. #define A3XX_RBBM_PERFCTR_HLSQ_5_LO 0xAC
  100. #define A3XX_RBBM_PERFCTR_HLSQ_5_HI 0xAD
  101. #define A3XX_RBBM_PERFCTR_VPC_0_LO 0xAE
  102. #define A3XX_RBBM_PERFCTR_VPC_0_HI 0xAF
  103. #define A3XX_RBBM_PERFCTR_VPC_1_LO 0xB0
  104. #define A3XX_RBBM_PERFCTR_VPC_1_HI 0xB1
  105. #define A3XX_RBBM_PERFCTR_TSE_0_LO 0xB2
  106. #define A3XX_RBBM_PERFCTR_TSE_0_HI 0xB3
  107. #define A3XX_RBBM_PERFCTR_TSE_1_LO 0xB4
  108. #define A3XX_RBBM_PERFCTR_TSE_1_HI 0xB5
  109. #define A3XX_RBBM_PERFCTR_RAS_0_LO 0xB6
  110. #define A3XX_RBBM_PERFCTR_RAS_0_HI 0xB7
  111. #define A3XX_RBBM_PERFCTR_RAS_1_LO 0xB8
  112. #define A3XX_RBBM_PERFCTR_RAS_1_HI 0xB9
  113. #define A3XX_RBBM_PERFCTR_UCHE_0_LO 0xBA
  114. #define A3XX_RBBM_PERFCTR_UCHE_0_HI 0xBB
  115. #define A3XX_RBBM_PERFCTR_UCHE_1_LO 0xBC
  116. #define A3XX_RBBM_PERFCTR_UCHE_1_HI 0xBD
  117. #define A3XX_RBBM_PERFCTR_UCHE_2_LO 0xBE
  118. #define A3XX_RBBM_PERFCTR_UCHE_2_HI 0xBF
  119. #define A3XX_RBBM_PERFCTR_UCHE_3_LO 0xC0
  120. #define A3XX_RBBM_PERFCTR_UCHE_3_HI 0xC1
  121. #define A3XX_RBBM_PERFCTR_UCHE_4_LO 0xC2
  122. #define A3XX_RBBM_PERFCTR_UCHE_4_HI 0xC3
  123. #define A3XX_RBBM_PERFCTR_UCHE_5_LO 0xC4
  124. #define A3XX_RBBM_PERFCTR_UCHE_5_HI 0xC5
  125. #define A3XX_RBBM_PERFCTR_TP_0_LO 0xC6
  126. #define A3XX_RBBM_PERFCTR_TP_0_HI 0xC7
  127. #define A3XX_RBBM_PERFCTR_TP_1_LO 0xC8
  128. #define A3XX_RBBM_PERFCTR_TP_1_HI 0xC9
  129. #define A3XX_RBBM_PERFCTR_TP_2_LO 0xCA
  130. #define A3XX_RBBM_PERFCTR_TP_2_HI 0xCB
  131. #define A3XX_RBBM_PERFCTR_TP_3_LO 0xCC
  132. #define A3XX_RBBM_PERFCTR_TP_3_HI 0xCD
  133. #define A3XX_RBBM_PERFCTR_TP_4_LO 0xCE
  134. #define A3XX_RBBM_PERFCTR_TP_4_HI 0xCF
  135. #define A3XX_RBBM_PERFCTR_TP_5_LO 0xD0
  136. #define A3XX_RBBM_PERFCTR_TP_5_HI 0xD1
  137. #define A3XX_RBBM_PERFCTR_SP_0_LO 0xD2
  138. #define A3XX_RBBM_PERFCTR_SP_0_HI 0xD3
  139. #define A3XX_RBBM_PERFCTR_SP_1_LO 0xD4
  140. #define A3XX_RBBM_PERFCTR_SP_1_HI 0xD5
  141. #define A3XX_RBBM_PERFCTR_SP_2_LO 0xD6
  142. #define A3XX_RBBM_PERFCTR_SP_2_HI 0xD7
  143. #define A3XX_RBBM_PERFCTR_SP_3_LO 0xD8
  144. #define A3XX_RBBM_PERFCTR_SP_3_HI 0xD9
  145. #define A3XX_RBBM_PERFCTR_SP_4_LO 0xDA
  146. #define A3XX_RBBM_PERFCTR_SP_4_HI 0xDB
  147. #define A3XX_RBBM_PERFCTR_SP_5_LO 0xDC
  148. #define A3XX_RBBM_PERFCTR_SP_5_HI 0xDD
  149. #define A3XX_RBBM_PERFCTR_SP_6_LO 0xDE
  150. #define A3XX_RBBM_PERFCTR_SP_6_HI 0xDF
  151. #define A3XX_RBBM_PERFCTR_SP_7_LO 0xE0
  152. #define A3XX_RBBM_PERFCTR_SP_7_HI 0xE1
  153. #define A3XX_RBBM_PERFCTR_RB_0_LO 0xE2
  154. #define A3XX_RBBM_PERFCTR_RB_0_HI 0xE3
  155. #define A3XX_RBBM_PERFCTR_RB_1_LO 0xE4
  156. #define A3XX_RBBM_PERFCTR_RB_1_HI 0xE5
  157. #define A3XX_RBBM_RBBM_CTL 0x100
  158. #define A3XX_RBBM_PERFCTR_PWR_0_LO 0x0EA
  159. #define A3XX_RBBM_PERFCTR_PWR_0_HI 0x0EB
  160. #define A3XX_RBBM_PERFCTR_PWR_1_LO 0x0EC
  161. #define A3XX_RBBM_PERFCTR_PWR_1_HI 0x0ED
  162. #define A3XX_RBBM_DEBUG_BUS_CTL 0x111
  163. #define A3XX_RBBM_DEBUG_BUS_DATA_STATUS 0x112
  164. #define A3XX_RBBM_DEBUG_BUS_STB_CTL0 0x11B
  165. #define A3XX_RBBM_DEBUG_BUS_STB_CTL1 0x11C
  166. #define A3XX_RBBM_INT_TRACE_BUS_CTL 0x11D
  167. #define A3XX_RBBM_EXT_TRACE_BUS_CTL 0x11E
  168. #define A3XX_RBBM_EXT_TRACE_STOP_CNT 0x11F
  169. #define A3XX_RBBM_EXT_TRACE_START_CNT 0x120
  170. #define A3XX_RBBM_EXT_TRACE_PERIOD_CNT 0x121
  171. #define A3XX_RBBM_EXT_TRACE_CMD 0x122
  172. /* Following two are same as on A2XX, just in a different place */
  173. #define A3XX_CP_PFP_UCODE_ADDR 0x1C9
  174. #define A3XX_CP_PFP_UCODE_DATA 0x1CA
  175. #define A3XX_CP_ROQ_ADDR 0x1CC
  176. #define A3XX_CP_ROQ_DATA 0x1CD
  177. #define A3XX_CP_MERCIU_ADDR 0x1D1
  178. #define A3XX_CP_MERCIU_DATA 0x1D2
  179. #define A3XX_CP_MERCIU_DATA2 0x1D3
  180. #define A3XX_CP_MEQ_ADDR 0x1DA
  181. #define A3XX_CP_MEQ_DATA 0x1DB
  182. #define A3XX_CP_PERFCOUNTER_SELECT 0x445
  183. #define A3XX_CP_WFI_PEND_CTR 0x01F5
  184. #define A3XX_CP_HW_FAULT 0x45C
  185. #define A3XX_CP_AHB_FAULT 0x54D
  186. #define A3XX_CP_PROTECT_CTRL 0x45E
  187. #define A3XX_CP_PROTECT_STATUS 0x45F
  188. #define A3XX_CP_PROTECT_REG_0 0x460
  189. #define A3XX_CP_PROTECT_REG_1 0x461
  190. #define A3XX_CP_PROTECT_REG_2 0x462
  191. #define A3XX_CP_PROTECT_REG_3 0x463
  192. #define A3XX_CP_PROTECT_REG_4 0x464
  193. #define A3XX_CP_PROTECT_REG_5 0x465
  194. #define A3XX_CP_PROTECT_REG_6 0x466
  195. #define A3XX_CP_PROTECT_REG_7 0x467
  196. #define A3XX_CP_PROTECT_REG_8 0x468
  197. #define A3XX_CP_PROTECT_REG_9 0x469
  198. #define A3XX_CP_PROTECT_REG_A 0x46A
  199. #define A3XX_CP_PROTECT_REG_B 0x46B
  200. #define A3XX_CP_PROTECT_REG_C 0x46C
  201. #define A3XX_CP_PROTECT_REG_D 0x46D
  202. #define A3XX_CP_PROTECT_REG_E 0x46E
  203. #define A3XX_CP_PROTECT_REG_F 0x46F
  204. #define A3XX_CP_SCRATCH_REG2 0x57A
  205. #define A3XX_CP_SCRATCH_REG3 0x57B
  206. #define A3XX_VSC_BIN_SIZE 0xC01
  207. #define A3XX_VSC_SIZE_ADDRESS 0xC02
  208. #define A3XX_VSC_PIPE_CONFIG_0 0xC06
  209. #define A3XX_VSC_PIPE_DATA_ADDRESS_0 0xC07
  210. #define A3XX_VSC_PIPE_DATA_LENGTH_0 0xC08
  211. #define A3XX_VSC_PIPE_CONFIG_1 0xC09
  212. #define A3XX_VSC_PIPE_DATA_ADDRESS_1 0xC0A
  213. #define A3XX_VSC_PIPE_DATA_LENGTH_1 0xC0B
  214. #define A3XX_VSC_PIPE_CONFIG_2 0xC0C
  215. #define A3XX_VSC_PIPE_DATA_ADDRESS_2 0xC0D
  216. #define A3XX_VSC_PIPE_DATA_LENGTH_2 0xC0E
  217. #define A3XX_VSC_PIPE_CONFIG_3 0xC0F
  218. #define A3XX_VSC_PIPE_DATA_ADDRESS_3 0xC10
  219. #define A3XX_VSC_PIPE_DATA_LENGTH_3 0xC11
  220. #define A3XX_VSC_PIPE_CONFIG_4 0xC12
  221. #define A3XX_VSC_PIPE_DATA_ADDRESS_4 0xC13
  222. #define A3XX_VSC_PIPE_DATA_LENGTH_4 0xC14
  223. #define A3XX_VSC_PIPE_CONFIG_5 0xC15
  224. #define A3XX_VSC_PIPE_DATA_ADDRESS_5 0xC16
  225. #define A3XX_VSC_PIPE_DATA_LENGTH_5 0xC17
  226. #define A3XX_VSC_PIPE_CONFIG_6 0xC18
  227. #define A3XX_VSC_PIPE_DATA_ADDRESS_6 0xC19
  228. #define A3XX_VSC_PIPE_DATA_LENGTH_6 0xC1A
  229. #define A3XX_VSC_PIPE_CONFIG_7 0xC1B
  230. #define A3XX_VSC_PIPE_DATA_ADDRESS_7 0xC1C
  231. #define A3XX_VSC_PIPE_DATA_LENGTH_7 0xC1D
  232. #define A3XX_PC_PERFCOUNTER0_SELECT 0xC48
  233. #define A3XX_PC_PERFCOUNTER1_SELECT 0xC49
  234. #define A3XX_PC_PERFCOUNTER2_SELECT 0xC4A
  235. #define A3XX_PC_PERFCOUNTER3_SELECT 0xC4B
  236. #define A3XX_GRAS_TSE_DEBUG_ECO 0xC81
  237. #define A3XX_GRAS_PERFCOUNTER0_SELECT 0xC88
  238. #define A3XX_GRAS_PERFCOUNTER1_SELECT 0xC89
  239. #define A3XX_GRAS_PERFCOUNTER2_SELECT 0xC8A
  240. #define A3XX_GRAS_PERFCOUNTER3_SELECT 0xC8B
  241. #define A3XX_GRAS_CL_USER_PLANE_X0 0xCA0
  242. #define A3XX_GRAS_CL_USER_PLANE_Y0 0xCA1
  243. #define A3XX_GRAS_CL_USER_PLANE_Z0 0xCA2
  244. #define A3XX_GRAS_CL_USER_PLANE_W0 0xCA3
  245. #define A3XX_GRAS_CL_USER_PLANE_X1 0xCA4
  246. #define A3XX_GRAS_CL_USER_PLANE_Y1 0xCA5
  247. #define A3XX_GRAS_CL_USER_PLANE_Z1 0xCA6
  248. #define A3XX_GRAS_CL_USER_PLANE_W1 0xCA7
  249. #define A3XX_GRAS_CL_USER_PLANE_X2 0xCA8
  250. #define A3XX_GRAS_CL_USER_PLANE_Y2 0xCA9
  251. #define A3XX_GRAS_CL_USER_PLANE_Z2 0xCAA
  252. #define A3XX_GRAS_CL_USER_PLANE_W2 0xCAB
  253. #define A3XX_GRAS_CL_USER_PLANE_X3 0xCAC
  254. #define A3XX_GRAS_CL_USER_PLANE_Y3 0xCAD
  255. #define A3XX_GRAS_CL_USER_PLANE_Z3 0xCAE
  256. #define A3XX_GRAS_CL_USER_PLANE_W3 0xCAF
  257. #define A3XX_GRAS_CL_USER_PLANE_X4 0xCB0
  258. #define A3XX_GRAS_CL_USER_PLANE_Y4 0xCB1
  259. #define A3XX_GRAS_CL_USER_PLANE_Z4 0xCB2
  260. #define A3XX_GRAS_CL_USER_PLANE_W4 0xCB3
  261. #define A3XX_GRAS_CL_USER_PLANE_X5 0xCB4
  262. #define A3XX_GRAS_CL_USER_PLANE_Y5 0xCB5
  263. #define A3XX_GRAS_CL_USER_PLANE_Z5 0xCB6
  264. #define A3XX_GRAS_CL_USER_PLANE_W5 0xCB7
  265. #define A3XX_RB_GMEM_BASE_ADDR 0xCC0
  266. #define A3XX_RB_DEBUG_ECO_CONTROLS_ADDR 0xCC1
  267. #define A3XX_RB_PERFCOUNTER0_SELECT 0xCC6
  268. #define A3XX_RB_PERFCOUNTER1_SELECT 0xCC7
  269. #define A3XX_RB_FRAME_BUFFER_DIMENSION 0xCE0
  270. #define A3XX_HLSQ_PERFCOUNTER0_SELECT 0xE00
  271. #define A3XX_HLSQ_PERFCOUNTER1_SELECT 0xE01
  272. #define A3XX_HLSQ_PERFCOUNTER2_SELECT 0xE02
  273. #define A3XX_HLSQ_PERFCOUNTER3_SELECT 0xE03
  274. #define A3XX_HLSQ_PERFCOUNTER4_SELECT 0xE04
  275. #define A3XX_HLSQ_PERFCOUNTER5_SELECT 0xE05
  276. #define A3XX_VFD_PERFCOUNTER0_SELECT 0xE44
  277. #define A3XX_VFD_PERFCOUNTER1_SELECT 0xE45
  278. #define A3XX_VPC_VPC_DEBUG_RAM_SEL 0xE61
  279. #define A3XX_VPC_VPC_DEBUG_RAM_READ 0xE62
  280. #define A3XX_VPC_PERFCOUNTER0_SELECT 0xE64
  281. #define A3XX_VPC_PERFCOUNTER1_SELECT 0xE65
  282. #define A3XX_UCHE_CACHE_MODE_CONTROL_REG 0xE82
  283. #define A3XX_UCHE_PERFCOUNTER0_SELECT 0xE84
  284. #define A3XX_UCHE_PERFCOUNTER1_SELECT 0xE85
  285. #define A3XX_UCHE_PERFCOUNTER2_SELECT 0xE86
  286. #define A3XX_UCHE_PERFCOUNTER3_SELECT 0xE87
  287. #define A3XX_UCHE_PERFCOUNTER4_SELECT 0xE88
  288. #define A3XX_UCHE_PERFCOUNTER5_SELECT 0xE89
  289. #define A3XX_UCHE_CACHE_INVALIDATE0_REG 0xEA0
  290. #define A3XX_SP_PERFCOUNTER0_SELECT 0xEC4
  291. #define A3XX_SP_PERFCOUNTER1_SELECT 0xEC5
  292. #define A3XX_SP_PERFCOUNTER2_SELECT 0xEC6
  293. #define A3XX_SP_PERFCOUNTER3_SELECT 0xEC7
  294. #define A3XX_SP_PERFCOUNTER4_SELECT 0xEC8
  295. #define A3XX_SP_PERFCOUNTER5_SELECT 0xEC9
  296. #define A3XX_SP_PERFCOUNTER6_SELECT 0xECA
  297. #define A3XX_SP_PERFCOUNTER7_SELECT 0xECB
  298. #define A3XX_TP_PERFCOUNTER0_SELECT 0xF04
  299. #define A3XX_TP_PERFCOUNTER1_SELECT 0xF05
  300. #define A3XX_TP_PERFCOUNTER2_SELECT 0xF06
  301. #define A3XX_TP_PERFCOUNTER3_SELECT 0xF07
  302. #define A3XX_TP_PERFCOUNTER4_SELECT 0xF08
  303. #define A3XX_TP_PERFCOUNTER5_SELECT 0xF09
  304. #define A3XX_GRAS_CL_CLIP_CNTL 0x2040
  305. #define A3XX_GRAS_CL_GB_CLIP_ADJ 0x2044
  306. #define A3XX_GRAS_CL_VPORT_XOFFSET 0x2048
  307. #define A3XX_GRAS_CL_VPORT_XSCALE 0x2049
  308. #define A3XX_GRAS_CL_VPORT_YOFFSET 0x204A
  309. #define A3XX_GRAS_CL_VPORT_YSCALE 0x204B
  310. #define A3XX_GRAS_CL_VPORT_ZOFFSET 0x204C
  311. #define A3XX_GRAS_CL_VPORT_ZSCALE 0x204D
  312. #define A3XX_GRAS_SU_POINT_MINMAX 0x2068
  313. #define A3XX_GRAS_SU_POINT_SIZE 0x2069
  314. #define A3XX_GRAS_SU_POLY_OFFSET_SCALE 0x206C
  315. #define A3XX_GRAS_SU_POLY_OFFSET_OFFSET 0x206D
  316. #define A3XX_GRAS_SU_MODE_CONTROL 0x2070
  317. #define A3XX_GRAS_SC_CONTROL 0x2072
  318. #define A3XX_GRAS_SC_SCREEN_SCISSOR_TL 0x2074
  319. #define A3XX_GRAS_SC_SCREEN_SCISSOR_BR 0x2075
  320. #define A3XX_GRAS_SC_WINDOW_SCISSOR_TL 0x2079
  321. #define A3XX_GRAS_SC_WINDOW_SCISSOR_BR 0x207A
  322. #define A3XX_RB_MODE_CONTROL 0x20C0
  323. #define A3XX_RB_RENDER_CONTROL 0x20C1
  324. #define A3XX_RB_MSAA_CONTROL 0x20C2
  325. #define A3XX_RB_ALPHA_REFERENCE 0x20C3
  326. #define A3XX_RB_MRT_CONTROL0 0x20C4
  327. #define A3XX_RB_MRT_BUF_INFO0 0x20C5
  328. #define A3XX_RB_MRT_BUF_BASE0 0x20C6
  329. #define A3XX_RB_MRT_BLEND_CONTROL0 0x20C7
  330. #define A3XX_RB_MRT_CONTROL1 0x20C8
  331. #define A3XX_RB_MRT_BUF_INFO1 0x20C9
  332. #define A3XX_RB_MRT_BUF_BASE1 0x20CA
  333. #define A3XX_RB_MRT_BLEND_CONTROL1 0x20CB
  334. #define A3XX_RB_MRT_CONTROL2 0x20CC
  335. #define A3XX_RB_MRT_BUF_INFO2 0x20CD
  336. #define A3XX_RB_MRT_BUF_BASE2 0x20CE
  337. #define A3XX_RB_MRT_BLEND_CONTROL2 0x20CF
  338. #define A3XX_RB_MRT_CONTROL3 0x20D0
  339. #define A3XX_RB_MRT_BUF_INFO3 0x20D1
  340. #define A3XX_RB_MRT_BUF_BASE3 0x20D2
  341. #define A3XX_RB_MRT_BLEND_CONTROL3 0x20D3
  342. #define A3XX_RB_BLEND_RED 0x20E4
  343. #define A3XX_RB_BLEND_GREEN 0x20E5
  344. #define A3XX_RB_BLEND_BLUE 0x20E6
  345. #define A3XX_RB_BLEND_ALPHA 0x20E7
  346. #define A3XX_RB_CLEAR_COLOR_DW0 0x20E8
  347. #define A3XX_RB_CLEAR_COLOR_DW1 0x20E9
  348. #define A3XX_RB_CLEAR_COLOR_DW2 0x20EA
  349. #define A3XX_RB_CLEAR_COLOR_DW3 0x20EB
  350. #define A3XX_RB_COPY_CONTROL 0x20EC
  351. #define A3XX_RB_COPY_DEST_BASE 0x20ED
  352. #define A3XX_RB_COPY_DEST_PITCH 0x20EE
  353. #define A3XX_RB_COPY_DEST_INFO 0x20EF
  354. #define A3XX_RB_DEPTH_CONTROL 0x2100
  355. #define A3XX_RB_DEPTH_CLEAR 0x2101
  356. #define A3XX_RB_DEPTH_BUF_INFO 0x2102
  357. #define A3XX_RB_DEPTH_BUF_PITCH 0x2103
  358. #define A3XX_RB_STENCIL_CONTROL 0x2104
  359. #define A3XX_RB_STENCIL_CLEAR 0x2105
  360. #define A3XX_RB_STENCIL_BUF_INFO 0x2106
  361. #define A3XX_RB_STENCIL_BUF_PITCH 0x2107
  362. #define A3XX_RB_STENCIL_REF_MASK 0x2108
  363. #define A3XX_RB_STENCIL_REF_MASK_BF 0x2109
  364. #define A3XX_RB_LRZ_VSC_CONTROL 0x210C
  365. #define A3XX_RB_WINDOW_OFFSET 0x210E
  366. #define A3XX_RB_SAMPLE_COUNT_CONTROL 0x2110
  367. #define A3XX_RB_SAMPLE_COUNT_ADDR 0x2111
  368. #define A3XX_RB_Z_CLAMP_MIN 0x2114
  369. #define A3XX_RB_Z_CLAMP_MAX 0x2115
  370. #define A3XX_PC_VSTREAM_CONTROL 0x21E4
  371. #define A3XX_PC_VERTEX_REUSE_BLOCK_CNTL 0x21EA
  372. #define A3XX_PC_PRIM_VTX_CNTL 0x21EC
  373. #define A3XX_PC_RESTART_INDEX 0x21ED
  374. #define A3XX_HLSQ_CONTROL_0_REG 0x2200
  375. #define A3XX_HLSQ_CONTROL_1_REG 0x2201
  376. #define A3XX_HLSQ_CONTROL_2_REG 0x2202
  377. #define A3XX_HLSQ_CONTROL_3_REG 0x2203
  378. #define A3XX_HLSQ_VS_CONTROL_REG 0x2204
  379. #define A3XX_HLSQ_FS_CONTROL_REG 0x2205
  380. #define A3XX_HLSQ_CONST_VSPRESV_RANGE_REG 0x2206
  381. #define A3XX_HLSQ_CONST_FSPRESV_RANGE_REG 0x2207
  382. #define A3XX_HLSQ_CL_NDRANGE_0_REG 0x220A
  383. #define A3XX_HLSQ_CL_NDRANGE_1_REG 0x220B
  384. #define A3XX_HLSQ_CL_NDRANGE_2_REG 0x220C
  385. #define A3XX_HLSQ_CL_NDRANGE_3_REG 0x220D
  386. #define A3XX_HLSQ_CL_NDRANGE_4_REG 0x220E
  387. #define A3XX_HLSQ_CL_NDRANGE_5_REG 0x220F
  388. #define A3XX_HLSQ_CL_NDRANGE_6_REG 0x2210
  389. #define A3XX_HLSQ_CL_CONTROL_0_REG 0x2211
  390. #define A3XX_HLSQ_CL_CONTROL_1_REG 0x2212
  391. #define A3XX_HLSQ_CL_KERNEL_CONST_REG 0x2214
  392. #define A3XX_HLSQ_CL_KERNEL_GROUP_X_REG 0x2215
  393. #define A3XX_HLSQ_CL_KERNEL_GROUP_Y_REG 0x2216
  394. #define A3XX_HLSQ_CL_KERNEL_GROUP_Z_REG 0x2217
  395. #define A3XX_HLSQ_CL_WG_OFFSET_REG 0x221A
  396. #define A3XX_VFD_CONTROL_0 0x2240
  397. #define A3XX_VFD_INDEX_MIN 0x2242
  398. #define A3XX_VFD_INDEX_MAX 0x2243
  399. #define A3XX_VFD_FETCH_INSTR_0_0 0x2246
  400. #define A3XX_VFD_FETCH_INSTR_0_4 0x224E
  401. #define A3XX_VFD_FETCH_INSTR_1_F 0x2265
  402. #define A3XX_VFD_DECODE_INSTR_0 0x2266
  403. #define A3XX_VFD_VS_THREADING_THRESHOLD 0x227E
  404. #define A3XX_VPC_ATTR 0x2280
  405. #define A3XX_VPC_VARY_CYLWRAP_ENABLE_1 0x228B
  406. #define A3XX_SP_SP_CTRL_REG 0x22C0
  407. #define A3XX_SP_VS_CTRL_REG0 0x22C4
  408. #define A3XX_SP_VS_CTRL_REG1 0x22C5
  409. #define A3XX_SP_VS_PARAM_REG 0x22C6
  410. #define A3XX_SP_VS_OUT_REG_0 0x22C7
  411. #define A3XX_SP_VS_OUT_REG_1 0x22C8
  412. #define A3XX_SP_VS_OUT_REG_2 0x22C9
  413. #define A3XX_SP_VS_OUT_REG_3 0x22CA
  414. #define A3XX_SP_VS_OUT_REG_4 0x22CB
  415. #define A3XX_SP_VS_OUT_REG_5 0x22CC
  416. #define A3XX_SP_VS_OUT_REG_6 0x22CD
  417. #define A3XX_SP_VS_OUT_REG_7 0x22CE
  418. #define A3XX_SP_VS_VPC_DST_REG_0 0x22D0
  419. #define A3XX_SP_VS_VPC_DST_REG_1 0x22D1
  420. #define A3XX_SP_VS_VPC_DST_REG_2 0x22D2
  421. #define A3XX_SP_VS_VPC_DST_REG_3 0x22D3
  422. #define A3XX_SP_VS_OBJ_OFFSET_REG 0x22D4
  423. #define A3XX_SP_VS_OBJ_START_REG 0x22D5
  424. #define A3XX_SP_VS_PVT_MEM_PARAM_REG 0x22D6
  425. #define A3XX_SP_VS_PVT_MEM_ADDR_REG 0x22D7
  426. #define A3XX_SP_VS_PVT_MEM_SIZE_REG 0x22D8
  427. #define A3XX_SP_VS_LENGTH_REG 0x22DF
  428. #define A3XX_SP_FS_CTRL_REG0 0x22E0
  429. #define A3XX_SP_FS_CTRL_REG1 0x22E1
  430. #define A3XX_SP_FS_OBJ_OFFSET_REG 0x22E2
  431. #define A3XX_SP_FS_OBJ_START_REG 0x22E3
  432. #define A3XX_SP_FS_PVT_MEM_PARAM_REG 0x22E4
  433. #define A3XX_SP_FS_PVT_MEM_ADDR_REG 0x22E5
  434. #define A3XX_SP_FS_PVT_MEM_SIZE_REG 0x22E6
  435. #define A3XX_SP_FS_FLAT_SHAD_MODE_REG_0 0x22E8
  436. #define A3XX_SP_FS_FLAT_SHAD_MODE_REG_1 0x22E9
  437. #define A3XX_SP_FS_OUTPUT_REG 0x22EC
  438. #define A3XX_SP_FS_MRT_REG_0 0x22F0
  439. #define A3XX_SP_FS_MRT_REG_1 0x22F1
  440. #define A3XX_SP_FS_MRT_REG_2 0x22F2
  441. #define A3XX_SP_FS_MRT_REG_3 0x22F3
  442. #define A3XX_SP_FS_IMAGE_OUTPUT_REG_0 0x22F4
  443. #define A3XX_SP_FS_IMAGE_OUTPUT_REG_1 0x22F5
  444. #define A3XX_SP_FS_IMAGE_OUTPUT_REG_2 0x22F6
  445. #define A3XX_SP_FS_IMAGE_OUTPUT_REG_3 0x22F7
  446. #define A3XX_SP_FS_LENGTH_REG 0x22FF
  447. #define A3XX_TPL1_TP_VS_TEX_OFFSET 0x2340
  448. #define A3XX_TPL1_TP_FS_TEX_OFFSET 0x2342
  449. #define A3XX_TPL1_TP_FS_BORDER_COLOR_BASE_ADDR 0x2343
  450. #define A3XX_VBIF_CLKON 0x3001
  451. #define A3XX_VBIF_FIXED_SORT_EN 0x300C
  452. #define A3XX_VBIF_FIXED_SORT_SEL0 0x300D
  453. #define A3XX_VBIF_FIXED_SORT_SEL1 0x300E
  454. #define A3XX_VBIF_ABIT_SORT 0x301C
  455. #define A3XX_VBIF_ABIT_SORT_CONF 0x301D
  456. #define A3XX_VBIF_GATE_OFF_WRREQ_EN 0x302A
  457. #define A3XX_VBIF_IN_RD_LIM_CONF0 0x302C
  458. #define A3XX_VBIF_IN_RD_LIM_CONF1 0x302D
  459. #define A3XX_VBIF_IN_WR_LIM_CONF0 0x3030
  460. #define A3XX_VBIF_IN_WR_LIM_CONF1 0x3031
  461. #define A3XX_VBIF_OUT_RD_LIM_CONF0 0x3034
  462. #define A3XX_VBIF_OUT_WR_LIM_CONF0 0x3035
  463. #define A3XX_VBIF_DDR_OUT_MAX_BURST 0x3036
  464. #define A3XX_VBIF_ARB_CTL 0x303C
  465. #define A3XX_VBIF_ROUND_ROBIN_QOS_ARB 0x3049
  466. #define A3XX_VBIF_OUT_AXI_AMEMTYPE_CONF0 0x3058
  467. #define A3XX_VBIF_OUT_AXI_AOOO_EN 0x305E
  468. #define A3XX_VBIF_OUT_AXI_AOOO 0x305F
  469. #define A3XX_VBIF_PERF_CNT_EN 0x3070
  470. #define A3XX_VBIF_PERF_CNT_CLR 0x3071
  471. #define A3XX_VBIF_PERF_CNT_SEL 0x3072
  472. #define A3XX_VBIF_PERF_CNT0_LO 0x3073
  473. #define A3XX_VBIF_PERF_CNT0_HI 0x3074
  474. #define A3XX_VBIF_PERF_CNT1_LO 0x3075
  475. #define A3XX_VBIF_PERF_CNT1_HI 0x3076
  476. #define A3XX_VBIF_PERF_PWR_CNT0_LO 0x3077
  477. #define A3XX_VBIF_PERF_PWR_CNT0_HI 0x3078
  478. #define A3XX_VBIF_PERF_PWR_CNT1_LO 0x3079
  479. #define A3XX_VBIF_PERF_PWR_CNT1_HI 0x307a
  480. #define A3XX_VBIF_PERF_PWR_CNT2_LO 0x307b
  481. #define A3XX_VBIF_PERF_PWR_CNT2_HI 0x307c
  482. /* Bit flags for RBBM_CTL */
  483. #define RBBM_RBBM_CTL_RESET_PWR_CTR0 BIT(0)
  484. #define RBBM_RBBM_CTL_RESET_PWR_CTR1 BIT(1)
  485. #define RBBM_RBBM_CTL_ENABLE_PWR_CTR0 BIT(16)
  486. #define RBBM_RBBM_CTL_ENABLE_PWR_CTR1 BIT(17)
  487. /* Bit flag for RBMM_PERFCTR_CTL */
  488. #define RBBM_PERFCTR_CTL_ENABLE BIT(0)
  489. /* Various flags used by the context switch code */
  490. #define SP_MULTI 0
  491. #define SP_BUFFER_MODE 1
  492. #define SP_TWO_VTX_QUADS 0
  493. #define SP_PIXEL_BASED 0
  494. #define SP_R8G8B8A8_UNORM 8
  495. #define SP_FOUR_PIX_QUADS 1
  496. #define HLSQ_DIRECT 0
  497. #define HLSQ_BLOCK_ID_SP_VS 4
  498. #define HLSQ_SP_VS_INSTR 0
  499. #define HLSQ_SP_FS_INSTR 0
  500. #define HLSQ_BLOCK_ID_SP_FS 6
  501. #define HLSQ_TWO_PIX_QUADS 0
  502. #define HLSQ_TWO_VTX_QUADS 0
  503. #define HLSQ_BLOCK_ID_TP_TEX 2
  504. #define HLSQ_TP_TEX_SAMPLERS 0
  505. #define HLSQ_TP_TEX_MEMOBJ 1
  506. #define HLSQ_BLOCK_ID_TP_MIPMAP 3
  507. #define HLSQ_TP_MIPMAP_BASE 1
  508. #define HLSQ_FOUR_PIX_QUADS 1
  509. #define RB_FACTOR_ONE 1
  510. #define RB_BLEND_OP_ADD 0
  511. #define RB_FACTOR_ZERO 0
  512. #define RB_DITHER_DISABLE 0
  513. #define RB_DITHER_ALWAYS 1
  514. #define RB_FRAG_NEVER 0
  515. #define RB_ENDIAN_NONE 0
  516. #define RB_R8G8B8A8_UNORM 8
  517. #define RB_RESOLVE_PASS 2
  518. #define RB_CLEAR_MODE_RESOLVE 1
  519. #define RB_TILINGMODE_LINEAR 0
  520. #define RB_REF_NEVER 0
  521. #define RB_FRAG_LESS 1
  522. #define RB_REF_ALWAYS 7
  523. #define RB_STENCIL_KEEP 0
  524. #define RB_RENDERING_PASS 0
  525. #define RB_TILINGMODE_32X32 2
  526. #define PC_DRAW_TRIANGLES 2
  527. #define PC_DI_PT_RECTLIST 8
  528. #define PC_DI_SRC_SEL_AUTO_INDEX 2
  529. #define PC_DI_INDEX_SIZE_16_BIT 0
  530. #define PC_DI_IGNORE_VISIBILITY 0
  531. #define PC_DI_PT_TRILIST 4
  532. #define PC_DI_SRC_SEL_IMMEDIATE 1
  533. #define PC_DI_INDEX_SIZE_32_BIT 1
  534. #define UCHE_ENTIRE_CACHE 1
  535. #define UCHE_OP_INVALIDATE 1
  536. /*
  537. * The following are bit field shifts within some of the registers defined
  538. * above. These are used in the context switch code in conjunction with the
  539. * _SET macro
  540. */
  541. #define GRAS_CL_CLIP_CNTL_CLIP_DISABLE 16
  542. #define GRAS_CL_CLIP_CNTL_IJ_PERSP_CENTER 12
  543. #define GRAS_CL_CLIP_CNTL_PERSP_DIVISION_DISABLE 21
  544. #define GRAS_CL_CLIP_CNTL_VP_CLIP_CODE_IGNORE 19
  545. #define GRAS_CL_CLIP_CNTL_VP_XFORM_DISABLE 20
  546. #define GRAS_CL_CLIP_CNTL_ZFAR_CLIP_DISABLE 17
  547. #define GRAS_CL_VPORT_XSCALE_VPORT_XSCALE 0
  548. #define GRAS_CL_VPORT_YSCALE_VPORT_YSCALE 0
  549. #define GRAS_CL_VPORT_ZSCALE_VPORT_ZSCALE 0
  550. #define GRAS_SC_CONTROL_RASTER_MODE 12
  551. #define GRAS_SC_CONTROL_RENDER_MODE 4
  552. #define GRAS_SC_SCREEN_SCISSOR_BR_BR_X 0
  553. #define GRAS_SC_SCREEN_SCISSOR_BR_BR_Y 16
  554. #define GRAS_SC_WINDOW_SCISSOR_BR_BR_X 0
  555. #define GRAS_SC_WINDOW_SCISSOR_BR_BR_Y 16
  556. #define GRAS_SU_CTRLMODE_LINEHALFWIDTH 03
  557. #define HLSQ_CONSTFSPRESERVEDRANGEREG_ENDENTRY 16
  558. #define HLSQ_CONSTFSPRESERVEDRANGEREG_STARTENTRY 0
  559. #define HLSQ_CTRL0REG_CHUNKDISABLE 26
  560. #define HLSQ_CTRL0REG_CONSTSWITCHMODE 27
  561. #define HLSQ_CTRL0REG_FSSUPERTHREADENABLE 6
  562. #define HLSQ_CTRL0REG_FSTHREADSIZE 4
  563. #define HLSQ_CTRL0REG_LAZYUPDATEDISABLE 28
  564. #define HLSQ_CTRL0REG_RESERVED2 10
  565. #define HLSQ_CTRL0REG_SPCONSTFULLUPDATE 29
  566. #define HLSQ_CTRL0REG_SPSHADERRESTART 9
  567. #define HLSQ_CTRL0REG_TPFULLUPDATE 30
  568. #define HLSQ_CTRL1REG_RESERVED1 9
  569. #define HLSQ_CTRL1REG_VSSUPERTHREADENABLE 8
  570. #define HLSQ_CTRL1REG_VSTHREADSIZE 6
  571. #define HLSQ_CTRL2REG_PRIMALLOCTHRESHOLD 26
  572. #define HLSQ_FSCTRLREG_FSCONSTLENGTH 0
  573. #define HLSQ_FSCTRLREG_FSCONSTSTARTOFFSET 12
  574. #define HLSQ_FSCTRLREG_FSINSTRLENGTH 24
  575. #define HLSQ_VSCTRLREG_VSINSTRLENGTH 24
  576. #define PC_PRIM_VTX_CONTROL_POLYMODE_BACK_PTYPE 8
  577. #define PC_PRIM_VTX_CONTROL_POLYMODE_FRONT_PTYPE 5
  578. #define PC_PRIM_VTX_CONTROL_PROVOKING_VTX_LAST 25
  579. #define PC_PRIM_VTX_CONTROL_STRIDE_IN_VPC 0
  580. #define PC_DRAW_INITIATOR_PRIM_TYPE 0
  581. #define PC_DRAW_INITIATOR_SOURCE_SELECT 6
  582. #define PC_DRAW_INITIATOR_VISIBILITY_CULLING_MODE 9
  583. #define PC_DRAW_INITIATOR_INDEX_SIZE 0x0B
  584. #define PC_DRAW_INITIATOR_SMALL_INDEX 0x0D
  585. #define PC_DRAW_INITIATOR_PRE_DRAW_INITIATOR_ENABLE 0x0E
  586. #define RB_COPYCONTROL_COPY_GMEM_BASE 14
  587. #define RB_COPYCONTROL_RESOLVE_CLEAR_MODE 4
  588. #define RB_COPYDESTBASE_COPY_DEST_BASE 4
  589. #define RB_COPYDESTINFO_COPY_COMPONENT_ENABLE 14
  590. #define RB_COPYDESTINFO_COPY_DEST_ENDIAN 18
  591. #define RB_COPYDESTINFO_COPY_DEST_FORMAT 2
  592. #define RB_COPYDESTINFO_COPY_DEST_TILE 0
  593. #define RB_COPYDESTPITCH_COPY_DEST_PITCH 0
  594. #define RB_DEPTHCONTROL_Z_TEST_FUNC 4
  595. #define RB_MODECONTROL_RENDER_MODE 8
  596. #define RB_MODECONTROL_MARB_CACHE_SPLIT_MODE 15
  597. #define RB_MODECONTROL_PACKER_TIMER_ENABLE 16
  598. #define RB_MRTBLENDCONTROL_ALPHA_BLEND_OPCODE 21
  599. #define RB_MRTBLENDCONTROL_ALPHA_DEST_FACTOR 24
  600. #define RB_MRTBLENDCONTROL_ALPHA_SRC_FACTOR 16
  601. #define RB_MRTBLENDCONTROL_CLAMP_ENABLE 29
  602. #define RB_MRTBLENDCONTROL_RGB_BLEND_OPCODE 5
  603. #define RB_MRTBLENDCONTROL_RGB_DEST_FACTOR 8
  604. #define RB_MRTBLENDCONTROL_RGB_SRC_FACTOR 0
  605. #define RB_MRTBUFBASE_COLOR_BUF_BASE 4
  606. #define RB_MRTBUFINFO_COLOR_BUF_PITCH 17
  607. #define RB_MRTBUFINFO_COLOR_FORMAT 0
  608. #define RB_MRTBUFINFO_COLOR_TILE_MODE 6
  609. #define RB_MRTCONTROL_COMPONENT_ENABLE 24
  610. #define RB_MRTCONTROL_DITHER_MODE 12
  611. #define RB_MRTCONTROL_READ_DEST_ENABLE 3
  612. #define RB_MRTCONTROL_ROP_CODE 8
  613. #define RB_MSAACONTROL_MSAA_DISABLE 10
  614. #define RB_MSAACONTROL_SAMPLE_MASK 16
  615. #define RB_RENDERCONTROL_ALPHA_TEST_FUNC 24
  616. #define RB_RENDERCONTROL_BIN_WIDTH 4
  617. #define RB_RENDERCONTROL_DISABLE_COLOR_PIPE 12
  618. #define RB_STENCILCONTROL_STENCIL_FAIL 11
  619. #define RB_STENCILCONTROL_STENCIL_FAIL_BF 23
  620. #define RB_STENCILCONTROL_STENCIL_FUNC 8
  621. #define RB_STENCILCONTROL_STENCIL_FUNC_BF 20
  622. #define RB_STENCILCONTROL_STENCIL_ZFAIL 17
  623. #define RB_STENCILCONTROL_STENCIL_ZFAIL_BF 29
  624. #define RB_STENCILCONTROL_STENCIL_ZPASS 14
  625. #define RB_STENCILCONTROL_STENCIL_ZPASS_BF 26
  626. #define SP_FSCTRLREG0_FSFULLREGFOOTPRINT 10
  627. #define SP_FSCTRLREG0_FSHALFREGFOOTPRINT 4
  628. #define SP_FSCTRLREG0_FSICACHEINVALID 2
  629. #define SP_FSCTRLREG0_FSINOUTREGOVERLAP 18
  630. #define SP_FSCTRLREG0_FSINSTRBUFFERMODE 1
  631. #define SP_FSCTRLREG0_FSLENGTH 24
  632. #define SP_FSCTRLREG0_FSSUPERTHREADMODE 21
  633. #define SP_FSCTRLREG0_FSTHREADMODE 0
  634. #define SP_FSCTRLREG0_FSTHREADSIZE 20
  635. #define SP_FSCTRLREG0_PIXLODENABLE 22
  636. #define SP_FSCTRLREG1_FSCONSTLENGTH 0
  637. #define SP_FSCTRLREG1_FSINITIALOUTSTANDING 20
  638. #define SP_FSCTRLREG1_HALFPRECVAROFFSET 24
  639. #define SP_FSMRTREG_REGID 0
  640. #define SP_FSMRTREG_PRECISION 8
  641. #define SP_FSOUTREG_PAD0 2
  642. #define SP_IMAGEOUTPUTREG_MRTFORMAT 0
  643. #define SP_IMAGEOUTPUTREG_DEPTHOUTMODE 3
  644. #define SP_IMAGEOUTPUTREG_PAD0 6
  645. #define SP_OBJOFFSETREG_CONSTOBJECTSTARTOFFSET 16
  646. #define SP_OBJOFFSETREG_SHADEROBJOFFSETINIC 25
  647. #define SP_SHADERLENGTH_LEN 0
  648. #define SP_SPCTRLREG_CONSTMODE 18
  649. #define SP_SPCTRLREG_LOMODE 22
  650. #define SP_SPCTRLREG_SLEEPMODE 20
  651. #define SP_VSCTRLREG0_VSFULLREGFOOTPRINT 10
  652. #define SP_VSCTRLREG0_VSICACHEINVALID 2
  653. #define SP_VSCTRLREG0_VSINSTRBUFFERMODE 1
  654. #define SP_VSCTRLREG0_VSLENGTH 24
  655. #define SP_VSCTRLREG0_VSSUPERTHREADMODE 21
  656. #define SP_VSCTRLREG0_VSTHREADMODE 0
  657. #define SP_VSCTRLREG0_VSTHREADSIZE 20
  658. #define SP_VSCTRLREG1_VSINITIALOUTSTANDING 24
  659. #define SP_VSOUTREG_COMPMASK0 9
  660. #define SP_VSPARAMREG_POSREGID 0
  661. #define SP_VSPARAMREG_PSIZEREGID 8
  662. #define SP_VSPARAMREG_TOTALVSOUTVAR 20
  663. #define SP_VSVPCDSTREG_OUTLOC0 0
  664. #define TPL1_TPTEXOFFSETREG_BASETABLEPTR 16
  665. #define TPL1_TPTEXOFFSETREG_MEMOBJOFFSET 8
  666. #define TPL1_TPTEXOFFSETREG_SAMPLEROFFSET 0
  667. #define UCHE_INVALIDATE1REG_OPCODE 0x1C
  668. #define UCHE_INVALIDATE1REG_ALLORPORTION 0x1F
  669. #define VFD_BASEADDR_BASEADDR 0
  670. #define VFD_CTRLREG0_PACKETSIZE 18
  671. #define VFD_CTRLREG0_STRMDECINSTRCNT 22
  672. #define VFD_CTRLREG0_STRMFETCHINSTRCNT 27
  673. #define VFD_CTRLREG0_TOTALATTRTOVS 0
  674. #define VFD_CTRLREG1_MAXSTORAGE 0
  675. #define VFD_CTRLREG1_REGID4INST 24
  676. #define VFD_CTRLREG1_REGID4VTX 16
  677. #define VFD_DECODEINSTRUCTIONS_CONSTFILL 4
  678. #define VFD_DECODEINSTRUCTIONS_FORMAT 6
  679. #define VFD_DECODEINSTRUCTIONS_LASTCOMPVALID 29
  680. #define VFD_DECODEINSTRUCTIONS_REGID 12
  681. #define VFD_DECODEINSTRUCTIONS_SHIFTCNT 24
  682. #define VFD_DECODEINSTRUCTIONS_SWITCHNEXT 30
  683. #define VFD_DECODEINSTRUCTIONS_WRITEMASK 0
  684. #define VFD_FETCHINSTRUCTIONS_BUFSTRIDE 7
  685. #define VFD_FETCHINSTRUCTIONS_FETCHSIZE 0
  686. #define VFD_FETCHINSTRUCTIONS_INDEXDECODE 18
  687. #define VFD_FETCHINSTRUCTIONS_STEPRATE 24
  688. #define VFD_FETCHINSTRUCTIONS_SWITCHNEXT 17
  689. #define VFD_THREADINGTHRESHOLD_REGID_VTXCNT 8
  690. #define VFD_THREADINGTHRESHOLD_REGID_THRESHOLD 0
  691. #define VFD_THREADINGTHRESHOLD_RESERVED6 4
  692. #define VPC_VPCATTR_LMSIZE 28
  693. #define VPC_VPCATTR_THRHDASSIGN 12
  694. #define VPC_VPCATTR_TOTALATTR 0
  695. #define VPC_VPCPACK_NUMFPNONPOSVAR 8
  696. #define VPC_VPCPACK_NUMNONPOSVSVAR 16
  697. #define VPC_VPCVARPSREPLMODE_COMPONENT08 0
  698. #define VPC_VPCVARPSREPLMODE_COMPONENT09 2
  699. #define VPC_VPCVARPSREPLMODE_COMPONENT0A 4
  700. #define VPC_VPCVARPSREPLMODE_COMPONENT0B 6
  701. #define VPC_VPCVARPSREPLMODE_COMPONENT0C 8
  702. #define VPC_VPCVARPSREPLMODE_COMPONENT0D 10
  703. #define VPC_VPCVARPSREPLMODE_COMPONENT0E 12
  704. #define VPC_VPCVARPSREPLMODE_COMPONENT0F 14
  705. #define VPC_VPCVARPSREPLMODE_COMPONENT10 16
  706. #define VPC_VPCVARPSREPLMODE_COMPONENT11 18
  707. #define VPC_VPCVARPSREPLMODE_COMPONENT12 20
  708. #define VPC_VPCVARPSREPLMODE_COMPONENT13 22
  709. #define VPC_VPCVARPSREPLMODE_COMPONENT14 24
  710. #define VPC_VPCVARPSREPLMODE_COMPONENT15 26
  711. #define VPC_VPCVARPSREPLMODE_COMPONENT16 28
  712. #define VPC_VPCVARPSREPLMODE_COMPONENT17 30
  713. /* RBBM Debug bus block IDs */
  714. #define RBBM_BLOCK_ID_NONE 0x0
  715. #define RBBM_BLOCK_ID_CP 0x1
  716. #define RBBM_BLOCK_ID_RBBM 0x2
  717. #define RBBM_BLOCK_ID_VBIF 0x3
  718. #define RBBM_BLOCK_ID_HLSQ 0x4
  719. #define RBBM_BLOCK_ID_UCHE 0x5
  720. #define RBBM_BLOCK_ID_PC 0x8
  721. #define RBBM_BLOCK_ID_VFD 0x9
  722. #define RBBM_BLOCK_ID_VPC 0xa
  723. #define RBBM_BLOCK_ID_TSE 0xb
  724. #define RBBM_BLOCK_ID_RAS 0xc
  725. #define RBBM_BLOCK_ID_VSC 0xd
  726. #define RBBM_BLOCK_ID_SP_0 0x10
  727. #define RBBM_BLOCK_ID_SP_1 0x11
  728. #define RBBM_BLOCK_ID_SP_2 0x12
  729. #define RBBM_BLOCK_ID_SP_3 0x13
  730. #define RBBM_BLOCK_ID_TPL1_0 0x18
  731. #define RBBM_BLOCK_ID_TPL1_1 0x19
  732. #define RBBM_BLOCK_ID_TPL1_2 0x1a
  733. #define RBBM_BLOCK_ID_TPL1_3 0x1b
  734. #define RBBM_BLOCK_ID_RB_0 0x20
  735. #define RBBM_BLOCK_ID_RB_1 0x21
  736. #define RBBM_BLOCK_ID_RB_2 0x22
  737. #define RBBM_BLOCK_ID_RB_3 0x23
  738. #define RBBM_BLOCK_ID_MARB_0 0x28
  739. #define RBBM_BLOCK_ID_MARB_1 0x29
  740. #define RBBM_BLOCK_ID_MARB_2 0x2a
  741. #define RBBM_BLOCK_ID_MARB_3 0x2b
  742. /* RBBM_CLOCK_CTL default value */
  743. #define A305_RBBM_CLOCK_CTL_DEFAULT 0xAAAAAAAA
  744. #define A305C_RBBM_CLOCK_CTL_DEFAULT 0xAAAAAAAA
  745. #define A320_RBBM_CLOCK_CTL_DEFAULT 0xBFFFFFFF
  746. #define A330_RBBM_CLOCK_CTL_DEFAULT 0xBFFCFFFF
  747. #define A330v2_RBBM_CLOCK_CTL_DEFAULT 0xAAAAAAAA
  748. #define A305B_RBBM_CLOCK_CTL_DEFAULT 0xAAAAAAAA
  749. #define A330_RBBM_GPR0_CTL_DEFAULT 0x00000000
  750. #define A330v2_RBBM_GPR0_CTL_DEFAULT 0x05515455
  751. /* COUNTABLE FOR SP PERFCOUNTER */
  752. #define SP_FS_FULL_ALU_INSTRUCTIONS 0x0E
  753. #define SP_ALU_ACTIVE_CYCLES 0x1D
  754. #define SP0_ICL1_MISSES 0x1A
  755. #define SP_FS_CFLOW_INSTRUCTIONS 0x0C
  756. /* COUNTABLE FOR TSE PERFCOUNTER */
  757. #define TSE_INPUT_PRIM_NUM 0x0
  758. /* VBIF PERFCOUNTER ENA/CLR values */
  759. #define VBIF_PERF_CNT_0 BIT(0)
  760. #define VBIF_PERF_CNT_1 BIT(1)
  761. #define VBIF_PERF_PWR_CNT_0 BIT(2)
  762. #define VBIF_PERF_PWR_CNT_1 BIT(3)
  763. #define VBIF_PERF_PWR_CNT_2 BIT(4)
  764. /* VBIF PERFCOUNTER SEL values */
  765. #define VBIF_PERF_CNT_0_SEL 0
  766. #define VBIF_PERF_CNT_0_SEL_MASK 0x7f
  767. #define VBIF_PERF_CNT_1_SEL 8
  768. #define VBIF_PERF_CNT_1_SEL_MASK 0x7f00
  769. /* VBIF countables */
  770. #define VBIF_AXI_TOTAL_BEATS 85
  771. #define VBIF_DDR_TOTAL_CYCLES 110
  772. #endif