File Index
Files and directories
Sign in
FILE

e5010-mmu-regs.h

File preview with syntax highlighting.

linux-6.19.14/drivers/media/platform/imagination/e5010-mmu-regs.h C
  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
 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
~/ Read-only file preview.