tegra186-mc.h 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  1. #ifndef DT_BINDINGS_MEMORY_TEGRA186_MC_H
  2. #define DT_BINDINGS_MEMORY_TEGRA186_MC_H
  3. /* special clients */
  4. #define TEGRA186_SID_INVALID 0x00
  5. #define TEGRA186_SID_PASSTHROUGH 0x7f
  6. /* host1x clients */
  7. #define TEGRA186_SID_HOST1X 0x01
  8. #define TEGRA186_SID_CSI 0x02
  9. #define TEGRA186_SID_VIC 0x03
  10. #define TEGRA186_SID_VI 0x04
  11. #define TEGRA186_SID_ISP 0x05
  12. #define TEGRA186_SID_NVDEC 0x06
  13. #define TEGRA186_SID_NVENC 0x07
  14. #define TEGRA186_SID_NVJPG 0x08
  15. #define TEGRA186_SID_NVDISPLAY 0x09
  16. #define TEGRA186_SID_TSEC 0x0a
  17. #define TEGRA186_SID_TSECB 0x0b
  18. #define TEGRA186_SID_SE 0x0c
  19. #define TEGRA186_SID_SE1 0x0d
  20. #define TEGRA186_SID_SE2 0x0e
  21. #define TEGRA186_SID_SE3 0x0f
  22. /* GPU clients */
  23. #define TEGRA186_SID_GPU 0x10
  24. /* other SoC clients */
  25. #define TEGRA186_SID_AFI 0x11
  26. #define TEGRA186_SID_HDA 0x12
  27. #define TEGRA186_SID_ETR 0x13
  28. #define TEGRA186_SID_EQOS 0x14
  29. #define TEGRA186_SID_UFSHC 0x15
  30. #define TEGRA186_SID_AON 0x16
  31. #define TEGRA186_SID_SDMMC4 0x17
  32. #define TEGRA186_SID_SDMMC3 0x18
  33. #define TEGRA186_SID_SDMMC2 0x19
  34. #define TEGRA186_SID_SDMMC1 0x1a
  35. #define TEGRA186_SID_XUSB_HOST 0x1b
  36. #define TEGRA186_SID_XUSB_DEV 0x1c
  37. #define TEGRA186_SID_SATA 0x1d
  38. #define TEGRA186_SID_APE 0x1e
  39. #define TEGRA186_SID_SCE 0x1f
  40. /* GPC DMA clients */
  41. #define TEGRA186_SID_GPCDMA_0 0x20
  42. #define TEGRA186_SID_GPCDMA_1 0x21
  43. #define TEGRA186_SID_GPCDMA_2 0x22
  44. #define TEGRA186_SID_GPCDMA_3 0x23
  45. #define TEGRA186_SID_GPCDMA_4 0x24
  46. #define TEGRA186_SID_GPCDMA_5 0x25
  47. #define TEGRA186_SID_GPCDMA_6 0x26
  48. #define TEGRA186_SID_GPCDMA_7 0x27
  49. /* APE DMA clients */
  50. #define TEGRA186_SID_APE_1 0x28
  51. #define TEGRA186_SID_APE_2 0x29
  52. /* camera RTCPU */
  53. #define TEGRA186_SID_RCE 0x2a
  54. /* camera RTCPU on host1x address space */
  55. #define TEGRA186_SID_RCE_1X 0x2b
  56. /* APE DMA clients */
  57. #define TEGRA186_SID_APE_3 0x2c
  58. /* camera RTCPU running on APE */
  59. #define TEGRA186_SID_APE_CAM 0x2d
  60. #define TEGRA186_SID_APE_CAM_1X 0x2e
  61. /*
  62. * The BPMP has its SID value hardcoded in the firmware. Changing it requires
  63. * considerable effort.
  64. */
  65. #define TEGRA186_SID_BPMP 0x32
  66. /* for SMMU tests */
  67. #define TEGRA186_SID_SMMU_TEST 0x33
  68. /* host1x virtualization channels */
  69. #define TEGRA186_SID_HOST1X_CTX0 0x38
  70. #define TEGRA186_SID_HOST1X_CTX1 0x39
  71. #define TEGRA186_SID_HOST1X_CTX2 0x3a
  72. #define TEGRA186_SID_HOST1X_CTX3 0x3b
  73. #define TEGRA186_SID_HOST1X_CTX4 0x3c
  74. #define TEGRA186_SID_HOST1X_CTX5 0x3d
  75. #define TEGRA186_SID_HOST1X_CTX6 0x3e
  76. #define TEGRA186_SID_HOST1X_CTX7 0x3f
  77. /* host1x command buffers */
  78. #define TEGRA186_SID_HOST1X_VM0 0x40
  79. #define TEGRA186_SID_HOST1X_VM1 0x41
  80. #define TEGRA186_SID_HOST1X_VM2 0x42
  81. #define TEGRA186_SID_HOST1X_VM3 0x43
  82. #define TEGRA186_SID_HOST1X_VM4 0x44
  83. #define TEGRA186_SID_HOST1X_VM5 0x45
  84. #define TEGRA186_SID_HOST1X_VM6 0x46
  85. #define TEGRA186_SID_HOST1X_VM7 0x47
  86. /* SE data buffers */
  87. #define TEGRA186_SID_SE_VM0 0x48
  88. #define TEGRA186_SID_SE_VM1 0x49
  89. #define TEGRA186_SID_SE_VM2 0x4a
  90. #define TEGRA186_SID_SE_VM3 0x4b
  91. #define TEGRA186_SID_SE_VM4 0x4c
  92. #define TEGRA186_SID_SE_VM5 0x4d
  93. #define TEGRA186_SID_SE_VM6 0x4e
  94. #define TEGRA186_SID_SE_VM7 0x4f
  95. /*
  96. * memory client IDs
  97. */
  98. /* Misses from System Memory Management Unit (SMMU) Page Table Cache (PTC) */
  99. #define TEGRA186_MEMORY_CLIENT_PTCR 0x00
  100. /* PCIE reads */
  101. #define TEGRA186_MEMORY_CLIENT_AFIR 0x0e
  102. /* High-definition audio (HDA) reads */
  103. #define TEGRA186_MEMORY_CLIENT_HDAR 0x15
  104. /* Host channel data reads */
  105. #define TEGRA186_MEMORY_CLIENT_HOST1XDMAR 0x16
  106. #define TEGRA186_MEMORY_CLIENT_NVENCSRD 0x1c
  107. /* SATA reads */
  108. #define TEGRA186_MEMORY_CLIENT_SATAR 0x1f
  109. /* Reads from Cortex-A9 4 CPU cores via the L2 cache */
  110. #define TEGRA186_MEMORY_CLIENT_MPCORER 0x27
  111. #define TEGRA186_MEMORY_CLIENT_NVENCSWR 0x2b
  112. /* PCIE writes */
  113. #define TEGRA186_MEMORY_CLIENT_AFIW 0x31
  114. /* High-definition audio (HDA) writes */
  115. #define TEGRA186_MEMORY_CLIENT_HDAW 0x35
  116. /* Writes from Cortex-A9 4 CPU cores via the L2 cache */
  117. #define TEGRA186_MEMORY_CLIENT_MPCOREW 0x39
  118. /* SATA writes */
  119. #define TEGRA186_MEMORY_CLIENT_SATAW 0x3d
  120. /* ISP Read client for Crossbar A */
  121. #define TEGRA186_MEMORY_CLIENT_ISPRA 0x44
  122. /* ISP Write client for Crossbar A */
  123. #define TEGRA186_MEMORY_CLIENT_ISPWA 0x46
  124. /* ISP Write client Crossbar B */
  125. #define TEGRA186_MEMORY_CLIENT_ISPWB 0x47
  126. /* XUSB reads */
  127. #define TEGRA186_MEMORY_CLIENT_XUSB_HOSTR 0x4a
  128. /* XUSB_HOST writes */
  129. #define TEGRA186_MEMORY_CLIENT_XUSB_HOSTW 0x4b
  130. /* XUSB reads */
  131. #define TEGRA186_MEMORY_CLIENT_XUSB_DEVR 0x4c
  132. /* XUSB_DEV writes */
  133. #define TEGRA186_MEMORY_CLIENT_XUSB_DEVW 0x4d
  134. /* TSEC Memory Return Data Client Description */
  135. #define TEGRA186_MEMORY_CLIENT_TSECSRD 0x54
  136. /* TSEC Memory Write Client Description */
  137. #define TEGRA186_MEMORY_CLIENT_TSECSWR 0x55
  138. /* 3D, ltcx reads instance 0 */
  139. #define TEGRA186_MEMORY_CLIENT_GPUSRD 0x58
  140. /* 3D, ltcx writes instance 0 */
  141. #define TEGRA186_MEMORY_CLIENT_GPUSWR 0x59
  142. /* sdmmca memory read client */
  143. #define TEGRA186_MEMORY_CLIENT_SDMMCRA 0x60
  144. /* sdmmcbmemory read client */
  145. #define TEGRA186_MEMORY_CLIENT_SDMMCRAA 0x61
  146. /* sdmmc memory read client */
  147. #define TEGRA186_MEMORY_CLIENT_SDMMCR 0x62
  148. /* sdmmcd memory read client */
  149. #define TEGRA186_MEMORY_CLIENT_SDMMCRAB 0x63
  150. /* sdmmca memory write client */
  151. #define TEGRA186_MEMORY_CLIENT_SDMMCWA 0x64
  152. /* sdmmcb memory write client */
  153. #define TEGRA186_MEMORY_CLIENT_SDMMCWAA 0x65
  154. /* sdmmc memory write client */
  155. #define TEGRA186_MEMORY_CLIENT_SDMMCW 0x66
  156. /* sdmmcd memory write client */
  157. #define TEGRA186_MEMORY_CLIENT_SDMMCWAB 0x67
  158. #define TEGRA186_MEMORY_CLIENT_VICSRD 0x6c
  159. #define TEGRA186_MEMORY_CLIENT_VICSWR 0x6d
  160. /* VI Write client */
  161. #define TEGRA186_MEMORY_CLIENT_VIW 0x72
  162. #define TEGRA186_MEMORY_CLIENT_NVDECSRD 0x78
  163. #define TEGRA186_MEMORY_CLIENT_NVDECSWR 0x79
  164. /* Audio Processing (APE) engine reads */
  165. #define TEGRA186_MEMORY_CLIENT_APER 0x7a
  166. /* Audio Processing (APE) engine writes */
  167. #define TEGRA186_MEMORY_CLIENT_APEW 0x7b
  168. #define TEGRA186_MEMORY_CLIENT_NVJPGSRD 0x7e
  169. #define TEGRA186_MEMORY_CLIENT_NVJPGSWR 0x7f
  170. /* SE Memory Return Data Client Description */
  171. #define TEGRA186_MEMORY_CLIENT_SESRD 0x80
  172. /* SE Memory Write Client Description */
  173. #define TEGRA186_MEMORY_CLIENT_SESWR 0x81
  174. /* ETR reads */
  175. #define TEGRA186_MEMORY_CLIENT_ETRR 0x84
  176. /* ETR writes */
  177. #define TEGRA186_MEMORY_CLIENT_ETRW 0x85
  178. /* TSECB Memory Return Data Client Description */
  179. #define TEGRA186_MEMORY_CLIENT_TSECSRDB 0x86
  180. /* TSECB Memory Write Client Description */
  181. #define TEGRA186_MEMORY_CLIENT_TSECSWRB 0x87
  182. /* 3D, ltcx reads instance 1 */
  183. #define TEGRA186_MEMORY_CLIENT_GPUSRD2 0x88
  184. /* 3D, ltcx writes instance 1 */
  185. #define TEGRA186_MEMORY_CLIENT_GPUSWR2 0x89
  186. /* AXI Switch read client */
  187. #define TEGRA186_MEMORY_CLIENT_AXISR 0x8c
  188. /* AXI Switch write client */
  189. #define TEGRA186_MEMORY_CLIENT_AXISW 0x8d
  190. /* EQOS read client */
  191. #define TEGRA186_MEMORY_CLIENT_EQOSR 0x8e
  192. /* EQOS write client */
  193. #define TEGRA186_MEMORY_CLIENT_EQOSW 0x8f
  194. /* UFSHC read client */
  195. #define TEGRA186_MEMORY_CLIENT_UFSHCR 0x90
  196. /* UFSHC write client */
  197. #define TEGRA186_MEMORY_CLIENT_UFSHCW 0x91
  198. /* NVDISPLAY read client */
  199. #define TEGRA186_MEMORY_CLIENT_NVDISPLAYR 0x92
  200. /* BPMP read client */
  201. #define TEGRA186_MEMORY_CLIENT_BPMPR 0x93
  202. /* BPMP write client */
  203. #define TEGRA186_MEMORY_CLIENT_BPMPW 0x94
  204. /* BPMPDMA read client */
  205. #define TEGRA186_MEMORY_CLIENT_BPMPDMAR 0x95
  206. /* BPMPDMA write client */
  207. #define TEGRA186_MEMORY_CLIENT_BPMPDMAW 0x96
  208. /* AON read client */
  209. #define TEGRA186_MEMORY_CLIENT_AONR 0x97
  210. /* AON write client */
  211. #define TEGRA186_MEMORY_CLIENT_AONW 0x98
  212. /* AONDMA read client */
  213. #define TEGRA186_MEMORY_CLIENT_AONDMAR 0x99
  214. /* AONDMA write client */
  215. #define TEGRA186_MEMORY_CLIENT_AONDMAW 0x9a
  216. /* SCE read client */
  217. #define TEGRA186_MEMORY_CLIENT_SCER 0x9b
  218. /* SCE write client */
  219. #define TEGRA186_MEMORY_CLIENT_SCEW 0x9c
  220. /* SCEDMA read client */
  221. #define TEGRA186_MEMORY_CLIENT_SCEDMAR 0x9d
  222. /* SCEDMA write client */
  223. #define TEGRA186_MEMORY_CLIENT_SCEDMAW 0x9e
  224. /* APEDMA read client */
  225. #define TEGRA186_MEMORY_CLIENT_APEDMAR 0x9f
  226. /* APEDMA write client */
  227. #define TEGRA186_MEMORY_CLIENT_APEDMAW 0xa0
  228. /* NVDISPLAY read client instance 2 */
  229. #define TEGRA186_MEMORY_CLIENT_NVDISPLAYR1 0xa1
  230. #define TEGRA186_MEMORY_CLIENT_VICSRD1 0xa2
  231. #define TEGRA186_MEMORY_CLIENT_NVDECSRD1 0xa3
  232. #endif