]> Git Repo - linux.git/blob - drivers/media/platform/imagination/e5010-mmu-regs.h
dma-mapping: don't return errors from dma_set_max_seg_size
[linux.git] / drivers / media / platform / imagination / e5010-mmu-regs.h
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 <[email protected]>
8  * Author: Devarsh Thakkar <[email protected]>
9  */
10
11 #ifndef _E5010_MMU_REGS_H
12 #define _E5010_MMU_REGS_H
13
14 #define MMU_MMU_DIR_BASE_ADDR_OFFSET                                    (0x0020)
15 #define MMU_MMU_DIR_BASE_ADDR_STRIDE                                    (4)
16 #define MMU_MMU_DIR_BASE_ADDR_NO_ENTRIES                                (4)
17
18 #define MMU_MMU_DIR_BASE_ADDR_MMU_DIR_BASE_ADDR_MASK                    (0xFFFFFFFF)
19 #define MMU_MMU_DIR_BASE_ADDR_MMU_DIR_BASE_ADDR_SHIFT                   (0)
20
21 #define MMU_MMU_TILE_CFG_OFFSET                                         (0x0040)
22 #define MMU_MMU_TILE_CFG_STRIDE                                         (4)
23 #define MMU_MMU_TILE_CFG_NO_ENTRIES                                     (4)
24
25 #define MMU_MMU_TILE_CFG_TILE_128INTERLEAVE_MASK                        (0x00000010)
26 #define MMU_MMU_TILE_CFG_TILE_128INTERLEAVE_SHIFT                       (4)
27
28 #define MMU_MMU_TILE_CFG_TILE_ENABLE_MASK                               (0x00000008)
29 #define MMU_MMU_TILE_CFG_TILE_ENABLE_SHIFT                              (3)
30
31 #define MMU_MMU_TILE_CFG_TILE_STRIDE_MASK                               (0x00000007)
32 #define MMU_MMU_TILE_CFG_TILE_STRIDE_SHIFT                              (0)
33
34 #define MMU_MMU_TILE_MIN_ADDR_OFFSET                                    (0x0050)
35 #define MMU_MMU_TILE_MIN_ADDR_STRIDE                                    (4)
36 #define MMU_MMU_TILE_MIN_ADDR_NO_ENTRIES                                (4)
37
38 #define MMU_MMU_TILE_MIN_ADDR_TILE_MIN_ADDR_MASK                        (0xFFFFFFFF)
39 #define MMU_MMU_TILE_MIN_ADDR_TILE_MIN_ADDR_SHIFT                       (0)
40
41 #define MMU_MMU_TILE_MAX_ADDR_OFFSET                                    (0x0060)
42 #define MMU_MMU_TILE_MAX_ADDR_STRIDE                                    (4)
43 #define MMU_MMU_TILE_MAX_ADDR_NO_ENTRIES                                (4)
44
45 #define MMU_MMU_TILE_MAX_ADDR_TILE_MAX_ADDR_MASK                        (0xFFFFFFFF)
46 #define MMU_MMU_TILE_MAX_ADDR_TILE_MAX_ADDR_SHIFT                       (0)
47
48 #define MMU_MMU_CONTROL0_OFFSET                                         (0x0000)
49
50 #define MMU_MMU_CONTROL0_MMU_TILING_SCHEME_MASK                         (0x00000001)
51 #define MMU_MMU_CONTROL0_MMU_TILING_SCHEME_SHIFT                        (0)
52
53 #define MMU_MMU_CONTROL0_MMU_CACHE_POLICY_MASK                          (0x00000100)
54 #define MMU_MMU_CONTROL0_MMU_CACHE_POLICY_SHIFT                         (8)
55
56 #define MMU_MMU_CONTROL0_FORCE_CACHE_POLICY_BYPASS_MASK                 (0x00000200)
57 #define MMU_MMU_CONTROL0_FORCE_CACHE_POLICY_BYPASS_SHIFT                (9)
58
59 #define MMU_MMU_CONTROL0_STALL_ON_PROTOCOL_FAULT_MASK                   (0x00001000)
60 #define MMU_MMU_CONTROL0_STALL_ON_PROTOCOL_FAULT_SHIFT                  (12)
61
62 #define MMU_MMU_CONTROL1_OFFSET                                         (0x0008)
63
64 #define MMU_MMU_CONTROL1_MMU_FLUSH_MASK                                 (0x00000008)
65 #define MMU_MMU_CONTROL1_MMU_FLUSH_SHIFT                                (3)
66 #define MMU_MMU_CONTROL1_MMU_FLUSH_NO_REPS                              (4)
67 #define MMU_MMU_CONTROL1_MMU_FLUSH_SIZE                                 (1)
68
69 #define MMU_MMU_CONTROL1_MMU_INVALDC_MASK                               (0x00000800)
70 #define MMU_MMU_CONTROL1_MMU_INVALDC_SHIFT                              (11)
71 #define MMU_MMU_CONTROL1_MMU_INVALDC_NO_REPS                            (4)
72 #define MMU_MMU_CONTROL1_MMU_INVALDC_SIZE                               (1)
73
74 #define MMU_MMU_CONTROL1_MMU_FAULT_CLEAR_MASK                           (0x00010000)
75 #define MMU_MMU_CONTROL1_MMU_FAULT_CLEAR_SHIFT                          (16)
76
77 #define MMU_MMU_CONTROL1_PROTOCOL_FAULT_CLEAR_MASK                      (0x00100000)
78 #define MMU_MMU_CONTROL1_PROTOCOL_FAULT_CLEAR_SHIFT                     (20)
79
80 #define MMU_MMU_CONTROL1_MMU_PAUSE_SET_MASK                             (0x01000000)
81 #define MMU_MMU_CONTROL1_MMU_PAUSE_SET_SHIFT                            (24)
82
83 #define MMU_MMU_CONTROL1_MMU_PAUSE_CLEAR_MASK                           (0x02000000)
84 #define MMU_MMU_CONTROL1_MMU_PAUSE_CLEAR_SHIFT                          (25)
85
86 #define MMU_MMU_CONTROL1_MMU_SOFT_RESET_MASK                            (0x10000000)
87 #define MMU_MMU_CONTROL1_MMU_SOFT_RESET_SHIFT                           (28)
88
89 #define MMU_MMU_BANK_INDEX_OFFSET                                       (0x0010)
90
91 #define MMU_MMU_BANK_INDEX_MMU_BANK_INDEX_MASK                          (0xC0000000)
92 #define MMU_MMU_BANK_INDEX_MMU_BANK_INDEX_SHIFT                         (30)
93 #define MMU_MMU_BANK_INDEX_MMU_BANK_INDEX_NO_REPS                       (16)
94 #define MMU_MMU_BANK_INDEX_MMU_BANK_INDEX_SIZE                          (2)
95
96 #define MMU_REQUEST_PRIORITY_ENABLE_OFFSET                              (0x0018)
97
98 #define MMU_REQUEST_PRIORITY_ENABLE_CMD_PRIORITY_ENABLE_MASK            (0x00008000)
99 #define MMU_REQUEST_PRIORITY_ENABLE_CMD_PRIORITY_ENABLE_SHIFT           (15)
100 #define MMU_REQUEST_PRIORITY_ENABLE_CMD_PRIORITY_ENABLE_NO_REPS         (16)
101 #define MMU_REQUEST_PRIORITY_ENABLE_CMD_PRIORITY_ENABLE_SIZE            (1)
102
103 #define MMU_REQUEST_PRIORITY_ENABLE_CMD_MMU_PRIORITY_ENABLE_MASK        (0x00010000)
104 #define MMU_REQUEST_PRIORITY_ENABLE_CMD_MMU_PRIORITY_ENABLE_SHIFT       (16)
105
106 #define MMU_REQUEST_LIMITED_THROUGHPUT_OFFSET                           (0x001C)
107
108 #define MMU_REQUEST_LIMITED_THROUGHPUT_LIMITED_WORDS_MASK               (0x000003FF)
109 #define MMU_REQUEST_LIMITED_THROUGHPUT_LIMITED_WORDS_SHIFT              (0)
110
111 #define MMU_REQUEST_LIMITED_THROUGHPUT_REQUEST_GAP_MASK                 (0x0FFF0000)
112 #define MMU_REQUEST_LIMITED_THROUGHPUT_REQUEST_GAP_SHIFT                (16)
113
114 #define MMU_MMU_ADDRESS_CONTROL_OFFSET                                  (0x0070)
115 #define MMU_MMU_ADDRESS_CONTROL_TRUSTED                                 (IMG_TRUE)
116
117 #define MMU_MMU_ADDRESS_CONTROL_MMU_BYPASS_MASK                         (0x00000001)
118 #define MMU_MMU_ADDRESS_CONTROL_MMU_BYPASS_SHIFT                        (0)
119
120 #define MMU_MMU_ADDRESS_CONTROL_MMU_ENABLE_EXT_ADDRESSING_MASK          (0x00000010)
121 #define MMU_MMU_ADDRESS_CONTROL_MMU_ENABLE_EXT_ADDRESSING_SHIFT         (4)
122
123 #define MMU_MMU_ADDRESS_CONTROL_UPPER_ADDRESS_FIXED_MASK                (0x00FF0000)
124 #define MMU_MMU_ADDRESS_CONTROL_UPPER_ADDRESS_FIXED_SHIFT               (16)
125
126 #define MMU_MMU_CONFIG0_OFFSET                                          (0x0080)
127
128 #define MMU_MMU_CONFIG0_NUM_REQUESTORS_MASK                             (0x0000000F)
129 #define MMU_MMU_CONFIG0_NUM_REQUESTORS_SHIFT                            (0)
130
131 #define MMU_MMU_CONFIG0_EXTENDED_ADDR_RANGE_MASK                        (0x000000F0)
132 #define MMU_MMU_CONFIG0_EXTENDED_ADDR_RANGE_SHIFT                       (4)
133
134 #define MMU_MMU_CONFIG0_GROUP_OVERRIDE_SIZE_MASK                        (0x00000700)
135 #define MMU_MMU_CONFIG0_GROUP_OVERRIDE_SIZE_SHIFT                       (8)
136
137 #define MMU_MMU_CONFIG0_ADDR_COHERENCY_SUPPORTED_MASK                   (0x00001000)
138 #define MMU_MMU_CONFIG0_ADDR_COHERENCY_SUPPORTED_SHIFT                  (12)
139
140 #define MMU_MMU_CONFIG0_MMU_SUPPORTED_MASK                              (0x00002000)
141 #define MMU_MMU_CONFIG0_MMU_SUPPORTED_SHIFT                             (13)
142
143 #define MMU_MMU_CONFIG0_TILE_ADDR_GRANULARITY_MASK                      (0x001F0000)
144 #define MMU_MMU_CONFIG0_TILE_ADDR_GRANULARITY_SHIFT                     (16)
145
146 #define MMU_MMU_CONFIG0_NO_READ_REORDER_MASK                            (0x00200000)
147 #define MMU_MMU_CONFIG0_NO_READ_REORDER_SHIFT                           (21)
148
149 #define MMU_MMU_CONFIG0_TAGS_SUPPORTED_MASK                             (0xFFC00000)
150 #define MMU_MMU_CONFIG0_TAGS_SUPPORTED_SHIFT                            (22)
151
152 #define MMU_MMU_CONFIG1_OFFSET                                          (0x0084)
153
154 #define MMU_MMU_CONFIG1_PAGE_SIZE_MASK                                  (0x0000000F)
155 #define MMU_MMU_CONFIG1_PAGE_SIZE_SHIFT                                 (0)
156
157 #define MMU_MMU_CONFIG1_PAGE_CACHE_ENTRIES_MASK                         (0x0000FF00)
158 #define MMU_MMU_CONFIG1_PAGE_CACHE_ENTRIES_SHIFT                        (8)
159
160 #define MMU_MMU_CONFIG1_DIR_CACHE_ENTRIES_MASK                          (0x001F0000)
161 #define MMU_MMU_CONFIG1_DIR_CACHE_ENTRIES_SHIFT                         (16)
162
163 #define MMU_MMU_CONFIG1_BANDWIDTH_COUNT_SUPPORTED_MASK                  (0x01000000)
164 #define MMU_MMU_CONFIG1_BANDWIDTH_COUNT_SUPPORTED_SHIFT                 (24)
165
166 #define MMU_MMU_CONFIG1_STALL_COUNT_SUPPORTED_MASK                      (0x02000000)
167 #define MMU_MMU_CONFIG1_STALL_COUNT_SUPPORTED_SHIFT                     (25)
168
169 #define MMU_MMU_CONFIG1_LATENCY_COUNT_SUPPORTED_MASK                    (0x04000000)
170 #define MMU_MMU_CONFIG1_LATENCY_COUNT_SUPPORTED_SHIFT                   (26)
171
172 #define MMU_MMU_STATUS0_OFFSET                                          (0x0088)
173
174 #define MMU_MMU_STATUS0_MMU_PF_N_RW_MASK                                (0x00000001)
175 #define MMU_MMU_STATUS0_MMU_PF_N_RW_SHIFT                               (0)
176
177 #define MMU_MMU_STATUS0_MMU_FAULT_ADDR_MASK                             (0xFFFFF000)
178 #define MMU_MMU_STATUS0_MMU_FAULT_ADDR_SHIFT                            (12)
179
180 #define MMU_MMU_STATUS1_OFFSET                                          (0x008C)
181
182 #define MMU_MMU_STATUS1_MMU_FAULT_REQ_STAT_MASK                         (0x0000FFFF)
183 #define MMU_MMU_STATUS1_MMU_FAULT_REQ_STAT_SHIFT                        (0)
184
185 #define MMU_MMU_STATUS1_MMU_FAULT_REQ_ID_MASK                           (0x000F0000)
186 #define MMU_MMU_STATUS1_MMU_FAULT_REQ_ID_SHIFT                          (16)
187
188 #define MMU_MMU_STATUS1_MMU_FAULT_INDEX_MASK                            (0x03000000)
189 #define MMU_MMU_STATUS1_MMU_FAULT_INDEX_SHIFT                           (24)
190
191 #define MMU_MMU_STATUS1_MMU_FAULT_RNW_MASK                              (0x10000000)
192 #define MMU_MMU_STATUS1_MMU_FAULT_RNW_SHIFT                             (28)
193
194 #define MMU_MMU_MEM_REQ_OFFSET                                          (0x0090)
195
196 #define MMU_MMU_MEM_REQ_TAG_OUTSTANDING_MASK                            (0x000003FF)
197 #define MMU_MMU_MEM_REQ_TAG_OUTSTANDING_SHIFT                           (0)
198
199 #define MMU_MMU_MEM_REQ_EXT_WRRESP_FAULT_MASK                           (0x00001000)
200 #define MMU_MMU_MEM_REQ_EXT_WRRESP_FAULT_SHIFT                          (12)
201
202 #define MMU_MMU_MEM_REQ_EXT_RDRESP_FAULT_MASK                           (0x00002000)
203 #define MMU_MMU_MEM_REQ_EXT_RDRESP_FAULT_SHIFT                          (13)
204
205 #define MMU_MMU_MEM_REQ_EXT_READ_BURST_FAULT_MASK                       (0x00004000)
206 #define MMU_MMU_MEM_REQ_EXT_READ_BURST_FAULT_SHIFT                      (14)
207
208 #define MMU_MMU_MEM_REQ_INT_PROTOCOL_FAULT_MASK                         (0x80000000)
209 #define MMU_MMU_MEM_REQ_INT_PROTOCOL_FAULT_SHIFT                        (31)
210 #define MMU_MMU_MEM_REQ_INT_PROTOCOL_FAULT_NO_REPS                      (16)
211 #define MMU_MMU_MEM_REQ_INT_PROTOCOL_FAULT_SIZE                         (1)
212
213 #define MMU_MMU_FAULT_SELECT_OFFSET                                     (0x00A0)
214
215 #define MMU_MMU_FAULT_SELECT_MMU_FAULT_SELECT_MASK                      (0x0000000F)
216 #define MMU_MMU_FAULT_SELECT_MMU_FAULT_SELECT_SHIFT                     (0)
217
218 #define MMU_PROTOCOL_FAULT_OFFSET                                       (0x00A8)
219
220 #define MMU_PROTOCOL_FAULT_FAULT_PAGE_BREAK_MASK                        (0x00000001)
221 #define MMU_PROTOCOL_FAULT_FAULT_PAGE_BREAK_SHIFT                       (0)
222
223 #define MMU_PROTOCOL_FAULT_FAULT_WRITE_MASK                             (0x00000010)
224 #define MMU_PROTOCOL_FAULT_FAULT_WRITE_SHIFT                            (4)
225
226 #define MMU_PROTOCOL_FAULT_FAULT_READ_MASK                              (0x00000020)
227 #define MMU_PROTOCOL_FAULT_FAULT_READ_SHIFT                             (5)
228
229 #define MMU_TOTAL_READ_REQ_OFFSET                                       (0x0100)
230
231 #define MMU_TOTAL_READ_REQ_TOTAL_READ_REQ_MASK                          (0xFFFFFFFF)
232 #define MMU_TOTAL_READ_REQ_TOTAL_READ_REQ_SHIFT                         (0)
233
234 #define MMU_TOTAL_WRITE_REQ_OFFSET                                      (0x0104)
235
236 #define MMU_TOTAL_WRITE_REQ_TOTAL_WRITE_REQ_MASK                        (0xFFFFFFFF)
237 #define MMU_TOTAL_WRITE_REQ_TOTAL_WRITE_REQ_SHIFT                       (0)
238
239 #define MMU_READS_LESS_64_REQ_OFFSET                                    (0x0108)
240
241 #define MMU_READS_LESS_64_REQ_READS_LESS_64_REQ_MASK                    (0xFFFFFFFF)
242 #define MMU_READS_LESS_64_REQ_READS_LESS_64_REQ_SHIFT                   (0)
243
244 #define MMU_WRITES_LESS_64_REQ_OFFSET                                   (0x010C)
245
246 #define MMU_WRITES_LESS_64_REQ_WRITES_LESS_64_REQ_MASK                  (0xFFFFFFFF)
247 #define MMU_WRITES_LESS_64_REQ_WRITES_LESS_64_REQ_SHIFT                 (0)
248
249 #define MMU_EXT_CMD_STALL_OFFSET                                        (0x0120)
250
251 #define MMU_EXT_CMD_STALL_EXT_CMD_STALL_MASK                            (0xFFFFFFFF)
252 #define MMU_EXT_CMD_STALL_EXT_CMD_STALL_SHIFT                           (0)
253
254 #define MMU_WRITE_REQ_STALL_OFFSET                                      (0x0124)
255
256 #define MMU_WRITE_REQ_STALL_WRITE_REQ_STALL_MASK                        (0xFFFFFFFF)
257 #define MMU_WRITE_REQ_STALL_WRITE_REQ_STALL_SHIFT                       (0)
258
259 #define MMU_MMU_MISS_STALL_OFFSET                                       (0x0128)
260
261 #define MMU_MMU_MISS_STALL_MMU_MISS_STALL_MASK                          (0xFFFFFFFF)
262 #define MMU_MMU_MISS_STALL_MMU_MISS_STALL_SHIFT                         (0)
263
264 #define MMU_ADDRESS_STALL_OFFSET                                        (0x012C)
265
266 #define MMU_ADDRESS_STALL_ADDRESS_STALL_MASK                            (0xFFFFFFFF)
267 #define MMU_ADDRESS_STALL_ADDRESS_STALL_SHIFT                           (0)
268
269 #define MMU_TAG_STALL_OFFSET                                            (0x0130)
270
271 #define MMU_TAG_STALL_TAG_STALL_MASK                                    (0xFFFFFFFF)
272 #define MMU_TAG_STALL_TAG_STALL_SHIFT                                   (0)
273
274 #define MMU_PEAK_READ_OUTSTANDING_OFFSET                                (0x0140)
275
276 #define MMU_PEAK_READ_OUTSTANDING_PEAK_TAG_OUTSTANDING_MASK             (0x000003FF)
277 #define MMU_PEAK_READ_OUTSTANDING_PEAK_TAG_OUTSTANDING_SHIFT            (0)
278
279 #define MMU_PEAK_READ_OUTSTANDING_PEAK_READ_LATENCY_MASK                (0xFFFF0000)
280 #define MMU_PEAK_READ_OUTSTANDING_PEAK_READ_LATENCY_SHIFT               (16)
281
282 #define MMU_AVERAGE_READ_LATENCY_OFFSET                                 (0x0144)
283
284 #define MMU_AVERAGE_READ_LATENCY_AVERAGE_READ_LATENCY_MASK              (0xFFFFFFFF)
285 #define MMU_AVERAGE_READ_LATENCY_AVERAGE_READ_LATENCY_SHIFT             (0)
286
287 #define MMU_STATISTICS_CONTROL_OFFSET                                   (0x0160)
288
289 #define MMU_STATISTICS_CONTROL_BANDWIDTH_STATS_INIT_MASK                (0x00000001)
290 #define MMU_STATISTICS_CONTROL_BANDWIDTH_STATS_INIT_SHIFT               (0)
291
292 #define MMU_STATISTICS_CONTROL_STALL_STATS_INIT_MASK                    (0x00000002)
293 #define MMU_STATISTICS_CONTROL_STALL_STATS_INIT_SHIFT                   (1)
294
295 #define MMU_STATISTICS_CONTROL_LATENCY_STATS_INIT_MASK                  (0x00000004)
296 #define MMU_STATISTICS_CONTROL_LATENCY_STATS_INIT_SHIFT                 (2)
297
298 #define MMU_MMU_VERSION_OFFSET                                          (0x01D0)
299
300 #define MMU_MMU_VERSION_MMU_MAJOR_REV_MASK                              (0x00FF0000)
301 #define MMU_MMU_VERSION_MMU_MAJOR_REV_SHIFT                             (16)
302
303 #define MMU_MMU_VERSION_MMU_MINOR_REV_MASK                              (0x0000FF00)
304 #define MMU_MMU_VERSION_MMU_MINOR_REV_SHIFT                             (8)
305
306 #define MMU_MMU_VERSION_MMU_MAINT_REV_MASK                              (0x000000FF)
307 #define MMU_MMU_VERSION_MMU_MAINT_REV_SHIFT                             (0)
308
309 #define MMU_BYTE_SIZE                                                   (0x01D4)
310
311 #endif
This page took 0.051111 seconds and 4 git commands to generate.