e5010-mmu-regs.h 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * Imagination E5010 JPEG Encoder driver.
  4. *
  5. * Copyright (C) 2023 Texas Instruments Incorporated - https://www.ti.com/
  6. *
  7. * Author: David Huang <d-huang@ti.com>
  8. * Author: Devarsh Thakkar <devarsht@ti.com>
  9. */
  10. #ifndef _E5010_MMU_REGS_H
  11. #define _E5010_MMU_REGS_H
  12. #define MMU_MMU_DIR_BASE_ADDR_OFFSET (0x0020)
  13. #define MMU_MMU_DIR_BASE_ADDR_STRIDE (4)
  14. #define MMU_MMU_DIR_BASE_ADDR_NO_ENTRIES (4)
  15. #define MMU_MMU_DIR_BASE_ADDR_MMU_DIR_BASE_ADDR_MASK (0xFFFFFFFF)
  16. #define MMU_MMU_DIR_BASE_ADDR_MMU_DIR_BASE_ADDR_SHIFT (0)
  17. #define MMU_MMU_TILE_CFG_OFFSET (0x0040)
  18. #define MMU_MMU_TILE_CFG_STRIDE (4)
  19. #define MMU_MMU_TILE_CFG_NO_ENTRIES (4)
  20. #define MMU_MMU_TILE_CFG_TILE_128INTERLEAVE_MASK (0x00000010)
  21. #define MMU_MMU_TILE_CFG_TILE_128INTERLEAVE_SHIFT (4)
  22. #define MMU_MMU_TILE_CFG_TILE_ENABLE_MASK (0x00000008)
  23. #define MMU_MMU_TILE_CFG_TILE_ENABLE_SHIFT (3)
  24. #define MMU_MMU_TILE_CFG_TILE_STRIDE_MASK (0x00000007)
  25. #define MMU_MMU_TILE_CFG_TILE_STRIDE_SHIFT (0)
  26. #define MMU_MMU_TILE_MIN_ADDR_OFFSET (0x0050)
  27. #define MMU_MMU_TILE_MIN_ADDR_STRIDE (4)
  28. #define MMU_MMU_TILE_MIN_ADDR_NO_ENTRIES (4)
  29. #define MMU_MMU_TILE_MIN_ADDR_TILE_MIN_ADDR_MASK (0xFFFFFFFF)
  30. #define MMU_MMU_TILE_MIN_ADDR_TILE_MIN_ADDR_SHIFT (0)
  31. #define MMU_MMU_TILE_MAX_ADDR_OFFSET (0x0060)
  32. #define MMU_MMU_TILE_MAX_ADDR_STRIDE (4)
  33. #define MMU_MMU_TILE_MAX_ADDR_NO_ENTRIES (4)
  34. #define MMU_MMU_TILE_MAX_ADDR_TILE_MAX_ADDR_MASK (0xFFFFFFFF)
  35. #define MMU_MMU_TILE_MAX_ADDR_TILE_MAX_ADDR_SHIFT (0)
  36. #define MMU_MMU_CONTROL0_OFFSET (0x0000)
  37. #define MMU_MMU_CONTROL0_MMU_TILING_SCHEME_MASK (0x00000001)
  38. #define MMU_MMU_CONTROL0_MMU_TILING_SCHEME_SHIFT (0)
  39. #define MMU_MMU_CONTROL0_MMU_CACHE_POLICY_MASK (0x00000100)
  40. #define MMU_MMU_CONTROL0_MMU_CACHE_POLICY_SHIFT (8)
  41. #define MMU_MMU_CONTROL0_FORCE_CACHE_POLICY_BYPASS_MASK (0x00000200)
  42. #define MMU_MMU_CONTROL0_FORCE_CACHE_POLICY_BYPASS_SHIFT (9)
  43. #define MMU_MMU_CONTROL0_STALL_ON_PROTOCOL_FAULT_MASK (0x00001000)
  44. #define MMU_MMU_CONTROL0_STALL_ON_PROTOCOL_FAULT_SHIFT (12)
  45. #define MMU_MMU_CONTROL1_OFFSET (0x0008)
  46. #define MMU_MMU_CONTROL1_MMU_FLUSH_MASK (0x00000008)
  47. #define MMU_MMU_CONTROL1_MMU_FLUSH_SHIFT (3)
  48. #define MMU_MMU_CONTROL1_MMU_FLUSH_NO_REPS (4)
  49. #define MMU_MMU_CONTROL1_MMU_FLUSH_SIZE (1)
  50. #define MMU_MMU_CONTROL1_MMU_INVALDC_MASK (0x00000800)
  51. #define MMU_MMU_CONTROL1_MMU_INVALDC_SHIFT (11)
  52. #define MMU_MMU_CONTROL1_MMU_INVALDC_NO_REPS (4)
  53. #define MMU_MMU_CONTROL1_MMU_INVALDC_SIZE (1)
  54. #define MMU_MMU_CONTROL1_MMU_FAULT_CLEAR_MASK (0x00010000)
  55. #define MMU_MMU_CONTROL1_MMU_FAULT_CLEAR_SHIFT (16)
  56. #define MMU_MMU_CONTROL1_PROTOCOL_FAULT_CLEAR_MASK (0x00100000)
  57. #define MMU_MMU_CONTROL1_PROTOCOL_FAULT_CLEAR_SHIFT (20)
  58. #define MMU_MMU_CONTROL1_MMU_PAUSE_SET_MASK (0x01000000)
  59. #define MMU_MMU_CONTROL1_MMU_PAUSE_SET_SHIFT (24)
  60. #define MMU_MMU_CONTROL1_MMU_PAUSE_CLEAR_MASK (0x02000000)
  61. #define MMU_MMU_CONTROL1_MMU_PAUSE_CLEAR_SHIFT (25)
  62. #define MMU_MMU_CONTROL1_MMU_SOFT_RESET_MASK (0x10000000)
  63. #define MMU_MMU_CONTROL1_MMU_SOFT_RESET_SHIFT (28)
  64. #define MMU_MMU_BANK_INDEX_OFFSET (0x0010)
  65. #define MMU_MMU_BANK_INDEX_MMU_BANK_INDEX_MASK (0xC0000000)
  66. #define MMU_MMU_BANK_INDEX_MMU_BANK_INDEX_SHIFT (30)
  67. #define MMU_MMU_BANK_INDEX_MMU_BANK_INDEX_NO_REPS (16)
  68. #define MMU_MMU_BANK_INDEX_MMU_BANK_INDEX_SIZE (2)
  69. #define MMU_REQUEST_PRIORITY_ENABLE_OFFSET (0x0018)
  70. #define MMU_REQUEST_PRIORITY_ENABLE_CMD_PRIORITY_ENABLE_MASK (0x00008000)
  71. #define MMU_REQUEST_PRIORITY_ENABLE_CMD_PRIORITY_ENABLE_SHIFT (15)
  72. #define MMU_REQUEST_PRIORITY_ENABLE_CMD_PRIORITY_ENABLE_NO_REPS (16)
  73. #define MMU_REQUEST_PRIORITY_ENABLE_CMD_PRIORITY_ENABLE_SIZE (1)
  74. #define MMU_REQUEST_PRIORITY_ENABLE_CMD_MMU_PRIORITY_ENABLE_MASK (0x00010000)
  75. #define MMU_REQUEST_PRIORITY_ENABLE_CMD_MMU_PRIORITY_ENABLE_SHIFT (16)
  76. #define MMU_REQUEST_LIMITED_THROUGHPUT_OFFSET (0x001C)
  77. #define MMU_REQUEST_LIMITED_THROUGHPUT_LIMITED_WORDS_MASK (0x000003FF)
  78. #define MMU_REQUEST_LIMITED_THROUGHPUT_LIMITED_WORDS_SHIFT (0)
  79. #define MMU_REQUEST_LIMITED_THROUGHPUT_REQUEST_GAP_MASK (0x0FFF0000)
  80. #define MMU_REQUEST_LIMITED_THROUGHPUT_REQUEST_GAP_SHIFT (16)
  81. #define MMU_MMU_ADDRESS_CONTROL_OFFSET (0x0070)
  82. #define MMU_MMU_ADDRESS_CONTROL_TRUSTED (IMG_TRUE)
  83. #define MMU_MMU_ADDRESS_CONTROL_MMU_BYPASS_MASK (0x00000001)
  84. #define MMU_MMU_ADDRESS_CONTROL_MMU_BYPASS_SHIFT (0)
  85. #define MMU_MMU_ADDRESS_CONTROL_MMU_ENABLE_EXT_ADDRESSING_MASK (0x00000010)
  86. #define MMU_MMU_ADDRESS_CONTROL_MMU_ENABLE_EXT_ADDRESSING_SHIFT (4)
  87. #define MMU_MMU_ADDRESS_CONTROL_UPPER_ADDRESS_FIXED_MASK (0x00FF0000)
  88. #define MMU_MMU_ADDRESS_CONTROL_UPPER_ADDRESS_FIXED_SHIFT (16)
  89. #define MMU_MMU_CONFIG0_OFFSET (0x0080)
  90. #define MMU_MMU_CONFIG0_NUM_REQUESTORS_MASK (0x0000000F)
  91. #define MMU_MMU_CONFIG0_NUM_REQUESTORS_SHIFT (0)
  92. #define MMU_MMU_CONFIG0_EXTENDED_ADDR_RANGE_MASK (0x000000F0)
  93. #define MMU_MMU_CONFIG0_EXTENDED_ADDR_RANGE_SHIFT (4)
  94. #define MMU_MMU_CONFIG0_GROUP_OVERRIDE_SIZE_MASK (0x00000700)
  95. #define MMU_MMU_CONFIG0_GROUP_OVERRIDE_SIZE_SHIFT (8)
  96. #define MMU_MMU_CONFIG0_ADDR_COHERENCY_SUPPORTED_MASK (0x00001000)
  97. #define MMU_MMU_CONFIG0_ADDR_COHERENCY_SUPPORTED_SHIFT (12)
  98. #define MMU_MMU_CONFIG0_MMU_SUPPORTED_MASK (0x00002000)
  99. #define MMU_MMU_CONFIG0_MMU_SUPPORTED_SHIFT (13)
  100. #define MMU_MMU_CONFIG0_TILE_ADDR_GRANULARITY_MASK (0x001F0000)
  101. #define MMU_MMU_CONFIG0_TILE_ADDR_GRANULARITY_SHIFT (16)
  102. #define MMU_MMU_CONFIG0_NO_READ_REORDER_MASK (0x00200000)
  103. #define MMU_MMU_CONFIG0_NO_READ_REORDER_SHIFT (21)
  104. #define MMU_MMU_CONFIG0_TAGS_SUPPORTED_MASK (0xFFC00000)
  105. #define MMU_MMU_CONFIG0_TAGS_SUPPORTED_SHIFT (22)
  106. #define MMU_MMU_CONFIG1_OFFSET (0x0084)
  107. #define MMU_MMU_CONFIG1_PAGE_SIZE_MASK (0x0000000F)
  108. #define MMU_MMU_CONFIG1_PAGE_SIZE_SHIFT (0)
  109. #define MMU_MMU_CONFIG1_PAGE_CACHE_ENTRIES_MASK (0x0000FF00)
  110. #define MMU_MMU_CONFIG1_PAGE_CACHE_ENTRIES_SHIFT (8)
  111. #define MMU_MMU_CONFIG1_DIR_CACHE_ENTRIES_MASK (0x001F0000)
  112. #define MMU_MMU_CONFIG1_DIR_CACHE_ENTRIES_SHIFT (16)
  113. #define MMU_MMU_CONFIG1_BANDWIDTH_COUNT_SUPPORTED_MASK (0x01000000)
  114. #define MMU_MMU_CONFIG1_BANDWIDTH_COUNT_SUPPORTED_SHIFT (24)
  115. #define MMU_MMU_CONFIG1_STALL_COUNT_SUPPORTED_MASK (0x02000000)
  116. #define MMU_MMU_CONFIG1_STALL_COUNT_SUPPORTED_SHIFT (25)
  117. #define MMU_MMU_CONFIG1_LATENCY_COUNT_SUPPORTED_MASK (0x04000000)
  118. #define MMU_MMU_CONFIG1_LATENCY_COUNT_SUPPORTED_SHIFT (26)
  119. #define MMU_MMU_STATUS0_OFFSET (0x0088)
  120. #define MMU_MMU_STATUS0_MMU_PF_N_RW_MASK (0x00000001)
  121. #define MMU_MMU_STATUS0_MMU_PF_N_RW_SHIFT (0)
  122. #define MMU_MMU_STATUS0_MMU_FAULT_ADDR_MASK (0xFFFFF000)
  123. #define MMU_MMU_STATUS0_MMU_FAULT_ADDR_SHIFT (12)
  124. #define MMU_MMU_STATUS1_OFFSET (0x008C)
  125. #define MMU_MMU_STATUS1_MMU_FAULT_REQ_STAT_MASK (0x0000FFFF)
  126. #define MMU_MMU_STATUS1_MMU_FAULT_REQ_STAT_SHIFT (0)
  127. #define MMU_MMU_STATUS1_MMU_FAULT_REQ_ID_MASK (0x000F0000)
  128. #define MMU_MMU_STATUS1_MMU_FAULT_REQ_ID_SHIFT (16)
  129. #define MMU_MMU_STATUS1_MMU_FAULT_INDEX_MASK (0x03000000)
  130. #define MMU_MMU_STATUS1_MMU_FAULT_INDEX_SHIFT (24)
  131. #define MMU_MMU_STATUS1_MMU_FAULT_RNW_MASK (0x10000000)
  132. #define MMU_MMU_STATUS1_MMU_FAULT_RNW_SHIFT (28)
  133. #define MMU_MMU_MEM_REQ_OFFSET (0x0090)
  134. #define MMU_MMU_MEM_REQ_TAG_OUTSTANDING_MASK (0x000003FF)
  135. #define MMU_MMU_MEM_REQ_TAG_OUTSTANDING_SHIFT (0)
  136. #define MMU_MMU_MEM_REQ_EXT_WRRESP_FAULT_MASK (0x00001000)
  137. #define MMU_MMU_MEM_REQ_EXT_WRRESP_FAULT_SHIFT (12)
  138. #define MMU_MMU_MEM_REQ_EXT_RDRESP_FAULT_MASK (0x00002000)
  139. #define MMU_MMU_MEM_REQ_EXT_RDRESP_FAULT_SHIFT (13)
  140. #define MMU_MMU_MEM_REQ_EXT_READ_BURST_FAULT_MASK (0x00004000)
  141. #define MMU_MMU_MEM_REQ_EXT_READ_BURST_FAULT_SHIFT (14)
  142. #define MMU_MMU_MEM_REQ_INT_PROTOCOL_FAULT_MASK (0x80000000)
  143. #define MMU_MMU_MEM_REQ_INT_PROTOCOL_FAULT_SHIFT (31)
  144. #define MMU_MMU_MEM_REQ_INT_PROTOCOL_FAULT_NO_REPS (16)
  145. #define MMU_MMU_MEM_REQ_INT_PROTOCOL_FAULT_SIZE (1)
  146. #define MMU_MMU_FAULT_SELECT_OFFSET (0x00A0)
  147. #define MMU_MMU_FAULT_SELECT_MMU_FAULT_SELECT_MASK (0x0000000F)
  148. #define MMU_MMU_FAULT_SELECT_MMU_FAULT_SELECT_SHIFT (0)
  149. #define MMU_PROTOCOL_FAULT_OFFSET (0x00A8)
  150. #define MMU_PROTOCOL_FAULT_FAULT_PAGE_BREAK_MASK (0x00000001)
  151. #define MMU_PROTOCOL_FAULT_FAULT_PAGE_BREAK_SHIFT (0)
  152. #define MMU_PROTOCOL_FAULT_FAULT_WRITE_MASK (0x00000010)
  153. #define MMU_PROTOCOL_FAULT_FAULT_WRITE_SHIFT (4)
  154. #define MMU_PROTOCOL_FAULT_FAULT_READ_MASK (0x00000020)
  155. #define MMU_PROTOCOL_FAULT_FAULT_READ_SHIFT (5)
  156. #define MMU_TOTAL_READ_REQ_OFFSET (0x0100)
  157. #define MMU_TOTAL_READ_REQ_TOTAL_READ_REQ_MASK (0xFFFFFFFF)
  158. #define MMU_TOTAL_READ_REQ_TOTAL_READ_REQ_SHIFT (0)
  159. #define MMU_TOTAL_WRITE_REQ_OFFSET (0x0104)
  160. #define MMU_TOTAL_WRITE_REQ_TOTAL_WRITE_REQ_MASK (0xFFFFFFFF)
  161. #define MMU_TOTAL_WRITE_REQ_TOTAL_WRITE_REQ_SHIFT (0)
  162. #define MMU_READS_LESS_64_REQ_OFFSET (0x0108)
  163. #define MMU_READS_LESS_64_REQ_READS_LESS_64_REQ_MASK (0xFFFFFFFF)
  164. #define MMU_READS_LESS_64_REQ_READS_LESS_64_REQ_SHIFT (0)
  165. #define MMU_WRITES_LESS_64_REQ_OFFSET (0x010C)
  166. #define MMU_WRITES_LESS_64_REQ_WRITES_LESS_64_REQ_MASK (0xFFFFFFFF)
  167. #define MMU_WRITES_LESS_64_REQ_WRITES_LESS_64_REQ_SHIFT (0)
  168. #define MMU_EXT_CMD_STALL_OFFSET (0x0120)
  169. #define MMU_EXT_CMD_STALL_EXT_CMD_STALL_MASK (0xFFFFFFFF)
  170. #define MMU_EXT_CMD_STALL_EXT_CMD_STALL_SHIFT (0)
  171. #define MMU_WRITE_REQ_STALL_OFFSET (0x0124)
  172. #define MMU_WRITE_REQ_STALL_WRITE_REQ_STALL_MASK (0xFFFFFFFF)
  173. #define MMU_WRITE_REQ_STALL_WRITE_REQ_STALL_SHIFT (0)
  174. #define MMU_MMU_MISS_STALL_OFFSET (0x0128)
  175. #define MMU_MMU_MISS_STALL_MMU_MISS_STALL_MASK (0xFFFFFFFF)
  176. #define MMU_MMU_MISS_STALL_MMU_MISS_STALL_SHIFT (0)
  177. #define MMU_ADDRESS_STALL_OFFSET (0x012C)
  178. #define MMU_ADDRESS_STALL_ADDRESS_STALL_MASK (0xFFFFFFFF)
  179. #define MMU_ADDRESS_STALL_ADDRESS_STALL_SHIFT (0)
  180. #define MMU_TAG_STALL_OFFSET (0x0130)
  181. #define MMU_TAG_STALL_TAG_STALL_MASK (0xFFFFFFFF)
  182. #define MMU_TAG_STALL_TAG_STALL_SHIFT (0)
  183. #define MMU_PEAK_READ_OUTSTANDING_OFFSET (0x0140)
  184. #define MMU_PEAK_READ_OUTSTANDING_PEAK_TAG_OUTSTANDING_MASK (0x000003FF)
  185. #define MMU_PEAK_READ_OUTSTANDING_PEAK_TAG_OUTSTANDING_SHIFT (0)
  186. #define MMU_PEAK_READ_OUTSTANDING_PEAK_READ_LATENCY_MASK (0xFFFF0000)
  187. #define MMU_PEAK_READ_OUTSTANDING_PEAK_READ_LATENCY_SHIFT (16)
  188. #define MMU_AVERAGE_READ_LATENCY_OFFSET (0x0144)
  189. #define MMU_AVERAGE_READ_LATENCY_AVERAGE_READ_LATENCY_MASK (0xFFFFFFFF)
  190. #define MMU_AVERAGE_READ_LATENCY_AVERAGE_READ_LATENCY_SHIFT (0)
  191. #define MMU_STATISTICS_CONTROL_OFFSET (0x0160)
  192. #define MMU_STATISTICS_CONTROL_BANDWIDTH_STATS_INIT_MASK (0x00000001)
  193. #define MMU_STATISTICS_CONTROL_BANDWIDTH_STATS_INIT_SHIFT (0)
  194. #define MMU_STATISTICS_CONTROL_STALL_STATS_INIT_MASK (0x00000002)
  195. #define MMU_STATISTICS_CONTROL_STALL_STATS_INIT_SHIFT (1)
  196. #define MMU_STATISTICS_CONTROL_LATENCY_STATS_INIT_MASK (0x00000004)
  197. #define MMU_STATISTICS_CONTROL_LATENCY_STATS_INIT_SHIFT (2)
  198. #define MMU_MMU_VERSION_OFFSET (0x01D0)
  199. #define MMU_MMU_VERSION_MMU_MAJOR_REV_MASK (0x00FF0000)
  200. #define MMU_MMU_VERSION_MMU_MAJOR_REV_SHIFT (16)
  201. #define MMU_MMU_VERSION_MMU_MINOR_REV_MASK (0x0000FF00)
  202. #define MMU_MMU_VERSION_MMU_MINOR_REV_SHIFT (8)
  203. #define MMU_MMU_VERSION_MMU_MAINT_REV_MASK (0x000000FF)
  204. #define MMU_MMU_VERSION_MMU_MAINT_REV_SHIFT (0)
  205. #define MMU_BYTE_SIZE (0x01D4)
  206. #endif