1 /**********************************************************************
3 * Copyright(c) 2008 Imagination Technologies Ltd. All rights reserved.
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms and conditions of the GNU General Public License,
7 * version 2, as published by the Free Software Foundation.
9 * This program is distributed in the hope it will be useful but, except
10 * as otherwise stated in writing, without any warranty; without even the
11 * implied warranty of merchantability or fitness for a particular purpose.
12 * See the GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License along with
15 * this program; if not, write to the Free Software Foundation, Inc.,
16 * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
18 * The full GNU General Public License is included in this distribution in
19 * the file called "COPYING".
21 * Contact Information:
22 * Imagination Technologies Ltd. <gpl-support@imgtec.com>
23 * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK
25 ******************************************************************************/
27 #ifndef _SGX530DEFS_KM_H_
28 #define _SGX530DEFS_KM_H_
30 #define EUR_CR_CLKGATECTL 0x0000
31 #define EUR_CR_CLKGATECTL_2D_CLKG_MASK 0x00000003
32 #define EUR_CR_CLKGATECTL_2D_CLKG_SHIFT 0
33 #define EUR_CR_CLKGATECTL_ISP_CLKG_MASK 0x00000030
34 #define EUR_CR_CLKGATECTL_ISP_CLKG_SHIFT 4
35 #define EUR_CR_CLKGATECTL_TSP_CLKG_MASK 0x00000300
36 #define EUR_CR_CLKGATECTL_TSP_CLKG_SHIFT 8
37 #define EUR_CR_CLKGATECTL_TA_CLKG_MASK 0x00003000
38 #define EUR_CR_CLKGATECTL_TA_CLKG_SHIFT 12
39 #define EUR_CR_CLKGATECTL_DPM_CLKG_MASK 0x00030000
40 #define EUR_CR_CLKGATECTL_DPM_CLKG_SHIFT 16
41 #define EUR_CR_CLKGATECTL_USE_CLKG_MASK 0x00300000
42 #define EUR_CR_CLKGATECTL_USE_CLKG_SHIFT 20
43 #define EUR_CR_CLKGATECTL_AUTO_MAN_REG_MASK 0x01000000
44 #define EUR_CR_CLKGATECTL_AUTO_MAN_REG_SHIFT 24
46 #define EUR_CR_CLKGATESTATUS 0x0004
47 #define EUR_CR_CLKGATESTATUS_2D_CLKS_MASK 0x00000001
48 #define EUR_CR_CLKGATESTATUS_2D_CLKS_SHIFT 0
49 #define EUR_CR_CLKGATESTATUS_ISP_CLKS_MASK 0x00000010
50 #define EUR_CR_CLKGATESTATUS_ISP_CLKS_SHIFT 4
51 #define EUR_CR_CLKGATESTATUS_TSP_CLKS_MASK 0x00000100
52 #define EUR_CR_CLKGATESTATUS_TSP_CLKS_SHIFT 8
53 #define EUR_CR_CLKGATESTATUS_TA_CLKS_MASK 0x00001000
54 #define EUR_CR_CLKGATESTATUS_TA_CLKS_SHIFT 12
55 #define EUR_CR_CLKGATESTATUS_DPM_CLKS_MASK 0x00010000
56 #define EUR_CR_CLKGATESTATUS_DPM_CLKS_SHIFT 16
57 #define EUR_CR_CLKGATESTATUS_USE_CLKS_MASK 0x00100000
58 #define EUR_CR_CLKGATESTATUS_USE_CLKS_SHIFT 20
60 #define EUR_CR_CLKGATECTLOVR 0x0008
61 #define EUR_CR_CLKGATECTLOVR_2D_CLKO_MASK 0x00000003
62 #define EUR_CR_CLKGATECTLOVR_2D_CLKO_SHIFT 0
63 #define EUR_CR_CLKGATECTLOVR_ISP_CLKO_MASK 0x00000030
64 #define EUR_CR_CLKGATECTLOVR_ISP_CLKO_SHIFT 4
65 #define EUR_CR_CLKGATECTLOVR_TSP_CLKO_MASK 0x00000300
66 #define EUR_CR_CLKGATECTLOVR_TSP_CLKO_SHIFT 8
67 #define EUR_CR_CLKGATECTLOVR_TA_CLKO_MASK 0x00003000
68 #define EUR_CR_CLKGATECTLOVR_TA_CLKO_SHIFT 12
69 #define EUR_CR_CLKGATECTLOVR_DPM_CLKO_MASK 0x00030000
70 #define EUR_CR_CLKGATECTLOVR_DPM_CLKO_SHIFT 16
71 #define EUR_CR_CLKGATECTLOVR_USE_CLKO_MASK 0x00300000
72 #define EUR_CR_CLKGATECTLOVR_USE_CLKO_SHIFT 20
74 #define EUR_CR_CORE_ID 0x0010
75 #define EUR_CR_CORE_ID_CONFIG_MASK 0x0000FFFF
76 #define EUR_CR_CORE_ID_CONFIG_SHIFT 0
77 #define EUR_CR_CORE_ID_ID_MASK 0xFFFF0000
78 #define EUR_CR_CORE_ID_ID_SHIFT 16
80 #define EUR_CR_CORE_REVISION 0x0014
81 #define EUR_CR_CORE_REVISION_MAINTENANCE_MASK 0x000000FF
82 #define EUR_CR_CORE_REVISION_MAINTENANCE_SHIFT 0
83 #define EUR_CR_CORE_REVISION_MINOR_MASK 0x0000FF00
84 #define EUR_CR_CORE_REVISION_MINOR_SHIFT 8
85 #define EUR_CR_CORE_REVISION_MAJOR_MASK 0x00FF0000
86 #define EUR_CR_CORE_REVISION_MAJOR_SHIFT 16
87 #define EUR_CR_CORE_MAKE_REV(maj, min, maint) ( \
88 (((maj) << EUR_CR_CORE_REVISION_MAJOR_SHIFT) & \
89 EUR_CR_CORE_REVISION_MAJOR_MASK) | \
90 (((min) << EUR_CR_CORE_REVISION_MINOR_SHIFT) & \
91 EUR_CR_CORE_REVISION_MINOR_MASK) | \
92 (((maint) << EUR_CR_CORE_REVISION_MAINTENANCE_SHIFT) & \
93 EUR_CR_CORE_REVISION_MAINTENANCE_MASK) \
95 #define EUR_CR_CORE_REVISION_DESIGNER_MASK 0xFF000000
96 #define EUR_CR_CORE_REVISION_DESIGNER_SHIFT 24
98 #define EUR_CR_DESIGNER_REV_FIELD1 0x0018
99 #define EUR_CR_DESIGNER_REV_FIELD1_DESIGNER_REV_FIELD1_MASK 0xFFFFFFFF
100 #define EUR_CR_DESIGNER_REV_FIELD1_DESIGNER_REV_FIELD1_SHIFT 0
102 #define EUR_CR_DESIGNER_REV_FIELD2 0x001C
103 #define EUR_CR_DESIGNER_REV_FIELD2_DESIGNER_REV_FIELD2_MASK 0xFFFFFFFF
104 #define EUR_CR_DESIGNER_REV_FIELD2_DESIGNER_REV_FIELD2_SHIFT 0
106 #define EUR_CR_SOFT_RESET 0x0080
107 #define EUR_CR_SOFT_RESET_BIF_RESET_MASK 0x00000001
108 #define EUR_CR_SOFT_RESET_BIF_RESET_SHIFT 0
109 #define EUR_CR_SOFT_RESET_TWOD_RESET_MASK 0x00000002
110 #define EUR_CR_SOFT_RESET_TWOD_RESET_SHIFT 1
111 #define EUR_CR_SOFT_RESET_DPM_RESET_MASK 0x00000004
112 #define EUR_CR_SOFT_RESET_DPM_RESET_SHIFT 2
113 #define EUR_CR_SOFT_RESET_TA_RESET_MASK 0x00000008
114 #define EUR_CR_SOFT_RESET_TA_RESET_SHIFT 3
115 #define EUR_CR_SOFT_RESET_USE_RESET_MASK 0x00000010
116 #define EUR_CR_SOFT_RESET_USE_RESET_SHIFT 4
117 #define EUR_CR_SOFT_RESET_ISP_RESET_MASK 0x00000020
118 #define EUR_CR_SOFT_RESET_ISP_RESET_SHIFT 5
119 #define EUR_CR_SOFT_RESET_TSP_RESET_MASK 0x00000040
120 #define EUR_CR_SOFT_RESET_TSP_RESET_SHIFT 6
122 #define EUR_CR_EVENT_HOST_ENABLE2 0x0110
123 #define EUR_CR_EVENT_HOST_ENABLE2_DPM_3D_FREE_LOAD_MASK 0x00000002
124 #define EUR_CR_EVENT_HOST_ENABLE2_DPM_3D_FREE_LOAD_SHIFT 1
125 #define EUR_CR_EVENT_HOST_ENABLE2_DPM_TA_FREE_LOAD_MASK 0x00000001
126 #define EUR_CR_EVENT_HOST_ENABLE2_DPM_TA_FREE_LOAD_SHIFT 0
128 #define EUR_CR_EVENT_HOST_CLEAR2 0x0114
129 #define EUR_CR_EVENT_HOST_CLEAR2_DPM_3D_FREE_LOAD_MASK 0x00000002
130 #define EUR_CR_EVENT_HOST_CLEAR2_DPM_3D_FREE_LOAD_SHIFT 1
131 #define EUR_CR_EVENT_HOST_CLEAR2_DPM_TA_FREE_LOAD_MASK 0x00000001
132 #define EUR_CR_EVENT_HOST_CLEAR2_DPM_TA_FREE_LOAD_SHIFT 0
134 #define EUR_CR_EVENT_STATUS2 0x0118
135 #define EUR_CR_EVENT_STATUS2_DPM_3D_FREE_LOAD_MASK 0x00000002
136 #define EUR_CR_EVENT_STATUS2_DPM_3D_FREE_LOAD_SHIFT 1
137 #define EUR_CR_EVENT_STATUS2_DPM_TA_FREE_LOAD_MASK 0x00000001
138 #define EUR_CR_EVENT_STATUS2_DPM_TA_FREE_LOAD_SHIFT 0
140 #define EUR_CR_EVENT_STATUS 0x012C
141 #define EUR_CR_EVENT_STATUS_MASTER_INTERRUPT_MASK 0x80000000
142 #define EUR_CR_EVENT_STATUS_MASTER_INTERRUPT_SHIFT 31
143 #define EUR_CR_EVENT_STATUS_TIMER_MASK 0x20000000
144 #define EUR_CR_EVENT_STATUS_TIMER_SHIFT 29
145 #define EUR_CR_EVENT_STATUS_TA_DPM_FAULT_MASK 0x10000000
146 #define EUR_CR_EVENT_STATUS_TA_DPM_FAULT_SHIFT 28
147 #define EUR_CR_EVENT_STATUS_TWOD_COMPLETE_MASK 0x08000000
148 #define EUR_CR_EVENT_STATUS_TWOD_COMPLETE_SHIFT 27
149 #define EUR_CR_EVENT_STATUS_MADD_CACHE_INVALCOMPLETE_MASK 0x04000000
150 #define EUR_CR_EVENT_STATUS_MADD_CACHE_INVALCOMPLETE_SHIFT 26
151 #define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_ZLS_MASK 0x02000000
152 #define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_ZLS_SHIFT 25
153 #define EUR_CR_EVENT_STATUS_DPM_TA_MEM_FREE_MASK 0x01000000
154 #define EUR_CR_EVENT_STATUS_DPM_TA_MEM_FREE_SHIFT 24
155 #define EUR_CR_EVENT_STATUS_ISP_END_TILE_MASK 0x00800000
156 #define EUR_CR_EVENT_STATUS_ISP_END_TILE_SHIFT 23
157 #define EUR_CR_EVENT_STATUS_DPM_INITEND_MASK 0x00400000
158 #define EUR_CR_EVENT_STATUS_DPM_INITEND_SHIFT 22
159 #define EUR_CR_EVENT_STATUS_OTPM_LOADED_MASK 0x00200000
160 #define EUR_CR_EVENT_STATUS_OTPM_LOADED_SHIFT 21
161 #define EUR_CR_EVENT_STATUS_OTPM_INV_MASK 0x00100000
162 #define EUR_CR_EVENT_STATUS_OTPM_INV_SHIFT 20
163 #define EUR_CR_EVENT_STATUS_OTPM_FLUSHED_MASK 0x00080000
164 #define EUR_CR_EVENT_STATUS_OTPM_FLUSHED_SHIFT 19
165 #define EUR_CR_EVENT_STATUS_PIXELBE_END_RENDER_MASK 0x00040000
166 #define EUR_CR_EVENT_STATUS_PIXELBE_END_RENDER_SHIFT 18
167 #define EUR_CR_EVENT_STATUS_ISP_HALT_MASK 0x00020000
168 #define EUR_CR_EVENT_STATUS_ISP_HALT_SHIFT 17
169 #define EUR_CR_EVENT_STATUS_ISP_VISIBILITY_FAIL_MASK 0x00010000
170 #define EUR_CR_EVENT_STATUS_ISP_VISIBILITY_FAIL_SHIFT 16
171 #define EUR_CR_EVENT_STATUS_BREAKPOINT_MASK 0x00008000
172 #define EUR_CR_EVENT_STATUS_BREAKPOINT_SHIFT 15
173 #define EUR_CR_EVENT_STATUS_SW_EVENT_MASK 0x00004000
174 #define EUR_CR_EVENT_STATUS_SW_EVENT_SHIFT 14
175 #define EUR_CR_EVENT_STATUS_TA_FINISHED_MASK 0x00002000
176 #define EUR_CR_EVENT_STATUS_TA_FINISHED_SHIFT 13
177 #define EUR_CR_EVENT_STATUS_TA_TERMINATE_MASK 0x00001000
178 #define EUR_CR_EVENT_STATUS_TA_TERMINATE_SHIFT 12
179 #define EUR_CR_EVENT_STATUS_TPC_CLEAR_MASK 0x00000800
180 #define EUR_CR_EVENT_STATUS_TPC_CLEAR_SHIFT 11
181 #define EUR_CR_EVENT_STATUS_TPC_FLUSH_MASK 0x00000400
182 #define EUR_CR_EVENT_STATUS_TPC_FLUSH_SHIFT 10
183 #define EUR_CR_EVENT_STATUS_DPM_CONTROL_CLEAR_MASK 0x00000200
184 #define EUR_CR_EVENT_STATUS_DPM_CONTROL_CLEAR_SHIFT 9
185 #define EUR_CR_EVENT_STATUS_DPM_CONTROL_LOAD_MASK 0x00000100
186 #define EUR_CR_EVENT_STATUS_DPM_CONTROL_LOAD_SHIFT 8
187 #define EUR_CR_EVENT_STATUS_DPM_CONTROL_STORE_MASK 0x00000080
188 #define EUR_CR_EVENT_STATUS_DPM_CONTROL_STORE_SHIFT 7
189 #define EUR_CR_EVENT_STATUS_DPM_STATE_CLEAR_MASK 0x00000040
190 #define EUR_CR_EVENT_STATUS_DPM_STATE_CLEAR_SHIFT 6
191 #define EUR_CR_EVENT_STATUS_DPM_STATE_LOAD_MASK 0x00000020
192 #define EUR_CR_EVENT_STATUS_DPM_STATE_LOAD_SHIFT 5
193 #define EUR_CR_EVENT_STATUS_DPM_STATE_STORE_MASK 0x00000010
194 #define EUR_CR_EVENT_STATUS_DPM_STATE_STORE_SHIFT 4
195 #define EUR_CR_EVENT_STATUS_DPM_REACHED_MEM_THRESH_MASK 0x00000008
196 #define EUR_CR_EVENT_STATUS_DPM_REACHED_MEM_THRESH_SHIFT 3
197 #define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_GBL_MASK 0x00000004
198 #define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_GBL_SHIFT 2
199 #define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_MT_MASK 0x00000002
200 #define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_MT_SHIFT 1
201 #define EUR_CR_EVENT_STATUS_DPM_3D_MEM_FREE_MASK 0x00000001
202 #define EUR_CR_EVENT_STATUS_DPM_3D_MEM_FREE_SHIFT 0
204 #define EUR_CR_EVENT_HOST_ENABLE 0x0130
205 #define EUR_CR_EVENT_HOST_ENABLE_MASTER_INTERRUPT_MASK 0x80000000
206 #define EUR_CR_EVENT_HOST_ENABLE_MASTER_INTERRUPT_SHIFT 31
207 #define EUR_CR_EVENT_HOST_ENABLE_TIMER_MASK 0x20000000
208 #define EUR_CR_EVENT_HOST_ENABLE_TIMER_SHIFT 29
209 #define EUR_CR_EVENT_HOST_ENABLE_TA_DPM_FAULT_MASK 0x10000000
210 #define EUR_CR_EVENT_HOST_ENABLE_TA_DPM_FAULT_SHIFT 28
211 #define EUR_CR_EVENT_HOST_ENABLE_TWOD_COMPLETE_MASK 0x08000000
212 #define EUR_CR_EVENT_HOST_ENABLE_TWOD_COMPLETE_SHIFT 27
213 #define EUR_CR_EVENT_HOST_ENABLE_MADD_CACHE_INVALCOMPLETE_MASK 0x04000000
214 #define EUR_CR_EVENT_HOST_ENABLE_MADD_CACHE_INVALCOMPLETE_SHIFT 26
215 #define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_ZLS_MASK 0x02000000
216 #define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_ZLS_SHIFT 25
217 #define EUR_CR_EVENT_HOST_ENABLE_DPM_TA_MEM_FREE_MASK 0x01000000
218 #define EUR_CR_EVENT_HOST_ENABLE_DPM_TA_MEM_FREE_SHIFT 24
219 #define EUR_CR_EVENT_HOST_ENABLE_ISP_END_TILE_MASK 0x00800000
220 #define EUR_CR_EVENT_HOST_ENABLE_ISP_END_TILE_SHIFT 23
221 #define EUR_CR_EVENT_HOST_ENABLE_DPM_INITEND_MASK 0x00400000
222 #define EUR_CR_EVENT_HOST_ENABLE_DPM_INITEND_SHIFT 22
223 #define EUR_CR_EVENT_HOST_ENABLE_OTPM_LOADED_MASK 0x00200000
224 #define EUR_CR_EVENT_HOST_ENABLE_OTPM_LOADED_SHIFT 21
225 #define EUR_CR_EVENT_HOST_ENABLE_OTPM_INV_MASK 0x00100000
226 #define EUR_CR_EVENT_HOST_ENABLE_OTPM_INV_SHIFT 20
227 #define EUR_CR_EVENT_HOST_ENABLE_OTPM_FLUSHED_MASK 0x00080000
228 #define EUR_CR_EVENT_HOST_ENABLE_OTPM_FLUSHED_SHIFT 19
229 #define EUR_CR_EVENT_HOST_ENABLE_PIXELBE_END_RENDER_MASK 0x00040000
230 #define EUR_CR_EVENT_HOST_ENABLE_PIXELBE_END_RENDER_SHIFT 18
231 #define EUR_CR_EVENT_HOST_ENABLE_ISP_HALT_MASK 0x00020000
232 #define EUR_CR_EVENT_HOST_ENABLE_ISP_HALT_SHIFT 17
233 #define EUR_CR_EVENT_HOST_ENABLE_ISP_VISIBILITY_FAIL_MASK 0x00010000
234 #define EUR_CR_EVENT_HOST_ENABLE_ISP_VISIBILITY_FAIL_SHIFT 16
235 #define EUR_CR_EVENT_HOST_ENABLE_BREAKPOINT_MASK 0x00008000
236 #define EUR_CR_EVENT_HOST_ENABLE_BREAKPOINT_SHIFT 15
237 #define EUR_CR_EVENT_HOST_ENABLE_SW_EVENT_MASK 0x00004000
238 #define EUR_CR_EVENT_HOST_ENABLE_SW_EVENT_SHIFT 14
239 #define EUR_CR_EVENT_HOST_ENABLE_TA_FINISHED_MASK 0x00002000
240 #define EUR_CR_EVENT_HOST_ENABLE_TA_FINISHED_SHIFT 13
241 #define EUR_CR_EVENT_HOST_ENABLE_TA_TERMINATE_MASK 0x00001000
242 #define EUR_CR_EVENT_HOST_ENABLE_TA_TERMINATE_SHIFT 12
243 #define EUR_CR_EVENT_HOST_ENABLE_TPC_CLEAR_MASK 0x00000800
244 #define EUR_CR_EVENT_HOST_ENABLE_TPC_CLEAR_SHIFT 11
245 #define EUR_CR_EVENT_HOST_ENABLE_TPC_FLUSH_MASK 0x00000400
246 #define EUR_CR_EVENT_HOST_ENABLE_TPC_FLUSH_SHIFT 10
247 #define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_CLEAR_MASK 0x00000200
248 #define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_CLEAR_SHIFT 9
249 #define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_LOAD_MASK 0x00000100
250 #define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_LOAD_SHIFT 8
251 #define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_STORE_MASK 0x00000080
252 #define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_STORE_SHIFT 7
253 #define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_CLEAR_MASK 0x00000040
254 #define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_CLEAR_SHIFT 6
255 #define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_LOAD_MASK 0x00000020
256 #define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_LOAD_SHIFT 5
257 #define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_STORE_MASK 0x00000010
258 #define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_STORE_SHIFT 4
259 #define EUR_CR_EVENT_HOST_ENABLE_DPM_REACHED_MEM_THRESH_MASK 0x00000008
260 #define EUR_CR_EVENT_HOST_ENABLE_DPM_REACHED_MEM_THRESH_SHIFT 3
261 #define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_GBL_MASK 0x00000004
262 #define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_GBL_SHIFT 2
263 #define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_MT_MASK 0x00000002
264 #define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_MT_SHIFT 1
265 #define EUR_CR_EVENT_HOST_ENABLE_DPM_3D_MEM_FREE_MASK 0x00000001
266 #define EUR_CR_EVENT_HOST_ENABLE_DPM_3D_MEM_FREE_SHIFT 0
268 #define EUR_CR_EVENT_HOST_CLEAR 0x0134
269 #define EUR_CR_EVENT_HOST_CLEAR_MASTER_INTERRUPT_MASK 0x80000000
270 #define EUR_CR_EVENT_HOST_CLEAR_MASTER_INTERRUPT_SHIFT 31
271 #define EUR_CR_EVENT_HOST_CLEAR_TIMER_MASK 0x20000000
272 #define EUR_CR_EVENT_HOST_CLEAR_TIMER_SHIFT 29
273 #define EUR_CR_EVENT_HOST_CLEAR_TA_DPM_FAULT_MASK 0x10000000
274 #define EUR_CR_EVENT_HOST_CLEAR_TA_DPM_FAULT_SHIFT 28
275 #define EUR_CR_EVENT_HOST_CLEAR_TWOD_COMPLETE_MASK 0x08000000
276 #define EUR_CR_EVENT_HOST_CLEAR_TWOD_COMPLETE_SHIFT 27
277 #define EUR_CR_EVENT_HOST_CLEAR_MADD_CACHE_INVALCOMPLETE_MASK 0x04000000
278 #define EUR_CR_EVENT_HOST_CLEAR_MADD_CACHE_INVALCOMPLETE_SHIFT 26
279 #define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_ZLS_MASK 0x02000000
280 #define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_ZLS_SHIFT 25
281 #define EUR_CR_EVENT_HOST_CLEAR_DPM_TA_MEM_FREE_MASK 0x01000000
282 #define EUR_CR_EVENT_HOST_CLEAR_DPM_TA_MEM_FREE_SHIFT 24
283 #define EUR_CR_EVENT_HOST_CLEAR_ISP_END_TILE_MASK 0x00800000
284 #define EUR_CR_EVENT_HOST_CLEAR_ISP_END_TILE_SHIFT 23
285 #define EUR_CR_EVENT_HOST_CLEAR_DPM_INITEND_MASK 0x00400000
286 #define EUR_CR_EVENT_HOST_CLEAR_DPM_INITEND_SHIFT 22
287 #define EUR_CR_EVENT_HOST_CLEAR_OTPM_LOADED_MASK 0x00200000
288 #define EUR_CR_EVENT_HOST_CLEAR_OTPM_LOADED_SHIFT 21
289 #define EUR_CR_EVENT_HOST_CLEAR_OTPM_INV_MASK 0x00100000
290 #define EUR_CR_EVENT_HOST_CLEAR_OTPM_INV_SHIFT 20
291 #define EUR_CR_EVENT_HOST_CLEAR_OTPM_FLUSHED_MASK 0x00080000
292 #define EUR_CR_EVENT_HOST_CLEAR_OTPM_FLUSHED_SHIFT 19
293 #define EUR_CR_EVENT_HOST_CLEAR_PIXELBE_END_RENDER_MASK 0x00040000
294 #define EUR_CR_EVENT_HOST_CLEAR_PIXELBE_END_RENDER_SHIFT 18
295 #define EUR_CR_EVENT_HOST_CLEAR_ISP_HALT_MASK 0x00020000
296 #define EUR_CR_EVENT_HOST_CLEAR_ISP_HALT_SHIFT 17
297 #define EUR_CR_EVENT_HOST_CLEAR_ISP_VISIBILITY_FAIL_MASK 0x00010000
298 #define EUR_CR_EVENT_HOST_CLEAR_ISP_VISIBILITY_FAIL_SHIFT 16
299 #define EUR_CR_EVENT_HOST_CLEAR_BREAKPOINT_MASK 0x00008000
300 #define EUR_CR_EVENT_HOST_CLEAR_BREAKPOINT_SHIFT 15
301 #define EUR_CR_EVENT_HOST_CLEAR_SW_EVENT_MASK 0x00004000
302 #define EUR_CR_EVENT_HOST_CLEAR_SW_EVENT_SHIFT 14
303 #define EUR_CR_EVENT_HOST_CLEAR_TA_FINISHED_MASK 0x00002000
304 #define EUR_CR_EVENT_HOST_CLEAR_TA_FINISHED_SHIFT 13
305 #define EUR_CR_EVENT_HOST_CLEAR_TA_TERMINATE_MASK 0x00001000
306 #define EUR_CR_EVENT_HOST_CLEAR_TA_TERMINATE_SHIFT 12
307 #define EUR_CR_EVENT_HOST_CLEAR_TPC_CLEAR_MASK 0x00000800
308 #define EUR_CR_EVENT_HOST_CLEAR_TPC_CLEAR_SHIFT 11
309 #define EUR_CR_EVENT_HOST_CLEAR_TPC_FLUSH_MASK 0x00000400
310 #define EUR_CR_EVENT_HOST_CLEAR_TPC_FLUSH_SHIFT 10
311 #define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_CLEAR_MASK 0x00000200
312 #define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_CLEAR_SHIFT 9
313 #define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_LOAD_MASK 0x00000100
314 #define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_LOAD_SHIFT 8
315 #define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_STORE_MASK 0x00000080
316 #define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_STORE_SHIFT 7
317 #define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_CLEAR_MASK 0x00000040
318 #define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_CLEAR_SHIFT 6
319 #define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_LOAD_MASK 0x00000020
320 #define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_LOAD_SHIFT 5
321 #define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_STORE_MASK 0x00000010
322 #define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_STORE_SHIFT 4
323 #define EUR_CR_EVENT_HOST_CLEAR_DPM_REACHED_MEM_THRESH_MASK 0x00000008
324 #define EUR_CR_EVENT_HOST_CLEAR_DPM_REACHED_MEM_THRESH_SHIFT 3
325 #define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_GBL_MASK 0x00000004
326 #define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_GBL_SHIFT 2
327 #define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_MT_MASK 0x00000002
328 #define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_MT_SHIFT 1
329 #define EUR_CR_EVENT_HOST_CLEAR_DPM_3D_MEM_FREE_MASK 0x00000001
330 #define EUR_CR_EVENT_HOST_CLEAR_DPM_3D_MEM_FREE_SHIFT 0
332 #define EUR_CR_PDS 0x0ABC
333 #define EUR_CR_PDS_DOUT_TIMEOUT_DISABLE_MASK 0x00000040
334 #define EUR_CR_PDS_DOUT_TIMEOUT_DISABLE_SHIFT 6
336 #define EUR_CR_PDS_EXEC_BASE 0x0AB8
337 #define EUR_CR_PDS_EXEC_BASE_ADDR_MASK 0x0FF00000
338 #define EUR_CR_PDS_EXEC_BASE_ADDR_SHIFT 20
340 #define EUR_CR_EVENT_KICKER 0x0AC4
341 #define EUR_CR_EVENT_KICKER_ADDRESS_MASK 0x0FFFFFF0
342 #define EUR_CR_EVENT_KICKER_ADDRESS_SHIFT 4
344 #define EUR_CR_EVENT_KICK 0x0AC8
345 #define EUR_CR_EVENT_KICK_NOW_MASK 0x00000001
346 #define EUR_CR_EVENT_KICK_NOW_SHIFT 0
348 #define EUR_CR_EVENT_TIMER 0x0ACC
349 #define EUR_CR_EVENT_TIMER_ENABLE_MASK 0x01000000
350 #define EUR_CR_EVENT_TIMER_ENABLE_SHIFT 24
351 #define EUR_CR_EVENT_TIMER_VALUE_MASK 0x00FFFFFF
352 #define EUR_CR_EVENT_TIMER_VALUE_SHIFT 0
354 #define EUR_CR_PDS_INV0 0x0AD0
355 #define EUR_CR_PDS_INV0_DSC_MASK 0x00000001
356 #define EUR_CR_PDS_INV0_DSC_SHIFT 0
358 #define EUR_CR_PDS_INV1 0x0AD4
359 #define EUR_CR_PDS_INV1_DSC_MASK 0x00000001
360 #define EUR_CR_PDS_INV1_DSC_SHIFT 0
362 #define EUR_CR_PDS_INV2 0x0AD8
363 #define EUR_CR_PDS_INV2_DSC_MASK 0x00000001
364 #define EUR_CR_PDS_INV2_DSC_SHIFT 0
366 #define EUR_CR_PDS_INV3 0x0ADC
367 #define EUR_CR_PDS_INV3_DSC_MASK 0x00000001
368 #define EUR_CR_PDS_INV3_DSC_SHIFT 0
370 #define EUR_CR_PDS_INV_CSC 0x0AE0
371 #define EUR_CR_PDS_INV_CSC_KICK_MASK 0x00000001
372 #define EUR_CR_PDS_INV_CSC_KICK_SHIFT 0
374 #define EUR_CR_PDS_PC_BASE 0x0B2C
375 #define EUR_CR_PDS_PC_BASE_ADDRESS_MASK 0x3FFFFFFF
376 #define EUR_CR_PDS_PC_BASE_ADDRESS_SHIFT 0
378 #define EUR_CR_BIF_CTRL 0x0C00
379 #define EUR_CR_BIF_CTRL_NOREORDER_MASK 0x00000001
380 #define EUR_CR_BIF_CTRL_NOREORDER_SHIFT 0
381 #define EUR_CR_BIF_CTRL_PAUSE_MASK 0x00000002
382 #define EUR_CR_BIF_CTRL_PAUSE_SHIFT 1
383 #define EUR_CR_BIF_CTRL_FLUSH_MASK 0x00000004
384 #define EUR_CR_BIF_CTRL_FLUSH_SHIFT 2
385 #define EUR_CR_BIF_CTRL_INVALDC_MASK 0x00000008
386 #define EUR_CR_BIF_CTRL_INVALDC_SHIFT 3
387 #define EUR_CR_BIF_CTRL_CLEAR_FAULT_MASK 0x00000010
388 #define EUR_CR_BIF_CTRL_CLEAR_FAULT_SHIFT 4
389 #define EUR_CR_BIF_CTRL_MMU_BYPASS_CACHE_MASK 0x00000100
390 #define EUR_CR_BIF_CTRL_MMU_BYPASS_CACHE_SHIFT 8
391 #define EUR_CR_BIF_CTRL_MMU_BYPASS_VDM_MASK 0x00000200
392 #define EUR_CR_BIF_CTRL_MMU_BYPASS_VDM_SHIFT 9
393 #define EUR_CR_BIF_CTRL_MMU_BYPASS_TE_MASK 0x00000400
394 #define EUR_CR_BIF_CTRL_MMU_BYPASS_TE_SHIFT 10
395 #define EUR_CR_BIF_CTRL_MMU_BYPASS_TWOD_MASK 0x00000800
396 #define EUR_CR_BIF_CTRL_MMU_BYPASS_TWOD_SHIFT 11
397 #define EUR_CR_BIF_CTRL_MMU_BYPASS_PBE_MASK 0x00001000
398 #define EUR_CR_BIF_CTRL_MMU_BYPASS_PBE_SHIFT 12
399 #define EUR_CR_BIF_CTRL_MMU_BYPASS_TSPP_MASK 0x00002000
400 #define EUR_CR_BIF_CTRL_MMU_BYPASS_TSPP_SHIFT 13
401 #define EUR_CR_BIF_CTRL_MMU_BYPASS_ISP_MASK 0x00004000
402 #define EUR_CR_BIF_CTRL_MMU_BYPASS_ISP_SHIFT 14
403 #define EUR_CR_BIF_CTRL_MMU_BYPASS_USE_MASK 0x00008000
404 #define EUR_CR_BIF_CTRL_MMU_BYPASS_USE_SHIFT 15
406 #define EUR_CR_BIF_INT_STAT 0x0C04
407 #define EUR_CR_BIF_INT_STAT_FAULT_MASK 0x00003FFF
408 #define EUR_CR_BIF_INT_STAT_FAULT_SHIFT 0
409 #define EUR_CR_BIF_INT_STAT_PF_N_RW_MASK 0x00004000
410 #define EUR_CR_BIF_INT_STAT_PF_N_RW_SHIFT 14
411 #define EUR_CR_BIF_FAULT 0x0C08
412 #define EUR_CR_BIF_FAULT_ADDR_MASK 0x0FFFF000
413 #define EUR_CR_BIF_FAULT_ADDR_SHIFT 12
415 #define EUR_CR_BIF_DIR_LIST_BASE0 0x0C84
416 #define EUR_CR_BIF_DIR_LIST_BASE0_ADDR_MASK 0xFFFFF000
417 #define EUR_CR_BIF_DIR_LIST_BASE0_ADDR_SHIFT 12
419 #define EUR_CR_BIF_TWOD_REQ_BASE 0x0C88
420 #define EUR_CR_BIF_TWOD_REQ_BASE_ADDR_MASK 0x0FF00000
421 #define EUR_CR_BIF_TWOD_REQ_BASE_ADDR_SHIFT 20
423 #define EUR_CR_BIF_TA_REQ_BASE 0x0C90
424 #define EUR_CR_BIF_TA_REQ_BASE_ADDR_MASK 0x0FF00000
425 #define EUR_CR_BIF_TA_REQ_BASE_ADDR_SHIFT 20
427 #define EUR_CR_BIF_MEM_REQ_STAT 0x0CA8
428 #define EUR_CR_BIF_MEM_REQ_STAT_READS_MASK 0x000000FF
429 #define EUR_CR_BIF_MEM_REQ_STAT_READS_SHIFT 0
431 #define EUR_CR_BIF_3D_REQ_BASE 0x0CAC
432 #define EUR_CR_BIF_3D_REQ_BASE_ADDR_MASK 0x0FF00000
433 #define EUR_CR_BIF_3D_REQ_BASE_ADDR_SHIFT 20
435 #define EUR_CR_BIF_ZLS_REQ_BASE 0x0CB0
436 #define EUR_CR_BIF_ZLS_REQ_BASE_ADDR_MASK 0x0FF00000
437 #define EUR_CR_BIF_ZLS_REQ_BASE_ADDR_SHIFT 20
439 #define EUR_CR_2D_BLIT_STATUS 0x0E04
440 #define EUR_CR_2D_BLIT_STATUS_COMPLETE_MASK 0x00FFFFFF
441 #define EUR_CR_2D_BLIT_STATUS_COMPLETE_SHIFT 0
442 #define EUR_CR_2D_BLIT_STATUS_BUSY_MASK 0x01000000
443 #define EUR_CR_2D_BLIT_STATUS_BUSY_SHIFT 24
445 #define EUR_CR_2D_VIRTUAL_FIFO_0 0x0E10
446 #define EUR_CR_2D_VIRTUAL_FIFO_0_ENABLE_MASK 0x00000001
447 #define EUR_CR_2D_VIRTUAL_FIFO_0_ENABLE_SHIFT 0
448 #define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_MASK 0x0000000E
449 #define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_SHIFT 1
450 #define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_DIV_MASK 0x00000FF0
451 #define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_DIV_SHIFT 4
452 #define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_MUL_MASK 0x0000F000
453 #define EUR_CR_2D_VIRTUAL_FIFO_0_FLOWRATE_MUL_SHIFT 12
455 #define EUR_CR_2D_VIRTUAL_FIFO_1 0x0E14
456 #define EUR_CR_2D_VIRTUAL_FIFO_1_MIN_ACC_MASK 0x00000FFF
457 #define EUR_CR_2D_VIRTUAL_FIFO_1_MIN_ACC_SHIFT 0
458 #define EUR_CR_2D_VIRTUAL_FIFO_1_MAX_ACC_MASK 0x00FFF000
459 #define EUR_CR_2D_VIRTUAL_FIFO_1_MAX_ACC_SHIFT 12
460 #define EUR_CR_2D_VIRTUAL_FIFO_1_MIN_METRIC_MASK 0xFF000000
461 #define EUR_CR_2D_VIRTUAL_FIFO_1_MIN_METRIC_SHIFT 24
463 #define EUR_CR_USE_CODE_BASE(X) (0x0A0C + (4 * (X)))
464 #define EUR_CR_USE_CODE_BASE_ADDR_MASK 0x00FFFFFF
465 #define EUR_CR_USE_CODE_BASE_ADDR_SHIFT 0
466 #define EUR_CR_USE_CODE_BASE_DM_MASK 0x03000000
467 #define EUR_CR_USE_CODE_BASE_DM_SHIFT 24
468 #define EUR_CR_USE_CODE_BASE_SIZE_UINT32 16
469 #define EUR_CR_USE_CODE_BASE_NUM_ENTRIES 16