blob: 26c1c394d1262f9c95f2bc778146c21e7413af3d [file] [log] [blame]
Rajesh Kemisettia98bf592017-01-02 15:16:53 +05301/* Copyright (c) 2002,2007-2017, The Linux Foundation. All rights reserved.
Shrenuj Bansala419c792016-10-20 14:05:11 -07002 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License version 2 and
5 * only version 2 as published by the Free Software Foundation.
6 *
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU General Public License for more details.
11 *
12 */
13
14#define ANY_ID (~0)
15
16static const struct adreno_gpu_core adreno_gpulist[] = {
17 {
18 .gpurev = ADRENO_REV_A306,
19 .core = 3,
20 .major = 0,
21 .minor = 6,
22 .patchid = 0x00,
Shrenuj Bansalae672812016-02-24 14:17:30 -080023 .features = ADRENO_SOFT_FAULT_DETECT,
Shrenuj Bansala419c792016-10-20 14:05:11 -070024 .pm4fw_name = "a300_pm4.fw",
25 .pfpfw_name = "a300_pfp.fw",
26 .gpudev = &adreno_a3xx_gpudev,
27 .gmem_size = SZ_128K,
28 .busy_mask = 0x7FFFFFFE,
29 },
30 {
31 .gpurev = ADRENO_REV_A306A,
32 .core = 3,
33 .major = 0,
34 .minor = 6,
35 .patchid = 0x20,
Shrenuj Bansalae672812016-02-24 14:17:30 -080036 .features = ADRENO_SOFT_FAULT_DETECT,
Shrenuj Bansala419c792016-10-20 14:05:11 -070037 .pm4fw_name = "a300_pm4.fw",
38 .pfpfw_name = "a300_pfp.fw",
39 .gpudev = &adreno_a3xx_gpudev,
40 .gmem_size = SZ_128K,
41 .busy_mask = 0x7FFFFFFE,
42 },
43 {
44 .gpurev = ADRENO_REV_A304,
45 .core = 3,
46 .major = 0,
47 .minor = 4,
48 .patchid = 0x00,
Shrenuj Bansalae672812016-02-24 14:17:30 -080049 .features = ADRENO_SOFT_FAULT_DETECT,
Shrenuj Bansala419c792016-10-20 14:05:11 -070050 .pm4fw_name = "a300_pm4.fw",
51 .pfpfw_name = "a300_pfp.fw",
52 .gpudev = &adreno_a3xx_gpudev,
53 .gmem_size = (SZ_64K + SZ_32K),
54 .busy_mask = 0x7FFFFFFE,
55 },
56 {
57 .gpurev = ADRENO_REV_A405,
58 .core = 4,
59 .major = 0,
60 .minor = 5,
61 .patchid = ANY_ID,
Shrenuj Bansalae672812016-02-24 14:17:30 -080062 .features = ADRENO_SOFT_FAULT_DETECT,
Shrenuj Bansala419c792016-10-20 14:05:11 -070063 .pm4fw_name = "a420_pm4.fw",
64 .pfpfw_name = "a420_pfp.fw",
65 .gpudev = &adreno_a4xx_gpudev,
66 .gmem_size = SZ_256K,
67 .busy_mask = 0x7FFFFFFE,
68 },
69 {
70 .gpurev = ADRENO_REV_A420,
71 .core = 4,
72 .major = 2,
73 .minor = 0,
74 .patchid = ANY_ID,
75 .features = ADRENO_USES_OCMEM | ADRENO_WARM_START |
Shrenuj Bansalae672812016-02-24 14:17:30 -080076 ADRENO_USE_BOOTSTRAP | ADRENO_SOFT_FAULT_DETECT,
Shrenuj Bansala419c792016-10-20 14:05:11 -070077 .pm4fw_name = "a420_pm4.fw",
78 .pfpfw_name = "a420_pfp.fw",
79 .gpudev = &adreno_a4xx_gpudev,
80 .gmem_size = (SZ_1M + SZ_512K),
81 .pm4_jt_idx = 0x901,
82 .pm4_jt_addr = 0x300,
83 .pfp_jt_idx = 0x401,
84 .pfp_jt_addr = 0x400,
85 .pm4_bstrp_size = 0x06,
86 .pfp_bstrp_size = 0x28,
87 .pfp_bstrp_ver = 0x4ff083,
88 .busy_mask = 0x7FFFFFFE,
89 },
90 {
91 .gpurev = ADRENO_REV_A430,
92 .core = 4,
93 .major = 3,
94 .minor = 0,
95 .patchid = ANY_ID,
96 .features = ADRENO_USES_OCMEM | ADRENO_WARM_START |
97 ADRENO_USE_BOOTSTRAP | ADRENO_SPTP_PC | ADRENO_PPD |
Shrenuj Bansalae672812016-02-24 14:17:30 -080098 ADRENO_CONTENT_PROTECTION | ADRENO_PREEMPTION |
99 ADRENO_SOFT_FAULT_DETECT,
Shrenuj Bansala419c792016-10-20 14:05:11 -0700100 .pm4fw_name = "a420_pm4.fw",
101 .pfpfw_name = "a420_pfp.fw",
102 .gpudev = &adreno_a4xx_gpudev,
103 .gmem_size = (SZ_1M + SZ_512K),
104 .pm4_jt_idx = 0x901,
105 .pm4_jt_addr = 0x300,
106 .pfp_jt_idx = 0x401,
107 .pfp_jt_addr = 0x400,
108 .pm4_bstrp_size = 0x06,
109 .pfp_bstrp_size = 0x28,
110 .pfp_bstrp_ver = 0x4ff083,
111 .shader_offset = 0x20000,
112 .shader_size = 0x10000,
113 .num_protected_regs = 0x18,
114 .busy_mask = 0x7FFFFFFE,
115 },
116 {
117 .gpurev = ADRENO_REV_A418,
118 .core = 4,
119 .major = 1,
120 .minor = 8,
121 .patchid = ANY_ID,
122 .features = ADRENO_USES_OCMEM | ADRENO_WARM_START |
Shrenuj Bansalae672812016-02-24 14:17:30 -0800123 ADRENO_USE_BOOTSTRAP | ADRENO_SPTP_PC |
124 ADRENO_SOFT_FAULT_DETECT,
Shrenuj Bansala419c792016-10-20 14:05:11 -0700125 .pm4fw_name = "a420_pm4.fw",
126 .pfpfw_name = "a420_pfp.fw",
127 .gpudev = &adreno_a4xx_gpudev,
128 .gmem_size = (SZ_512K),
129 .pm4_jt_idx = 0x901,
130 .pm4_jt_addr = 0x300,
131 .pfp_jt_idx = 0x401,
132 .pfp_jt_addr = 0x400,
133 .pm4_bstrp_size = 0x06,
134 .pfp_bstrp_size = 0x28,
135 .pfp_bstrp_ver = 0x4ff083,
136 .shader_offset = 0x20000, /* SP and TP addresses */
137 .shader_size = 0x10000,
138 .num_protected_regs = 0x18,
139 .busy_mask = 0x7FFFFFFE,
140 },
141 {
142 .gpurev = ADRENO_REV_A530,
143 .core = 5,
144 .major = 3,
145 .minor = 0,
146 .patchid = 0,
147 .pm4fw_name = "a530v1_pm4.fw",
148 .pfpfw_name = "a530v1_pfp.fw",
149 .gpudev = &adreno_a5xx_gpudev,
150 .gmem_size = SZ_1M,
151 .num_protected_regs = 0x20,
152 .busy_mask = 0xFFFFFFFE,
153 },
154 {
155 .gpurev = ADRENO_REV_A530,
156 .core = 5,
157 .major = 3,
158 .minor = 0,
159 .patchid = 1,
160 .features = ADRENO_GPMU | ADRENO_SPTP_PC | ADRENO_LM |
161 ADRENO_PREEMPTION | ADRENO_64BIT |
162 ADRENO_CONTENT_PROTECTION,
163 .pm4fw_name = "a530_pm4.fw",
164 .pfpfw_name = "a530_pfp.fw",
165 .zap_name = "a530_zap",
166 .gpudev = &adreno_a5xx_gpudev,
167 .gmem_size = SZ_1M,
168 .num_protected_regs = 0x20,
169 .gpmufw_name = "a530_gpmu.fw2",
170 .gpmu_major = 1,
171 .gpmu_minor = 0,
172 .busy_mask = 0xFFFFFFFE,
173 .lm_major = 3,
174 .lm_minor = 0,
175 .gpmu_tsens = 0x00060007,
176 .max_power = 5448,
177 .regfw_name = "a530v2_seq.fw2",
178 },
179 {
180 .gpurev = ADRENO_REV_A530,
181 .core = 5,
182 .major = 3,
183 .minor = 0,
184 .patchid = ANY_ID,
185 .features = ADRENO_GPMU | ADRENO_SPTP_PC | ADRENO_LM |
186 ADRENO_PREEMPTION | ADRENO_64BIT |
187 ADRENO_CONTENT_PROTECTION,
188 .pm4fw_name = "a530_pm4.fw",
189 .pfpfw_name = "a530_pfp.fw",
190 .zap_name = "a530_zap",
191 .gpudev = &adreno_a5xx_gpudev,
192 .gmem_size = SZ_1M,
193 .num_protected_regs = 0x20,
194 .gpmufw_name = "a530v3_gpmu.fw2",
195 .gpmu_major = 1,
196 .gpmu_minor = 0,
197 .busy_mask = 0xFFFFFFFE,
198 .lm_major = 1,
199 .lm_minor = 0,
200 .gpmu_tsens = 0x00060007,
201 .max_power = 5448,
202 .regfw_name = "a530v3_seq.fw2",
203 },
204 {
205 .gpurev = ADRENO_REV_A505,
206 .core = 5,
207 .major = 0,
208 .minor = 5,
209 .patchid = ANY_ID,
210 .features = ADRENO_PREEMPTION | ADRENO_64BIT,
211 .pm4fw_name = "a530_pm4.fw",
212 .pfpfw_name = "a530_pfp.fw",
213 .gpudev = &adreno_a5xx_gpudev,
214 .gmem_size = (SZ_128K + SZ_8K),
215 .num_protected_regs = 0x20,
216 .busy_mask = 0xFFFFFFFE,
217 },
218 {
219 .gpurev = ADRENO_REV_A506,
220 .core = 5,
221 .major = 0,
222 .minor = 6,
223 .patchid = ANY_ID,
224 .features = ADRENO_PREEMPTION | ADRENO_64BIT |
225 ADRENO_CONTENT_PROTECTION | ADRENO_CPZ_RETENTION,
226 .pm4fw_name = "a530_pm4.fw",
227 .pfpfw_name = "a530_pfp.fw",
228 .zap_name = "a506_zap",
229 .gpudev = &adreno_a5xx_gpudev,
230 .gmem_size = (SZ_128K + SZ_8K),
231 .num_protected_regs = 0x20,
232 .busy_mask = 0xFFFFFFFE,
233 },
234 {
235 .gpurev = ADRENO_REV_A510,
236 .core = 5,
237 .major = 1,
238 .minor = 0,
239 .patchid = ANY_ID,
240 .pm4fw_name = "a530_pm4.fw",
241 .pfpfw_name = "a530_pfp.fw",
242 .gpudev = &adreno_a5xx_gpudev,
243 .gmem_size = SZ_256K,
244 .num_protected_regs = 0x20,
245 .busy_mask = 0xFFFFFFFE,
246 },
247 {
248 .gpurev = ADRENO_REV_A540,
249 .core = 5,
250 .major = 4,
251 .minor = 0,
252 .patchid = 0,
253 .features = ADRENO_PREEMPTION | ADRENO_64BIT |
254 ADRENO_CONTENT_PROTECTION |
255 ADRENO_GPMU | ADRENO_SPTP_PC,
256 .pm4fw_name = "a530_pm4.fw",
257 .pfpfw_name = "a530_pfp.fw",
258 .zap_name = "a540_zap",
259 .gpudev = &adreno_a5xx_gpudev,
260 .gmem_size = SZ_1M,
261 .num_protected_regs = 0x20,
262 .busy_mask = 0xFFFFFFFE,
263 .gpmufw_name = "a540_gpmu.fw2",
264 .gpmu_major = 3,
265 .gpmu_minor = 0,
266 .gpmu_tsens = 0x000C000D,
267 .max_power = 5448,
268 },
269 {
270 .gpurev = ADRENO_REV_A540,
271 .core = 5,
272 .major = 4,
273 .minor = 0,
274 .patchid = ANY_ID,
275 .features = ADRENO_PREEMPTION | ADRENO_64BIT |
276 ADRENO_CONTENT_PROTECTION |
277 ADRENO_GPMU | ADRENO_SPTP_PC,
278 .pm4fw_name = "a530_pm4.fw",
279 .pfpfw_name = "a530_pfp.fw",
280 .zap_name = "a540_zap",
281 .gpudev = &adreno_a5xx_gpudev,
282 .gmem_size = SZ_1M,
283 .num_protected_regs = 0x20,
284 .busy_mask = 0xFFFFFFFE,
285 .gpmufw_name = "a540_gpmu.fw2",
286 .gpmu_major = 3,
287 .gpmu_minor = 0,
288 .gpmu_tsens = 0x000C000D,
289 .max_power = 5448,
290 },
291 {
292 .gpurev = ADRENO_REV_A512,
293 .core = 5,
294 .major = 1,
295 .minor = 2,
296 .patchid = ANY_ID,
Rajesh Kemisetti29dd66c2017-01-15 18:59:29 +0530297 .features = ADRENO_PREEMPTION | ADRENO_64BIT |
298 ADRENO_CONTENT_PROTECTION | ADRENO_CPZ_RETENTION,
Shrenuj Bansala419c792016-10-20 14:05:11 -0700299 .pm4fw_name = "a530_pm4.fw",
300 .pfpfw_name = "a530_pfp.fw",
Rajesh Kemisettia5509f72017-01-04 18:53:39 +0530301 .zap_name = "a512_zap",
Shrenuj Bansala419c792016-10-20 14:05:11 -0700302 .gpudev = &adreno_a5xx_gpudev,
303 .gmem_size = (SZ_256K + SZ_16K),
304 .num_protected_regs = 0x20,
305 .busy_mask = 0xFFFFFFFE,
306 },
Shrenuj Bansalacf1ef42016-06-01 11:11:27 -0700307 {
Rajesh Kemisettiaed6ec72017-02-06 09:37:00 +0530308 .gpurev = ADRENO_REV_A508,
309 .core = 5,
310 .major = 0,
311 .minor = 8,
312 .patchid = ANY_ID,
313 .features = ADRENO_PREEMPTION | ADRENO_64BIT |
314 ADRENO_CONTENT_PROTECTION | ADRENO_CPZ_RETENTION,
315 .pm4fw_name = "a530_pm4.fw",
316 .pfpfw_name = "a530_pfp.fw",
317 .zap_name = "a508_zap",
318 .gpudev = &adreno_a5xx_gpudev,
319 .gmem_size = (SZ_128K + SZ_8K),
320 .num_protected_regs = 0x20,
321 .busy_mask = 0xFFFFFFFE,
322 },
323 {
Shrenuj Bansalacf1ef42016-06-01 11:11:27 -0700324 .gpurev = ADRENO_REV_A630,
325 .core = 6,
326 .major = 3,
327 .minor = 0,
Kyle Piefer42127c52017-09-11 14:53:23 -0700328 .patchid = 0,
Shrenuj Bansal96777d62017-04-27 12:55:50 -0700329 .features = ADRENO_64BIT | ADRENO_RPMH |
Oleg Pereletc2ab7f72017-06-22 16:45:57 -0700330 ADRENO_GPMU | ADRENO_CONTENT_PROTECTION | ADRENO_LM,
Shrenuj Bansalacf1ef42016-06-01 11:11:27 -0700331 .sqefw_name = "a630_sqe.fw",
Kyle Pieferb1027b02017-02-10 13:58:58 -0800332 .zap_name = "a630_zap",
Shrenuj Bansalacf1ef42016-06-01 11:11:27 -0700333 .gpudev = &adreno_a6xx_gpudev,
334 .gmem_size = SZ_1M,
335 .num_protected_regs = 0x20,
Kyle Pieferb1027b02017-02-10 13:58:58 -0800336 .busy_mask = 0xFFFFFFFE,
George Shenbf1f8ee2017-03-22 11:01:03 -0700337 .gpmufw_name = "a630_gmu.bin",
Kyle Pieferb1027b02017-02-10 13:58:58 -0800338 .gpmu_major = 0x0,
339 .gpmu_minor = 0x005,
340 .gpmu_tsens = 0x000C000D,
341 .max_power = 5448,
Shrenuj Bansalacf1ef42016-06-01 11:11:27 -0700342 },
Rajesh Kemisetti8d5cc6e2017-06-06 16:44:17 +0530343 {
Kyle Piefer42127c52017-09-11 14:53:23 -0700344 .gpurev = ADRENO_REV_A630,
345 .core = 6,
346 .major = 3,
347 .minor = 0,
348 .patchid = ANY_ID,
Kyle Piefer0b821ea2017-10-24 15:37:16 -0700349 .features = ADRENO_64BIT | ADRENO_RPMH | ADRENO_IFPC |
Harshdeep Dhatt869055c2017-12-11 08:44:39 -0700350 ADRENO_GPMU | ADRENO_CONTENT_PROTECTION |
Harshdeep Dhatt7ee8a862017-11-20 17:51:54 -0700351 ADRENO_IOCOHERENT | ADRENO_PREEMPTION,
Kyle Piefer42127c52017-09-11 14:53:23 -0700352 .sqefw_name = "a630_sqe.fw",
353 .zap_name = "a630_zap",
354 .gpudev = &adreno_a6xx_gpudev,
355 .gmem_size = SZ_1M,
356 .num_protected_regs = 0x20,
357 .busy_mask = 0xFFFFFFFE,
358 .gpmufw_name = "a630_gmu.bin",
George Shen7b121082017-11-01 11:43:10 -0700359 .gpmu_major = 0x1,
360 .gpmu_minor = 0x001,
Kyle Piefer42127c52017-09-11 14:53:23 -0700361 .gpmu_tsens = 0x000C000D,
362 .max_power = 5448,
363 },
364 {
Rajesh Kemisetti8d5cc6e2017-06-06 16:44:17 +0530365 .gpurev = ADRENO_REV_A615,
366 .core = 6,
367 .major = 1,
368 .minor = 5,
369 .patchid = ANY_ID,
Rajesh Kemisetti5d1edf72017-08-31 18:24:17 +0530370 .features = ADRENO_64BIT | ADRENO_RPMH |
371 ADRENO_GPMU | ADRENO_CONTENT_PROTECTION,
Rajesh Kemisetti8d5cc6e2017-06-06 16:44:17 +0530372 .sqefw_name = "a630_sqe.fw",
373 .zap_name = "a615_zap",
374 .gpudev = &adreno_a6xx_gpudev,
375 .gmem_size = SZ_512K,
376 .num_protected_regs = 0x20,
377 .busy_mask = 0xFFFFFFFE,
378 .gpmufw_name = "a630_gmu.bin",
Deepak Kumar97e08802017-11-16 14:20:10 +0530379 .gpmu_major = 0x1,
380 .gpmu_minor = 0x001,
Rajesh Kemisetti8d5cc6e2017-06-06 16:44:17 +0530381 },
Shrenuj Bansala419c792016-10-20 14:05:11 -0700382};