xref: /OK3568_Linux_fs/kernel/drivers/gpu/drm/etnaviv/state_hi.xml.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun #ifndef STATE_HI_XML
2*4882a593Smuzhiyun #define STATE_HI_XML
3*4882a593Smuzhiyun 
4*4882a593Smuzhiyun /* Autogenerated file, DO NOT EDIT manually!
5*4882a593Smuzhiyun 
6*4882a593Smuzhiyun This file was generated by the rules-ng-ng headergen tool in this git repository:
7*4882a593Smuzhiyun http://0x04.net/cgit/index.cgi/rules-ng-ng
8*4882a593Smuzhiyun git clone git://0x04.net/rules-ng-ng
9*4882a593Smuzhiyun 
10*4882a593Smuzhiyun The rules-ng-ng source files this header was generated from are:
11*4882a593Smuzhiyun - state.xml     (  26666 bytes, from 2019-12-20 21:20:35)
12*4882a593Smuzhiyun - common.xml    (  35468 bytes, from 2018-02-10 13:09:26)
13*4882a593Smuzhiyun - common_3d.xml (  15058 bytes, from 2019-12-28 20:02:03)
14*4882a593Smuzhiyun - state_hi.xml  (  30552 bytes, from 2019-12-28 20:02:48)
15*4882a593Smuzhiyun - copyright.xml (   1597 bytes, from 2018-02-10 13:09:26)
16*4882a593Smuzhiyun - state_2d.xml  (  51552 bytes, from 2018-02-10 13:09:26)
17*4882a593Smuzhiyun - state_3d.xml  (  83098 bytes, from 2019-12-28 20:02:03)
18*4882a593Smuzhiyun - state_blt.xml (  14252 bytes, from 2019-10-20 19:59:15)
19*4882a593Smuzhiyun - state_vg.xml  (   5975 bytes, from 2018-02-10 13:09:26)
20*4882a593Smuzhiyun 
21*4882a593Smuzhiyun Copyright (C) 2012-2019 by the following authors:
22*4882a593Smuzhiyun - Wladimir J. van der Laan <laanwj@gmail.com>
23*4882a593Smuzhiyun - Christian Gmeiner <christian.gmeiner@gmail.com>
24*4882a593Smuzhiyun - Lucas Stach <l.stach@pengutronix.de>
25*4882a593Smuzhiyun - Russell King <rmk@arm.linux.org.uk>
26*4882a593Smuzhiyun 
27*4882a593Smuzhiyun Permission is hereby granted, free of charge, to any person obtaining a
28*4882a593Smuzhiyun copy of this software and associated documentation files (the "Software"),
29*4882a593Smuzhiyun to deal in the Software without restriction, including without limitation
30*4882a593Smuzhiyun the rights to use, copy, modify, merge, publish, distribute, sub license,
31*4882a593Smuzhiyun and/or sell copies of the Software, and to permit persons to whom the
32*4882a593Smuzhiyun Software is furnished to do so, subject to the following conditions:
33*4882a593Smuzhiyun 
34*4882a593Smuzhiyun The above copyright notice and this permission notice (including the
35*4882a593Smuzhiyun next paragraph) shall be included in all copies or substantial portions
36*4882a593Smuzhiyun of the Software.
37*4882a593Smuzhiyun 
38*4882a593Smuzhiyun THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
39*4882a593Smuzhiyun IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
40*4882a593Smuzhiyun FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
41*4882a593Smuzhiyun THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
42*4882a593Smuzhiyun LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
43*4882a593Smuzhiyun FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
44*4882a593Smuzhiyun DEALINGS IN THE SOFTWARE.
45*4882a593Smuzhiyun */
46*4882a593Smuzhiyun 
47*4882a593Smuzhiyun 
48*4882a593Smuzhiyun #define MMU_EXCEPTION_SLAVE_NOT_PRESENT				0x00000001
49*4882a593Smuzhiyun #define MMU_EXCEPTION_PAGE_NOT_PRESENT				0x00000002
50*4882a593Smuzhiyun #define MMU_EXCEPTION_WRITE_VIOLATION				0x00000003
51*4882a593Smuzhiyun #define MMU_EXCEPTION_OUT_OF_BOUND				0x00000004
52*4882a593Smuzhiyun #define MMU_EXCEPTION_READ_SECURITY_VIOLATION			0x00000005
53*4882a593Smuzhiyun #define MMU_EXCEPTION_WRITE_SECURITY_VIOLATION			0x00000006
54*4882a593Smuzhiyun #define VIVS_HI							0x00000000
55*4882a593Smuzhiyun 
56*4882a593Smuzhiyun #define VIVS_HI_CLOCK_CONTROL					0x00000000
57*4882a593Smuzhiyun #define VIVS_HI_CLOCK_CONTROL_CLK3D_DIS				0x00000001
58*4882a593Smuzhiyun #define VIVS_HI_CLOCK_CONTROL_CLK2D_DIS				0x00000002
59*4882a593Smuzhiyun #define VIVS_HI_CLOCK_CONTROL_FSCALE_VAL__MASK			0x000001fc
60*4882a593Smuzhiyun #define VIVS_HI_CLOCK_CONTROL_FSCALE_VAL__SHIFT			2
61*4882a593Smuzhiyun #define VIVS_HI_CLOCK_CONTROL_FSCALE_VAL(x)			(((x) << VIVS_HI_CLOCK_CONTROL_FSCALE_VAL__SHIFT) & VIVS_HI_CLOCK_CONTROL_FSCALE_VAL__MASK)
62*4882a593Smuzhiyun #define VIVS_HI_CLOCK_CONTROL_FSCALE_CMD_LOAD			0x00000200
63*4882a593Smuzhiyun #define VIVS_HI_CLOCK_CONTROL_DISABLE_RAM_CLK_GATING		0x00000400
64*4882a593Smuzhiyun #define VIVS_HI_CLOCK_CONTROL_DISABLE_DEBUG_REGISTERS		0x00000800
65*4882a593Smuzhiyun #define VIVS_HI_CLOCK_CONTROL_SOFT_RESET			0x00001000
66*4882a593Smuzhiyun #define VIVS_HI_CLOCK_CONTROL_IDLE_3D				0x00010000
67*4882a593Smuzhiyun #define VIVS_HI_CLOCK_CONTROL_IDLE_2D				0x00020000
68*4882a593Smuzhiyun #define VIVS_HI_CLOCK_CONTROL_IDLE_VG				0x00040000
69*4882a593Smuzhiyun #define VIVS_HI_CLOCK_CONTROL_ISOLATE_GPU			0x00080000
70*4882a593Smuzhiyun #define VIVS_HI_CLOCK_CONTROL_DEBUG_PIXEL_PIPE__MASK		0x00f00000
71*4882a593Smuzhiyun #define VIVS_HI_CLOCK_CONTROL_DEBUG_PIXEL_PIPE__SHIFT		20
72*4882a593Smuzhiyun #define VIVS_HI_CLOCK_CONTROL_DEBUG_PIXEL_PIPE(x)		(((x) << VIVS_HI_CLOCK_CONTROL_DEBUG_PIXEL_PIPE__SHIFT) & VIVS_HI_CLOCK_CONTROL_DEBUG_PIXEL_PIPE__MASK)
73*4882a593Smuzhiyun 
74*4882a593Smuzhiyun #define VIVS_HI_IDLE_STATE					0x00000004
75*4882a593Smuzhiyun #define VIVS_HI_IDLE_STATE_FE					0x00000001
76*4882a593Smuzhiyun #define VIVS_HI_IDLE_STATE_DE					0x00000002
77*4882a593Smuzhiyun #define VIVS_HI_IDLE_STATE_PE					0x00000004
78*4882a593Smuzhiyun #define VIVS_HI_IDLE_STATE_SH					0x00000008
79*4882a593Smuzhiyun #define VIVS_HI_IDLE_STATE_PA					0x00000010
80*4882a593Smuzhiyun #define VIVS_HI_IDLE_STATE_SE					0x00000020
81*4882a593Smuzhiyun #define VIVS_HI_IDLE_STATE_RA					0x00000040
82*4882a593Smuzhiyun #define VIVS_HI_IDLE_STATE_TX					0x00000080
83*4882a593Smuzhiyun #define VIVS_HI_IDLE_STATE_VG					0x00000100
84*4882a593Smuzhiyun #define VIVS_HI_IDLE_STATE_IM					0x00000200
85*4882a593Smuzhiyun #define VIVS_HI_IDLE_STATE_FP					0x00000400
86*4882a593Smuzhiyun #define VIVS_HI_IDLE_STATE_TS					0x00000800
87*4882a593Smuzhiyun #define VIVS_HI_IDLE_STATE_BL					0x00001000
88*4882a593Smuzhiyun #define VIVS_HI_IDLE_STATE_ASYNCFE				0x00002000
89*4882a593Smuzhiyun #define VIVS_HI_IDLE_STATE_MC					0x00004000
90*4882a593Smuzhiyun #define VIVS_HI_IDLE_STATE_PPA					0x00008000
91*4882a593Smuzhiyun #define VIVS_HI_IDLE_STATE_WD					0x00010000
92*4882a593Smuzhiyun #define VIVS_HI_IDLE_STATE_NN					0x00020000
93*4882a593Smuzhiyun #define VIVS_HI_IDLE_STATE_TP					0x00040000
94*4882a593Smuzhiyun #define VIVS_HI_IDLE_STATE_AXI_LP				0x80000000
95*4882a593Smuzhiyun 
96*4882a593Smuzhiyun #define VIVS_HI_AXI_CONFIG					0x00000008
97*4882a593Smuzhiyun #define VIVS_HI_AXI_CONFIG_AWID__MASK				0x0000000f
98*4882a593Smuzhiyun #define VIVS_HI_AXI_CONFIG_AWID__SHIFT				0
99*4882a593Smuzhiyun #define VIVS_HI_AXI_CONFIG_AWID(x)				(((x) << VIVS_HI_AXI_CONFIG_AWID__SHIFT) & VIVS_HI_AXI_CONFIG_AWID__MASK)
100*4882a593Smuzhiyun #define VIVS_HI_AXI_CONFIG_ARID__MASK				0x000000f0
101*4882a593Smuzhiyun #define VIVS_HI_AXI_CONFIG_ARID__SHIFT				4
102*4882a593Smuzhiyun #define VIVS_HI_AXI_CONFIG_ARID(x)				(((x) << VIVS_HI_AXI_CONFIG_ARID__SHIFT) & VIVS_HI_AXI_CONFIG_ARID__MASK)
103*4882a593Smuzhiyun #define VIVS_HI_AXI_CONFIG_AWCACHE__MASK			0x00000f00
104*4882a593Smuzhiyun #define VIVS_HI_AXI_CONFIG_AWCACHE__SHIFT			8
105*4882a593Smuzhiyun #define VIVS_HI_AXI_CONFIG_AWCACHE(x)				(((x) << VIVS_HI_AXI_CONFIG_AWCACHE__SHIFT) & VIVS_HI_AXI_CONFIG_AWCACHE__MASK)
106*4882a593Smuzhiyun #define VIVS_HI_AXI_CONFIG_ARCACHE__MASK			0x0000f000
107*4882a593Smuzhiyun #define VIVS_HI_AXI_CONFIG_ARCACHE__SHIFT			12
108*4882a593Smuzhiyun #define VIVS_HI_AXI_CONFIG_ARCACHE(x)				(((x) << VIVS_HI_AXI_CONFIG_ARCACHE__SHIFT) & VIVS_HI_AXI_CONFIG_ARCACHE__MASK)
109*4882a593Smuzhiyun 
110*4882a593Smuzhiyun #define VIVS_HI_AXI_STATUS					0x0000000c
111*4882a593Smuzhiyun #define VIVS_HI_AXI_STATUS_WR_ERR_ID__MASK			0x0000000f
112*4882a593Smuzhiyun #define VIVS_HI_AXI_STATUS_WR_ERR_ID__SHIFT			0
113*4882a593Smuzhiyun #define VIVS_HI_AXI_STATUS_WR_ERR_ID(x)				(((x) << VIVS_HI_AXI_STATUS_WR_ERR_ID__SHIFT) & VIVS_HI_AXI_STATUS_WR_ERR_ID__MASK)
114*4882a593Smuzhiyun #define VIVS_HI_AXI_STATUS_RD_ERR_ID__MASK			0x000000f0
115*4882a593Smuzhiyun #define VIVS_HI_AXI_STATUS_RD_ERR_ID__SHIFT			4
116*4882a593Smuzhiyun #define VIVS_HI_AXI_STATUS_RD_ERR_ID(x)				(((x) << VIVS_HI_AXI_STATUS_RD_ERR_ID__SHIFT) & VIVS_HI_AXI_STATUS_RD_ERR_ID__MASK)
117*4882a593Smuzhiyun #define VIVS_HI_AXI_STATUS_DET_WR_ERR				0x00000100
118*4882a593Smuzhiyun #define VIVS_HI_AXI_STATUS_DET_RD_ERR				0x00000200
119*4882a593Smuzhiyun 
120*4882a593Smuzhiyun #define VIVS_HI_INTR_ACKNOWLEDGE				0x00000010
121*4882a593Smuzhiyun #define VIVS_HI_INTR_ACKNOWLEDGE_INTR_VEC__MASK			0x3fffffff
122*4882a593Smuzhiyun #define VIVS_HI_INTR_ACKNOWLEDGE_INTR_VEC__SHIFT		0
123*4882a593Smuzhiyun #define VIVS_HI_INTR_ACKNOWLEDGE_INTR_VEC(x)			(((x) << VIVS_HI_INTR_ACKNOWLEDGE_INTR_VEC__SHIFT) & VIVS_HI_INTR_ACKNOWLEDGE_INTR_VEC__MASK)
124*4882a593Smuzhiyun #define VIVS_HI_INTR_ACKNOWLEDGE_MMU_EXCEPTION			0x40000000
125*4882a593Smuzhiyun #define VIVS_HI_INTR_ACKNOWLEDGE_AXI_BUS_ERROR			0x80000000
126*4882a593Smuzhiyun 
127*4882a593Smuzhiyun #define VIVS_HI_INTR_ENBL					0x00000014
128*4882a593Smuzhiyun #define VIVS_HI_INTR_ENBL_INTR_ENBL_VEC__MASK			0xffffffff
129*4882a593Smuzhiyun #define VIVS_HI_INTR_ENBL_INTR_ENBL_VEC__SHIFT			0
130*4882a593Smuzhiyun #define VIVS_HI_INTR_ENBL_INTR_ENBL_VEC(x)			(((x) << VIVS_HI_INTR_ENBL_INTR_ENBL_VEC__SHIFT) & VIVS_HI_INTR_ENBL_INTR_ENBL_VEC__MASK)
131*4882a593Smuzhiyun 
132*4882a593Smuzhiyun #define VIVS_HI_CHIP_IDENTITY					0x00000018
133*4882a593Smuzhiyun #define VIVS_HI_CHIP_IDENTITY_FAMILY__MASK			0xff000000
134*4882a593Smuzhiyun #define VIVS_HI_CHIP_IDENTITY_FAMILY__SHIFT			24
135*4882a593Smuzhiyun #define VIVS_HI_CHIP_IDENTITY_FAMILY(x)				(((x) << VIVS_HI_CHIP_IDENTITY_FAMILY__SHIFT) & VIVS_HI_CHIP_IDENTITY_FAMILY__MASK)
136*4882a593Smuzhiyun #define VIVS_HI_CHIP_IDENTITY_PRODUCT__MASK			0x00ff0000
137*4882a593Smuzhiyun #define VIVS_HI_CHIP_IDENTITY_PRODUCT__SHIFT			16
138*4882a593Smuzhiyun #define VIVS_HI_CHIP_IDENTITY_PRODUCT(x)			(((x) << VIVS_HI_CHIP_IDENTITY_PRODUCT__SHIFT) & VIVS_HI_CHIP_IDENTITY_PRODUCT__MASK)
139*4882a593Smuzhiyun #define VIVS_HI_CHIP_IDENTITY_REVISION__MASK			0x0000f000
140*4882a593Smuzhiyun #define VIVS_HI_CHIP_IDENTITY_REVISION__SHIFT			12
141*4882a593Smuzhiyun #define VIVS_HI_CHIP_IDENTITY_REVISION(x)			(((x) << VIVS_HI_CHIP_IDENTITY_REVISION__SHIFT) & VIVS_HI_CHIP_IDENTITY_REVISION__MASK)
142*4882a593Smuzhiyun 
143*4882a593Smuzhiyun #define VIVS_HI_CHIP_FEATURE					0x0000001c
144*4882a593Smuzhiyun 
145*4882a593Smuzhiyun #define VIVS_HI_CHIP_MODEL					0x00000020
146*4882a593Smuzhiyun 
147*4882a593Smuzhiyun #define VIVS_HI_CHIP_REV					0x00000024
148*4882a593Smuzhiyun 
149*4882a593Smuzhiyun #define VIVS_HI_CHIP_DATE					0x00000028
150*4882a593Smuzhiyun 
151*4882a593Smuzhiyun #define VIVS_HI_CHIP_TIME					0x0000002c
152*4882a593Smuzhiyun 
153*4882a593Smuzhiyun #define VIVS_HI_CHIP_CUSTOMER_ID				0x00000030
154*4882a593Smuzhiyun 
155*4882a593Smuzhiyun #define VIVS_HI_CHIP_MINOR_FEATURE_0				0x00000034
156*4882a593Smuzhiyun 
157*4882a593Smuzhiyun #define VIVS_HI_CACHE_CONTROL					0x00000038
158*4882a593Smuzhiyun 
159*4882a593Smuzhiyun #define VIVS_HI_MEMORY_COUNTER_RESET				0x0000003c
160*4882a593Smuzhiyun 
161*4882a593Smuzhiyun #define VIVS_HI_PROFILE_READ_BYTES8				0x00000040
162*4882a593Smuzhiyun 
163*4882a593Smuzhiyun #define VIVS_HI_PROFILE_WRITE_BYTES8				0x00000044
164*4882a593Smuzhiyun 
165*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS					0x00000048
166*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_STREAM_COUNT__MASK			0x0000000f
167*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_STREAM_COUNT__SHIFT			0
168*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_STREAM_COUNT(x)			(((x) << VIVS_HI_CHIP_SPECS_STREAM_COUNT__SHIFT) & VIVS_HI_CHIP_SPECS_STREAM_COUNT__MASK)
169*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_REGISTER_MAX__MASK			0x000000f0
170*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_REGISTER_MAX__SHIFT			4
171*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_REGISTER_MAX(x)			(((x) << VIVS_HI_CHIP_SPECS_REGISTER_MAX__SHIFT) & VIVS_HI_CHIP_SPECS_REGISTER_MAX__MASK)
172*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_THREAD_COUNT__MASK			0x00000f00
173*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_THREAD_COUNT__SHIFT			8
174*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_THREAD_COUNT(x)			(((x) << VIVS_HI_CHIP_SPECS_THREAD_COUNT__SHIFT) & VIVS_HI_CHIP_SPECS_THREAD_COUNT__MASK)
175*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_VERTEX_CACHE_SIZE__MASK		0x0001f000
176*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_VERTEX_CACHE_SIZE__SHIFT		12
177*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_VERTEX_CACHE_SIZE(x)			(((x) << VIVS_HI_CHIP_SPECS_VERTEX_CACHE_SIZE__SHIFT) & VIVS_HI_CHIP_SPECS_VERTEX_CACHE_SIZE__MASK)
178*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_SHADER_CORE_COUNT__MASK		0x01f00000
179*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_SHADER_CORE_COUNT__SHIFT		20
180*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_SHADER_CORE_COUNT(x)			(((x) << VIVS_HI_CHIP_SPECS_SHADER_CORE_COUNT__SHIFT) & VIVS_HI_CHIP_SPECS_SHADER_CORE_COUNT__MASK)
181*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_PIXEL_PIPES__MASK			0x0e000000
182*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_PIXEL_PIPES__SHIFT			25
183*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_PIXEL_PIPES(x)			(((x) << VIVS_HI_CHIP_SPECS_PIXEL_PIPES__SHIFT) & VIVS_HI_CHIP_SPECS_PIXEL_PIPES__MASK)
184*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_VERTEX_OUTPUT_BUFFER_SIZE__MASK	0xf0000000
185*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_VERTEX_OUTPUT_BUFFER_SIZE__SHIFT	28
186*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_VERTEX_OUTPUT_BUFFER_SIZE(x)		(((x) << VIVS_HI_CHIP_SPECS_VERTEX_OUTPUT_BUFFER_SIZE__SHIFT) & VIVS_HI_CHIP_SPECS_VERTEX_OUTPUT_BUFFER_SIZE__MASK)
187*4882a593Smuzhiyun 
188*4882a593Smuzhiyun #define VIVS_HI_PROFILE_WRITE_BURSTS				0x0000004c
189*4882a593Smuzhiyun 
190*4882a593Smuzhiyun #define VIVS_HI_PROFILE_WRITE_REQUESTS				0x00000050
191*4882a593Smuzhiyun 
192*4882a593Smuzhiyun #define VIVS_HI_PROFILE_READ_BURSTS				0x00000058
193*4882a593Smuzhiyun 
194*4882a593Smuzhiyun #define VIVS_HI_PROFILE_READ_REQUESTS				0x0000005c
195*4882a593Smuzhiyun 
196*4882a593Smuzhiyun #define VIVS_HI_PROFILE_READ_LASTS				0x00000060
197*4882a593Smuzhiyun 
198*4882a593Smuzhiyun #define VIVS_HI_GP_OUT0						0x00000064
199*4882a593Smuzhiyun 
200*4882a593Smuzhiyun #define VIVS_HI_GP_OUT1						0x00000068
201*4882a593Smuzhiyun 
202*4882a593Smuzhiyun #define VIVS_HI_GP_OUT2						0x0000006c
203*4882a593Smuzhiyun 
204*4882a593Smuzhiyun #define VIVS_HI_AXI_CONTROL					0x00000070
205*4882a593Smuzhiyun #define VIVS_HI_AXI_CONTROL_WR_FULL_BURST_MODE			0x00000001
206*4882a593Smuzhiyun 
207*4882a593Smuzhiyun #define VIVS_HI_CHIP_MINOR_FEATURE_1				0x00000074
208*4882a593Smuzhiyun 
209*4882a593Smuzhiyun #define VIVS_HI_PROFILE_TOTAL_CYCLES				0x00000078
210*4882a593Smuzhiyun 
211*4882a593Smuzhiyun #define VIVS_HI_PROFILE_IDLE_CYCLES				0x0000007c
212*4882a593Smuzhiyun 
213*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_2					0x00000080
214*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_2_BUFFER_SIZE__MASK			0x000000ff
215*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_2_BUFFER_SIZE__SHIFT			0
216*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_2_BUFFER_SIZE(x)			(((x) << VIVS_HI_CHIP_SPECS_2_BUFFER_SIZE__SHIFT) & VIVS_HI_CHIP_SPECS_2_BUFFER_SIZE__MASK)
217*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_2_INSTRUCTION_COUNT__MASK		0x0000ff00
218*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_2_INSTRUCTION_COUNT__SHIFT		8
219*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_2_INSTRUCTION_COUNT(x)		(((x) << VIVS_HI_CHIP_SPECS_2_INSTRUCTION_COUNT__SHIFT) & VIVS_HI_CHIP_SPECS_2_INSTRUCTION_COUNT__MASK)
220*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_2_NUM_CONSTANTS__MASK		0xffff0000
221*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_2_NUM_CONSTANTS__SHIFT		16
222*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_2_NUM_CONSTANTS(x)			(((x) << VIVS_HI_CHIP_SPECS_2_NUM_CONSTANTS__SHIFT) & VIVS_HI_CHIP_SPECS_2_NUM_CONSTANTS__MASK)
223*4882a593Smuzhiyun 
224*4882a593Smuzhiyun #define VIVS_HI_CHIP_MINOR_FEATURE_2				0x00000084
225*4882a593Smuzhiyun 
226*4882a593Smuzhiyun #define VIVS_HI_CHIP_MINOR_FEATURE_3				0x00000088
227*4882a593Smuzhiyun 
228*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_3					0x0000008c
229*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_3_VARYINGS_COUNT__MASK		0x000001f0
230*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_3_VARYINGS_COUNT__SHIFT		4
231*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_3_VARYINGS_COUNT(x)			(((x) << VIVS_HI_CHIP_SPECS_3_VARYINGS_COUNT__SHIFT) & VIVS_HI_CHIP_SPECS_3_VARYINGS_COUNT__MASK)
232*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_3_GPU_CORE_COUNT__MASK		0x00000007
233*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_3_GPU_CORE_COUNT__SHIFT		0
234*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_3_GPU_CORE_COUNT(x)			(((x) << VIVS_HI_CHIP_SPECS_3_GPU_CORE_COUNT__SHIFT) & VIVS_HI_CHIP_SPECS_3_GPU_CORE_COUNT__MASK)
235*4882a593Smuzhiyun 
236*4882a593Smuzhiyun #define VIVS_HI_COMPRESSION_FLAGS				0x00000090
237*4882a593Smuzhiyun #define VIVS_HI_COMPRESSION_FLAGS_DEC300			0x00000040
238*4882a593Smuzhiyun 
239*4882a593Smuzhiyun #define VIVS_HI_CHIP_MINOR_FEATURE_4				0x00000094
240*4882a593Smuzhiyun 
241*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_4					0x0000009c
242*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_4_STREAM_COUNT__MASK			0x0001f000
243*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_4_STREAM_COUNT__SHIFT		12
244*4882a593Smuzhiyun #define VIVS_HI_CHIP_SPECS_4_STREAM_COUNT(x)			(((x) << VIVS_HI_CHIP_SPECS_4_STREAM_COUNT__SHIFT) & VIVS_HI_CHIP_SPECS_4_STREAM_COUNT__MASK)
245*4882a593Smuzhiyun 
246*4882a593Smuzhiyun #define VIVS_HI_CHIP_MINOR_FEATURE_5				0x000000a0
247*4882a593Smuzhiyun 
248*4882a593Smuzhiyun #define VIVS_HI_CHIP_PRODUCT_ID					0x000000a8
249*4882a593Smuzhiyun 
250*4882a593Smuzhiyun #define VIVS_HI_BLT_INTR					0x000000d4
251*4882a593Smuzhiyun 
252*4882a593Smuzhiyun #define VIVS_HI_CHIP_ECO_ID					0x000000e8
253*4882a593Smuzhiyun 
254*4882a593Smuzhiyun #define VIVS_HI_AUXBIT						0x000000ec
255*4882a593Smuzhiyun 
256*4882a593Smuzhiyun #define VIVS_PM							0x00000000
257*4882a593Smuzhiyun 
258*4882a593Smuzhiyun #define VIVS_PM_POWER_CONTROLS					0x00000100
259*4882a593Smuzhiyun #define VIVS_PM_POWER_CONTROLS_ENABLE_MODULE_CLOCK_GATING	0x00000001
260*4882a593Smuzhiyun #define VIVS_PM_POWER_CONTROLS_DISABLE_STALL_MODULE_CLOCK_GATING	0x00000002
261*4882a593Smuzhiyun #define VIVS_PM_POWER_CONTROLS_DISABLE_STARVE_MODULE_CLOCK_GATING	0x00000004
262*4882a593Smuzhiyun #define VIVS_PM_POWER_CONTROLS_TURN_ON_COUNTER__MASK		0x000000f0
263*4882a593Smuzhiyun #define VIVS_PM_POWER_CONTROLS_TURN_ON_COUNTER__SHIFT		4
264*4882a593Smuzhiyun #define VIVS_PM_POWER_CONTROLS_TURN_ON_COUNTER(x)		(((x) << VIVS_PM_POWER_CONTROLS_TURN_ON_COUNTER__SHIFT) & VIVS_PM_POWER_CONTROLS_TURN_ON_COUNTER__MASK)
265*4882a593Smuzhiyun #define VIVS_PM_POWER_CONTROLS_TURN_OFF_COUNTER__MASK		0xffff0000
266*4882a593Smuzhiyun #define VIVS_PM_POWER_CONTROLS_TURN_OFF_COUNTER__SHIFT		16
267*4882a593Smuzhiyun #define VIVS_PM_POWER_CONTROLS_TURN_OFF_COUNTER(x)		(((x) << VIVS_PM_POWER_CONTROLS_TURN_OFF_COUNTER__SHIFT) & VIVS_PM_POWER_CONTROLS_TURN_OFF_COUNTER__MASK)
268*4882a593Smuzhiyun 
269*4882a593Smuzhiyun #define VIVS_PM_MODULE_CONTROLS					0x00000104
270*4882a593Smuzhiyun #define VIVS_PM_MODULE_CONTROLS_DISABLE_MODULE_CLOCK_GATING_FE	0x00000001
271*4882a593Smuzhiyun #define VIVS_PM_MODULE_CONTROLS_DISABLE_MODULE_CLOCK_GATING_DE	0x00000002
272*4882a593Smuzhiyun #define VIVS_PM_MODULE_CONTROLS_DISABLE_MODULE_CLOCK_GATING_PE	0x00000004
273*4882a593Smuzhiyun #define VIVS_PM_MODULE_CONTROLS_DISABLE_MODULE_CLOCK_GATING_SH	0x00000008
274*4882a593Smuzhiyun #define VIVS_PM_MODULE_CONTROLS_DISABLE_MODULE_CLOCK_GATING_PA	0x00000010
275*4882a593Smuzhiyun #define VIVS_PM_MODULE_CONTROLS_DISABLE_MODULE_CLOCK_GATING_SE	0x00000020
276*4882a593Smuzhiyun #define VIVS_PM_MODULE_CONTROLS_DISABLE_MODULE_CLOCK_GATING_RA	0x00000040
277*4882a593Smuzhiyun #define VIVS_PM_MODULE_CONTROLS_DISABLE_MODULE_CLOCK_GATING_TX	0x00000080
278*4882a593Smuzhiyun #define VIVS_PM_MODULE_CONTROLS_DISABLE_MODULE_CLOCK_GATING_RA_EZ	0x00010000
279*4882a593Smuzhiyun #define VIVS_PM_MODULE_CONTROLS_DISABLE_MODULE_CLOCK_GATING_RA_HZ	0x00020000
280*4882a593Smuzhiyun 
281*4882a593Smuzhiyun #define VIVS_PM_MODULE_STATUS					0x00000108
282*4882a593Smuzhiyun #define VIVS_PM_MODULE_STATUS_MODULE_CLOCK_GATED_FE		0x00000001
283*4882a593Smuzhiyun #define VIVS_PM_MODULE_STATUS_MODULE_CLOCK_GATED_DE		0x00000002
284*4882a593Smuzhiyun #define VIVS_PM_MODULE_STATUS_MODULE_CLOCK_GATED_PE		0x00000004
285*4882a593Smuzhiyun #define VIVS_PM_MODULE_STATUS_MODULE_CLOCK_GATED_SH		0x00000008
286*4882a593Smuzhiyun #define VIVS_PM_MODULE_STATUS_MODULE_CLOCK_GATED_PA		0x00000010
287*4882a593Smuzhiyun #define VIVS_PM_MODULE_STATUS_MODULE_CLOCK_GATED_SE		0x00000020
288*4882a593Smuzhiyun #define VIVS_PM_MODULE_STATUS_MODULE_CLOCK_GATED_RA		0x00000040
289*4882a593Smuzhiyun #define VIVS_PM_MODULE_STATUS_MODULE_CLOCK_GATED_TX		0x00000080
290*4882a593Smuzhiyun 
291*4882a593Smuzhiyun #define VIVS_PM_PULSE_EATER					0x0000010c
292*4882a593Smuzhiyun #define VIVS_PM_PULSE_EATER_DISABLE				0x00000001
293*4882a593Smuzhiyun #define VIVS_PM_PULSE_EATER_DVFS_PERIOD__MASK			0x0000ff00
294*4882a593Smuzhiyun #define VIVS_PM_PULSE_EATER_DVFS_PERIOD__SHIFT			8
295*4882a593Smuzhiyun #define VIVS_PM_PULSE_EATER_DVFS_PERIOD(x)			(((x) << VIVS_PM_PULSE_EATER_DVFS_PERIOD__SHIFT) & VIVS_PM_PULSE_EATER_DVFS_PERIOD__MASK)
296*4882a593Smuzhiyun #define VIVS_PM_PULSE_EATER_UNK16				0x00010000
297*4882a593Smuzhiyun #define VIVS_PM_PULSE_EATER_UNK17				0x00020000
298*4882a593Smuzhiyun #define VIVS_PM_PULSE_EATER_INTERNAL_DFS			0x00040000
299*4882a593Smuzhiyun #define VIVS_PM_PULSE_EATER_UNK19				0x00080000
300*4882a593Smuzhiyun #define VIVS_PM_PULSE_EATER_UNK20				0x00100000
301*4882a593Smuzhiyun #define VIVS_PM_PULSE_EATER_UNK22				0x00400000
302*4882a593Smuzhiyun #define VIVS_PM_PULSE_EATER_UNK23				0x00800000
303*4882a593Smuzhiyun 
304*4882a593Smuzhiyun #define VIVS_MMUv2						0x00000000
305*4882a593Smuzhiyun 
306*4882a593Smuzhiyun #define VIVS_MMUv2_SAFE_ADDRESS					0x00000180
307*4882a593Smuzhiyun 
308*4882a593Smuzhiyun #define VIVS_MMUv2_CONFIGURATION				0x00000184
309*4882a593Smuzhiyun #define VIVS_MMUv2_CONFIGURATION_MODE__MASK			0x00000001
310*4882a593Smuzhiyun #define VIVS_MMUv2_CONFIGURATION_MODE__SHIFT			0
311*4882a593Smuzhiyun #define VIVS_MMUv2_CONFIGURATION_MODE_MODE4_K			0x00000000
312*4882a593Smuzhiyun #define VIVS_MMUv2_CONFIGURATION_MODE_MODE1_K			0x00000001
313*4882a593Smuzhiyun #define VIVS_MMUv2_CONFIGURATION_MODE_MASK			0x00000008
314*4882a593Smuzhiyun #define VIVS_MMUv2_CONFIGURATION_FLUSH__MASK			0x00000010
315*4882a593Smuzhiyun #define VIVS_MMUv2_CONFIGURATION_FLUSH__SHIFT			4
316*4882a593Smuzhiyun #define VIVS_MMUv2_CONFIGURATION_FLUSH_FLUSH			0x00000010
317*4882a593Smuzhiyun #define VIVS_MMUv2_CONFIGURATION_FLUSH_MASK			0x00000080
318*4882a593Smuzhiyun #define VIVS_MMUv2_CONFIGURATION_ADDRESS_MASK			0x00000100
319*4882a593Smuzhiyun #define VIVS_MMUv2_CONFIGURATION_ADDRESS__MASK			0xfffffc00
320*4882a593Smuzhiyun #define VIVS_MMUv2_CONFIGURATION_ADDRESS__SHIFT			10
321*4882a593Smuzhiyun #define VIVS_MMUv2_CONFIGURATION_ADDRESS(x)			(((x) << VIVS_MMUv2_CONFIGURATION_ADDRESS__SHIFT) & VIVS_MMUv2_CONFIGURATION_ADDRESS__MASK)
322*4882a593Smuzhiyun 
323*4882a593Smuzhiyun #define VIVS_MMUv2_STATUS					0x00000188
324*4882a593Smuzhiyun #define VIVS_MMUv2_STATUS_EXCEPTION0__MASK			0x00000003
325*4882a593Smuzhiyun #define VIVS_MMUv2_STATUS_EXCEPTION0__SHIFT			0
326*4882a593Smuzhiyun #define VIVS_MMUv2_STATUS_EXCEPTION0(x)				(((x) << VIVS_MMUv2_STATUS_EXCEPTION0__SHIFT) & VIVS_MMUv2_STATUS_EXCEPTION0__MASK)
327*4882a593Smuzhiyun #define VIVS_MMUv2_STATUS_EXCEPTION1__MASK			0x00000030
328*4882a593Smuzhiyun #define VIVS_MMUv2_STATUS_EXCEPTION1__SHIFT			4
329*4882a593Smuzhiyun #define VIVS_MMUv2_STATUS_EXCEPTION1(x)				(((x) << VIVS_MMUv2_STATUS_EXCEPTION1__SHIFT) & VIVS_MMUv2_STATUS_EXCEPTION1__MASK)
330*4882a593Smuzhiyun #define VIVS_MMUv2_STATUS_EXCEPTION2__MASK			0x00000300
331*4882a593Smuzhiyun #define VIVS_MMUv2_STATUS_EXCEPTION2__SHIFT			8
332*4882a593Smuzhiyun #define VIVS_MMUv2_STATUS_EXCEPTION2(x)				(((x) << VIVS_MMUv2_STATUS_EXCEPTION2__SHIFT) & VIVS_MMUv2_STATUS_EXCEPTION2__MASK)
333*4882a593Smuzhiyun #define VIVS_MMUv2_STATUS_EXCEPTION3__MASK			0x00003000
334*4882a593Smuzhiyun #define VIVS_MMUv2_STATUS_EXCEPTION3__SHIFT			12
335*4882a593Smuzhiyun #define VIVS_MMUv2_STATUS_EXCEPTION3(x)				(((x) << VIVS_MMUv2_STATUS_EXCEPTION3__SHIFT) & VIVS_MMUv2_STATUS_EXCEPTION3__MASK)
336*4882a593Smuzhiyun 
337*4882a593Smuzhiyun #define VIVS_MMUv2_CONTROL					0x0000018c
338*4882a593Smuzhiyun #define VIVS_MMUv2_CONTROL_ENABLE				0x00000001
339*4882a593Smuzhiyun 
340*4882a593Smuzhiyun #define VIVS_MMUv2_EXCEPTION_ADDR(i0)			       (0x00000190 + 0x4*(i0))
341*4882a593Smuzhiyun #define VIVS_MMUv2_EXCEPTION_ADDR__ESIZE			0x00000004
342*4882a593Smuzhiyun #define VIVS_MMUv2_EXCEPTION_ADDR__LEN				0x00000004
343*4882a593Smuzhiyun 
344*4882a593Smuzhiyun #define VIVS_MMUv2_PROFILE_BLT_READ				0x000001a4
345*4882a593Smuzhiyun 
346*4882a593Smuzhiyun #define VIVS_MMUv2_PTA_CONFIG					0x000001ac
347*4882a593Smuzhiyun #define VIVS_MMUv2_PTA_CONFIG_INDEX__MASK			0x0000ffff
348*4882a593Smuzhiyun #define VIVS_MMUv2_PTA_CONFIG_INDEX__SHIFT			0
349*4882a593Smuzhiyun #define VIVS_MMUv2_PTA_CONFIG_INDEX(x)				(((x) << VIVS_MMUv2_PTA_CONFIG_INDEX__SHIFT) & VIVS_MMUv2_PTA_CONFIG_INDEX__MASK)
350*4882a593Smuzhiyun #define VIVS_MMUv2_PTA_CONFIG_UNK16				0x00010000
351*4882a593Smuzhiyun 
352*4882a593Smuzhiyun #define VIVS_MMUv2_AXI_POLICY(i0)			       (0x000001c0 + 0x4*(i0))
353*4882a593Smuzhiyun #define VIVS_MMUv2_AXI_POLICY__ESIZE				0x00000004
354*4882a593Smuzhiyun #define VIVS_MMUv2_AXI_POLICY__LEN				0x00000008
355*4882a593Smuzhiyun 
356*4882a593Smuzhiyun #define VIVS_MMUv2_SEC_EXCEPTION_ADDR				0x00000380
357*4882a593Smuzhiyun 
358*4882a593Smuzhiyun #define VIVS_MMUv2_SEC_STATUS					0x00000384
359*4882a593Smuzhiyun #define VIVS_MMUv2_SEC_STATUS_EXCEPTION0__MASK			0x00000003
360*4882a593Smuzhiyun #define VIVS_MMUv2_SEC_STATUS_EXCEPTION0__SHIFT			0
361*4882a593Smuzhiyun #define VIVS_MMUv2_SEC_STATUS_EXCEPTION0(x)			(((x) << VIVS_MMUv2_SEC_STATUS_EXCEPTION0__SHIFT) & VIVS_MMUv2_SEC_STATUS_EXCEPTION0__MASK)
362*4882a593Smuzhiyun #define VIVS_MMUv2_SEC_STATUS_EXCEPTION1__MASK			0x00000030
363*4882a593Smuzhiyun #define VIVS_MMUv2_SEC_STATUS_EXCEPTION1__SHIFT			4
364*4882a593Smuzhiyun #define VIVS_MMUv2_SEC_STATUS_EXCEPTION1(x)			(((x) << VIVS_MMUv2_SEC_STATUS_EXCEPTION1__SHIFT) & VIVS_MMUv2_SEC_STATUS_EXCEPTION1__MASK)
365*4882a593Smuzhiyun #define VIVS_MMUv2_SEC_STATUS_EXCEPTION2__MASK			0x00000300
366*4882a593Smuzhiyun #define VIVS_MMUv2_SEC_STATUS_EXCEPTION2__SHIFT			8
367*4882a593Smuzhiyun #define VIVS_MMUv2_SEC_STATUS_EXCEPTION2(x)			(((x) << VIVS_MMUv2_SEC_STATUS_EXCEPTION2__SHIFT) & VIVS_MMUv2_SEC_STATUS_EXCEPTION2__MASK)
368*4882a593Smuzhiyun #define VIVS_MMUv2_SEC_STATUS_EXCEPTION3__MASK			0x00003000
369*4882a593Smuzhiyun #define VIVS_MMUv2_SEC_STATUS_EXCEPTION3__SHIFT			12
370*4882a593Smuzhiyun #define VIVS_MMUv2_SEC_STATUS_EXCEPTION3(x)			(((x) << VIVS_MMUv2_SEC_STATUS_EXCEPTION3__SHIFT) & VIVS_MMUv2_SEC_STATUS_EXCEPTION3__MASK)
371*4882a593Smuzhiyun 
372*4882a593Smuzhiyun #define VIVS_MMUv2_SEC_CONTROL					0x00000388
373*4882a593Smuzhiyun #define VIVS_MMUv2_SEC_CONTROL_ENABLE				0x00000001
374*4882a593Smuzhiyun 
375*4882a593Smuzhiyun #define VIVS_MMUv2_PTA_ADDRESS_LOW				0x0000038c
376*4882a593Smuzhiyun 
377*4882a593Smuzhiyun #define VIVS_MMUv2_PTA_ADDRESS_HIGH				0x00000390
378*4882a593Smuzhiyun 
379*4882a593Smuzhiyun #define VIVS_MMUv2_PTA_CONTROL					0x00000394
380*4882a593Smuzhiyun #define VIVS_MMUv2_PTA_CONTROL_ENABLE				0x00000001
381*4882a593Smuzhiyun 
382*4882a593Smuzhiyun #define VIVS_MMUv2_NONSEC_SAFE_ADDR_LOW				0x00000398
383*4882a593Smuzhiyun 
384*4882a593Smuzhiyun #define VIVS_MMUv2_SEC_SAFE_ADDR_LOW				0x0000039c
385*4882a593Smuzhiyun 
386*4882a593Smuzhiyun #define VIVS_MMUv2_SAFE_ADDRESS_CONFIG				0x000003a0
387*4882a593Smuzhiyun #define VIVS_MMUv2_SAFE_ADDRESS_CONFIG_NON_SEC_SAFE_ADDR_HIGH__MASK	0x000000ff
388*4882a593Smuzhiyun #define VIVS_MMUv2_SAFE_ADDRESS_CONFIG_NON_SEC_SAFE_ADDR_HIGH__SHIFT	0
389*4882a593Smuzhiyun #define VIVS_MMUv2_SAFE_ADDRESS_CONFIG_NON_SEC_SAFE_ADDR_HIGH(x)	(((x) << VIVS_MMUv2_SAFE_ADDRESS_CONFIG_NON_SEC_SAFE_ADDR_HIGH__SHIFT) & VIVS_MMUv2_SAFE_ADDRESS_CONFIG_NON_SEC_SAFE_ADDR_HIGH__MASK)
390*4882a593Smuzhiyun #define VIVS_MMUv2_SAFE_ADDRESS_CONFIG_UNK15			0x00008000
391*4882a593Smuzhiyun #define VIVS_MMUv2_SAFE_ADDRESS_CONFIG_SEC_SAFE_ADDR_HIGH__MASK	0x00ff0000
392*4882a593Smuzhiyun #define VIVS_MMUv2_SAFE_ADDRESS_CONFIG_SEC_SAFE_ADDR_HIGH__SHIFT	16
393*4882a593Smuzhiyun #define VIVS_MMUv2_SAFE_ADDRESS_CONFIG_SEC_SAFE_ADDR_HIGH(x)	(((x) << VIVS_MMUv2_SAFE_ADDRESS_CONFIG_SEC_SAFE_ADDR_HIGH__SHIFT) & VIVS_MMUv2_SAFE_ADDRESS_CONFIG_SEC_SAFE_ADDR_HIGH__MASK)
394*4882a593Smuzhiyun #define VIVS_MMUv2_SAFE_ADDRESS_CONFIG_UNK31			0x80000000
395*4882a593Smuzhiyun 
396*4882a593Smuzhiyun #define VIVS_MMUv2_SEC_COMMAND_CONTROL				0x000003a4
397*4882a593Smuzhiyun #define VIVS_MMUv2_SEC_COMMAND_CONTROL_PREFETCH__MASK		0x0000ffff
398*4882a593Smuzhiyun #define VIVS_MMUv2_SEC_COMMAND_CONTROL_PREFETCH__SHIFT		0
399*4882a593Smuzhiyun #define VIVS_MMUv2_SEC_COMMAND_CONTROL_PREFETCH(x)		(((x) << VIVS_MMUv2_SEC_COMMAND_CONTROL_PREFETCH__SHIFT) & VIVS_MMUv2_SEC_COMMAND_CONTROL_PREFETCH__MASK)
400*4882a593Smuzhiyun #define VIVS_MMUv2_SEC_COMMAND_CONTROL_ENABLE			0x00010000
401*4882a593Smuzhiyun 
402*4882a593Smuzhiyun #define VIVS_MMUv2_AHB_CONTROL					0x000003a8
403*4882a593Smuzhiyun #define VIVS_MMUv2_AHB_CONTROL_RESET				0x00000001
404*4882a593Smuzhiyun #define VIVS_MMUv2_AHB_CONTROL_NONSEC_ACCESS			0x00000002
405*4882a593Smuzhiyun 
406*4882a593Smuzhiyun #define VIVS_MC							0x00000000
407*4882a593Smuzhiyun 
408*4882a593Smuzhiyun #define VIVS_MC_MMU_FE_PAGE_TABLE				0x00000400
409*4882a593Smuzhiyun 
410*4882a593Smuzhiyun #define VIVS_MC_MMU_TX_PAGE_TABLE				0x00000404
411*4882a593Smuzhiyun 
412*4882a593Smuzhiyun #define VIVS_MC_MMU_PE_PAGE_TABLE				0x00000408
413*4882a593Smuzhiyun 
414*4882a593Smuzhiyun #define VIVS_MC_MMU_PEZ_PAGE_TABLE				0x0000040c
415*4882a593Smuzhiyun 
416*4882a593Smuzhiyun #define VIVS_MC_MMU_RA_PAGE_TABLE				0x00000410
417*4882a593Smuzhiyun 
418*4882a593Smuzhiyun #define VIVS_MC_DEBUG_MEMORY					0x00000414
419*4882a593Smuzhiyun #define VIVS_MC_DEBUG_MEMORY_SPECIAL_PATCH_GC320		0x00000008
420*4882a593Smuzhiyun #define VIVS_MC_DEBUG_MEMORY_FAST_CLEAR_BYPASS			0x00100000
421*4882a593Smuzhiyun #define VIVS_MC_DEBUG_MEMORY_COMPRESSION_BYPASS			0x00200000
422*4882a593Smuzhiyun 
423*4882a593Smuzhiyun #define VIVS_MC_MEMORY_BASE_ADDR_RA				0x00000418
424*4882a593Smuzhiyun 
425*4882a593Smuzhiyun #define VIVS_MC_MEMORY_BASE_ADDR_FE				0x0000041c
426*4882a593Smuzhiyun 
427*4882a593Smuzhiyun #define VIVS_MC_MEMORY_BASE_ADDR_TX				0x00000420
428*4882a593Smuzhiyun 
429*4882a593Smuzhiyun #define VIVS_MC_MEMORY_BASE_ADDR_PEZ				0x00000424
430*4882a593Smuzhiyun 
431*4882a593Smuzhiyun #define VIVS_MC_MEMORY_BASE_ADDR_PE				0x00000428
432*4882a593Smuzhiyun 
433*4882a593Smuzhiyun #define VIVS_MC_MEMORY_TIMING_CONTROL				0x0000042c
434*4882a593Smuzhiyun 
435*4882a593Smuzhiyun #define VIVS_MC_MEMORY_FLUSH					0x00000430
436*4882a593Smuzhiyun 
437*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CYCLE_COUNTER				0x00000438
438*4882a593Smuzhiyun 
439*4882a593Smuzhiyun #define VIVS_MC_DEBUG_READ0					0x0000043c
440*4882a593Smuzhiyun 
441*4882a593Smuzhiyun #define VIVS_MC_DEBUG_READ1					0x00000440
442*4882a593Smuzhiyun 
443*4882a593Smuzhiyun #define VIVS_MC_DEBUG_WRITE					0x00000444
444*4882a593Smuzhiyun 
445*4882a593Smuzhiyun #define VIVS_MC_PROFILE_RA_READ					0x00000448
446*4882a593Smuzhiyun 
447*4882a593Smuzhiyun #define VIVS_MC_PROFILE_TX_READ					0x0000044c
448*4882a593Smuzhiyun 
449*4882a593Smuzhiyun #define VIVS_MC_PROFILE_FE_READ					0x00000450
450*4882a593Smuzhiyun 
451*4882a593Smuzhiyun #define VIVS_MC_PROFILE_PE_READ					0x00000454
452*4882a593Smuzhiyun 
453*4882a593Smuzhiyun #define VIVS_MC_PROFILE_DE_READ					0x00000458
454*4882a593Smuzhiyun 
455*4882a593Smuzhiyun #define VIVS_MC_PROFILE_SH_READ					0x0000045c
456*4882a593Smuzhiyun 
457*4882a593Smuzhiyun #define VIVS_MC_PROFILE_PA_READ					0x00000460
458*4882a593Smuzhiyun 
459*4882a593Smuzhiyun #define VIVS_MC_PROFILE_SE_READ					0x00000464
460*4882a593Smuzhiyun 
461*4882a593Smuzhiyun #define VIVS_MC_PROFILE_MC_READ					0x00000468
462*4882a593Smuzhiyun 
463*4882a593Smuzhiyun #define VIVS_MC_PROFILE_HI_READ					0x0000046c
464*4882a593Smuzhiyun 
465*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG0					0x00000470
466*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG0_FE__MASK			0x000000ff
467*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG0_FE__SHIFT			0
468*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG0_FE_RESET			0x0000000f
469*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG0_DE__MASK			0x0000ff00
470*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG0_DE__SHIFT			8
471*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG0_DE_RESET			0x00000f00
472*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG0_PE__MASK			0x00ff0000
473*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG0_PE__SHIFT			16
474*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG0_PE_PIXEL_COUNT_KILLED_BY_COLOR_PIPE	0x00000000
475*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG0_PE_PIXEL_COUNT_KILLED_BY_DEPTH_PIPE	0x00010000
476*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG0_PE_PIXEL_COUNT_DRAWN_BY_COLOR_PIPE	0x00020000
477*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG0_PE_PIXEL_COUNT_DRAWN_BY_DEPTH_PIPE	0x00030000
478*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG0_PE_PIXELS_RENDERED_2D		0x000b0000
479*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG0_PE_RESET			0x000f0000
480*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG0_SH__MASK			0xff000000
481*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG0_SH__SHIFT			24
482*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG0_SH_SHADER_CYCLES		0x04000000
483*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG0_SH_PS_INST_COUNTER		0x07000000
484*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG0_SH_RENDERED_PIXEL_COUNTER	0x08000000
485*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG0_SH_VS_INST_COUNTER		0x09000000
486*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG0_SH_RENDERED_VERTICE_COUNTER	0x0a000000
487*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG0_SH_VTX_BRANCH_INST_COUNTER	0x0b000000
488*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG0_SH_VTX_TEXLD_INST_COUNTER	0x0c000000
489*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG0_SH_PXL_BRANCH_INST_COUNTER	0x0d000000
490*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG0_SH_PXL_TEXLD_INST_COUNTER	0x0e000000
491*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG0_SH_RESET			0x0f000000
492*4882a593Smuzhiyun 
493*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1					0x00000474
494*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_PA__MASK			0x000000ff
495*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_PA__SHIFT			0
496*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_PA_INPUT_VTX_COUNTER		0x00000003
497*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_PA_INPUT_PRIM_COUNTER		0x00000004
498*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_PA_OUTPUT_PRIM_COUNTER		0x00000005
499*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_PA_DEPTH_CLIPPED_COUNTER	0x00000006
500*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_PA_TRIVIAL_REJECTED_COUNTER	0x00000007
501*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_PA_CULLED_COUNTER		0x00000008
502*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_PA_RESET			0x0000000f
503*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_SE__MASK			0x0000ff00
504*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_SE__SHIFT			8
505*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_SE_CULLED_TRIANGLE_COUNT	0x00000000
506*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_SE_CULLED_LINES_COUNT		0x00000100
507*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_SE_RESET			0x00000f00
508*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_RA__MASK			0x00ff0000
509*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_RA__SHIFT			16
510*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_RA_VALID_PIXEL_COUNT		0x00000000
511*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_RA_TOTAL_QUAD_COUNT		0x00010000
512*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_RA_VALID_QUAD_COUNT_AFTER_EARLY_Z	0x00020000
513*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_RA_TOTAL_PRIMITIVE_COUNT	0x00030000
514*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_RA_PIPE_CACHE_MISS_COUNTER	0x00090000
515*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_RA_PREFETCH_CACHE_MISS_COUNTER	0x000a0000
516*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_RA_CULLED_QUAD_COUNT		0x000b0000
517*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_RA_RESET			0x000f0000
518*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_TX__MASK			0xff000000
519*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_TX__SHIFT			24
520*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_TX_TOTAL_BILINEAR_REQUESTS	0x00000000
521*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_TX_TOTAL_TRILINEAR_REQUESTS	0x01000000
522*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_TX_TOTAL_DISCARDED_TEXTURE_REQUESTS	0x02000000
523*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_TX_TOTAL_TEXTURE_REQUESTS	0x03000000
524*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_TX_UNKNOWN			0x04000000
525*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_TX_MEM_READ_COUNT		0x05000000
526*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_TX_MEM_READ_IN_8B_COUNT		0x06000000
527*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_TX_CACHE_MISS_COUNT		0x07000000
528*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_TX_CACHE_HIT_TEXEL_COUNT	0x08000000
529*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_TX_CACHE_MISS_TEXEL_COUNT	0x09000000
530*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG1_TX_RESET			0x0f000000
531*4882a593Smuzhiyun 
532*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG2					0x00000478
533*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG2_MC__MASK			0x000000ff
534*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG2_MC__SHIFT			0
535*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG2_MC_TOTAL_READ_REQ_8B_FROM_PIPELINE	0x00000001
536*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG2_MC_TOTAL_READ_REQ_8B_FROM_IP	0x00000002
537*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG2_MC_TOTAL_WRITE_REQ_8B_FROM_PIPELINE	0x00000003
538*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG2_MC_RESET			0x0000000f
539*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG2_HI__MASK			0x0000ff00
540*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG2_HI__SHIFT			8
541*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG2_HI_AXI_CYCLES_READ_REQUEST_STALLED	0x00000000
542*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG2_HI_AXI_CYCLES_WRITE_REQUEST_STALLED	0x00000100
543*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG2_HI_AXI_CYCLES_WRITE_DATA_STALLED	0x00000200
544*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG2_HI_RESET			0x00000f00
545*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG2_BLT__MASK			0xff000000
546*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG2_BLT__SHIFT			24
547*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG2_BLT_UNK0			0x00000000
548*4882a593Smuzhiyun 
549*4882a593Smuzhiyun #define VIVS_MC_PROFILE_CONFIG3					0x0000047c
550*4882a593Smuzhiyun 
551*4882a593Smuzhiyun #define VIVS_MC_BUS_CONFIG					0x00000480
552*4882a593Smuzhiyun #define VIVS_MC_BUS_CONFIG_FE_BUS_CONFIG__MASK			0x0000000f
553*4882a593Smuzhiyun #define VIVS_MC_BUS_CONFIG_FE_BUS_CONFIG__SHIFT			0
554*4882a593Smuzhiyun #define VIVS_MC_BUS_CONFIG_FE_BUS_CONFIG(x)			(((x) << VIVS_MC_BUS_CONFIG_FE_BUS_CONFIG__SHIFT) & VIVS_MC_BUS_CONFIG_FE_BUS_CONFIG__MASK)
555*4882a593Smuzhiyun #define VIVS_MC_BUS_CONFIG_TX_BUS_CONFIG__MASK			0x000000f0
556*4882a593Smuzhiyun #define VIVS_MC_BUS_CONFIG_TX_BUS_CONFIG__SHIFT			4
557*4882a593Smuzhiyun #define VIVS_MC_BUS_CONFIG_TX_BUS_CONFIG(x)			(((x) << VIVS_MC_BUS_CONFIG_TX_BUS_CONFIG__SHIFT) & VIVS_MC_BUS_CONFIG_TX_BUS_CONFIG__MASK)
558*4882a593Smuzhiyun 
559*4882a593Smuzhiyun #define VIVS_MC_START_COMPOSITION				0x00000554
560*4882a593Smuzhiyun 
561*4882a593Smuzhiyun #define VIVS_MC_FLAGS						0x00000558
562*4882a593Smuzhiyun #define VIVS_MC_FLAGS_128B_MERGE				0x00000001
563*4882a593Smuzhiyun #define VIVS_MC_FLAGS_TPCV11_COMPRESSION			0x08000000
564*4882a593Smuzhiyun 
565*4882a593Smuzhiyun #define VIVS_MC_L2_CACHE_CONFIG					0x0000055c
566*4882a593Smuzhiyun 
567*4882a593Smuzhiyun #define VIVS_MC_PROFILE_L2_READ					0x00000564
568*4882a593Smuzhiyun 
569*4882a593Smuzhiyun 
570*4882a593Smuzhiyun #endif /* STATE_HI_XML */
571