aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2013-07-03 23:03:59 -0400
committerBen Skeggs <bskeggs@redhat.com>2013-07-04 23:44:16 -0400
commit8f6fe26745d39299d43d79dd7ba9838517624c3f (patch)
tree7f466a8bf83a8b4b9e43f463b0eb8fca0b2f95c3 /drivers/gpu/drm/nouveau
parent960b4381c5fff0b0f16f4b812082811dde1ab7ab (diff)
drm/nvf0/gr: build cs ucode for GK110
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau')
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvf0.fuc42
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvf0.fuc.h472
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvf0.fuc40
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvf0.fuc.h854
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/macros.fuc1
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/nvf0.c22
6 files changed, 1431 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvf0.fuc b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvf0.fuc
new file mode 100644
index 000000000000..90bbe525b626
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvf0.fuc
@@ -0,0 +1,42 @@
1/*
2 * Copyright 2013 Red Hat Inc.
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the
9 * Software is furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17 * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
18 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20 * OTHER DEALINGS IN THE SOFTWARE.
21 *
22 * Authors: Ben Skeggs <bskeggs@redhat.com>
23 */
24
25#define NV_PGRAPH_GPCX_UNK__SIZE 0x00000002
26
27#define CHIPSET GK110
28#include "macros.fuc"
29
30.section #nvf0_grgpc_data
31#define INCLUDE_DATA
32#include "com.fuc"
33#include "gpc.fuc"
34#undef INCLUDE_DATA
35
36.section #nvf0_grgpc_code
37#define INCLUDE_CODE
38bra #init
39#include "com.fuc"
40#include "gpc.fuc"
41.align 256
42#undef INCLUDE_CODE
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvf0.fuc.h b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvf0.fuc.h
new file mode 100644
index 000000000000..ecf9a5fb8557
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvf0.fuc.h
@@ -0,0 +1,472 @@
1uint32_t nvf0_grgpc_data[] = {
2/* 0x0000: gpc_mmio_list_head */
3 0x0000006c,
4/* 0x0004: gpc_mmio_list_tail */
5/* 0x0004: tpc_mmio_list_head */
6 0x0000006c,
7/* 0x0008: tpc_mmio_list_tail */
8/* 0x0008: unk_mmio_list_head */
9 0x0000006c,
10/* 0x000c: unk_mmio_list_tail */
11 0x0000006c,
12/* 0x0010: gpc_id */
13 0x00000000,
14/* 0x0014: tpc_count */
15 0x00000000,
16/* 0x0018: tpc_mask */
17 0x00000000,
18/* 0x001c: unk_count */
19 0x00000001,
20/* 0x0020: unk_mask */
21 0x00000001,
22/* 0x0024: cmd_queue */
23 0x00000000,
24 0x00000000,
25 0x00000000,
26 0x00000000,
27 0x00000000,
28 0x00000000,
29 0x00000000,
30 0x00000000,
31 0x00000000,
32 0x00000000,
33 0x00000000,
34 0x00000000,
35 0x00000000,
36 0x00000000,
37 0x00000000,
38 0x00000000,
39 0x00000000,
40 0x00000000,
41};
42
43uint32_t nvf0_grgpc_code[] = {
44 0x03060ef5,
45/* 0x0004: queue_put */
46 0x9800d898,
47 0x86f001d9,
48 0x0489b808,
49 0xf00c1bf4,
50 0x21f502f7,
51 0x00f802ec,
52/* 0x001c: queue_put_next */
53 0xb60798c4,
54 0x8dbb0384,
55 0x0880b600,
56 0x80008e80,
57 0x90b6018f,
58 0x0f94f001,
59 0xf801d980,
60/* 0x0039: queue_get */
61 0x0131f400,
62 0x9800d898,
63 0x89b801d9,
64 0x210bf404,
65 0xb60789c4,
66 0x9dbb0394,
67 0x0890b600,
68 0x98009e98,
69 0x80b6019f,
70 0x0f84f001,
71 0xf400d880,
72/* 0x0066: queue_get_done */
73 0x00f80132,
74/* 0x0068: nv_rd32 */
75 0x0728b7f1,
76 0xb906b4b6,
77 0xc9f002ec,
78 0x00bcd01f,
79/* 0x0078: nv_rd32_wait */
80 0xc800bccf,
81 0x1bf41fcc,
82 0x06a7f0fa,
83 0x010321f5,
84 0xf840bfcf,
85/* 0x008d: nv_wr32 */
86 0x28b7f100,
87 0x06b4b607,
88 0xb980bfd0,
89 0xc9f002ec,
90 0x1ec9f01f,
91/* 0x00a3: nv_wr32_wait */
92 0xcf00bcd0,
93 0xccc800bc,
94 0xfa1bf41f,
95/* 0x00ae: watchdog_reset */
96 0x87f100f8,
97 0x84b60430,
98 0x1ff9f006,
99 0xf8008fd0,
100/* 0x00bd: watchdog_clear */
101 0x3087f100,
102 0x0684b604,
103 0xf80080d0,
104/* 0x00c9: wait_donez */
105 0x3c87f100,
106 0x0684b608,
107 0x99f094bd,
108 0x0089d000,
109 0x081887f1,
110 0xd00684b6,
111/* 0x00e2: wait_donez_ne */
112 0x87f1008a,
113 0x84b60400,
114 0x0088cf06,
115 0xf4888aff,
116 0x87f1f31b,
117 0x84b6085c,
118 0xf094bd06,
119 0x89d00099,
120/* 0x0103: wait_doneo */
121 0xf100f800,
122 0xb6083c87,
123 0x94bd0684,
124 0xd00099f0,
125 0x87f10089,
126 0x84b60818,
127 0x008ad006,
128/* 0x011c: wait_doneo_e */
129 0x040087f1,
130 0xcf0684b6,
131 0x8aff0088,
132 0xf30bf488,
133 0x085c87f1,
134 0xbd0684b6,
135 0x0099f094,
136 0xf80089d0,
137/* 0x013d: mmctx_size */
138/* 0x013f: nv_mmctx_size_loop */
139 0x9894bd00,
140 0x85b600e8,
141 0x0180b61a,
142 0xbb0284b6,
143 0xe0b60098,
144 0x04efb804,
145 0xb9eb1bf4,
146 0x00f8029f,
147/* 0x015c: mmctx_xfer */
148 0x083c87f1,
149 0xbd0684b6,
150 0x0199f094,
151 0xf10089d0,
152 0xb6071087,
153 0x94bd0684,
154 0xf405bbfd,
155 0x8bd0090b,
156 0x0099f000,
157/* 0x0180: mmctx_base_disabled */
158 0xf405eefd,
159 0x8ed00c0b,
160 0xc08fd080,
161/* 0x018f: mmctx_multi_disabled */
162 0xb70199f0,
163 0xc8010080,
164 0xb4b600ab,
165 0x0cb9f010,
166 0xb601aec8,
167 0xbefd11e4,
168 0x008bd005,
169/* 0x01a8: mmctx_exec_loop */
170/* 0x01a8: mmctx_wait_free */
171 0xf0008ecf,
172 0x0bf41fe4,
173 0x00ce98fa,
174 0xd005e9fd,
175 0xc0b6c08e,
176 0x04cdb804,
177 0xc8e81bf4,
178 0x1bf402ab,
179/* 0x01c9: mmctx_fini_wait */
180 0x008bcf18,
181 0xb01fb4f0,
182 0x1bf410b4,
183 0x02a7f0f7,
184 0xf4c921f4,
185/* 0x01de: mmctx_stop */
186 0xabc81b0e,
187 0x10b4b600,
188 0xf00cb9f0,
189 0x8bd012b9,
190/* 0x01ed: mmctx_stop_wait */
191 0x008bcf00,
192 0xf412bbc8,
193/* 0x01f6: mmctx_done */
194 0x87f1fa1b,
195 0x84b6085c,
196 0xf094bd06,
197 0x89d00199,
198/* 0x0207: strand_wait */
199 0xf900f800,
200 0x02a7f0a0,
201 0xfcc921f4,
202/* 0x0213: strand_pre */
203 0xf100f8a0,
204 0xf04afc87,
205 0x97f00283,
206 0x0089d00c,
207 0x020721f5,
208/* 0x0226: strand_post */
209 0x87f100f8,
210 0x83f04afc,
211 0x0d97f002,
212 0xf50089d0,
213 0xf8020721,
214/* 0x0239: strand_set */
215 0xfca7f100,
216 0x02a3f04f,
217 0x0500aba2,
218 0xd00fc7f0,
219 0xc7f000ac,
220 0x00bcd00b,
221 0x020721f5,
222 0xf000aed0,
223 0xbcd00ac7,
224 0x0721f500,
225/* 0x0263: strand_ctx_init */
226 0xf100f802,
227 0xb6083c87,
228 0x94bd0684,
229 0xd00399f0,
230 0x21f50089,
231 0xe7f00213,
232 0x3921f503,
233 0xfca7f102,
234 0x02a3f046,
235 0x0400aba0,
236 0xf040a0d0,
237 0xbcd001c7,
238 0x0721f500,
239 0x010c9202,
240 0xf000acd0,
241 0xbcd002c7,
242 0x0721f500,
243 0x2621f502,
244 0x8087f102,
245 0x0684b608,
246 0xb70089cf,
247 0x95220080,
248/* 0x02ba: ctx_init_strand_loop */
249 0x8ed008fe,
250 0x408ed000,
251 0xb6808acf,
252 0xa0b606a5,
253 0x00eabb01,
254 0xb60480b6,
255 0x1bf40192,
256 0x08e4b6e8,
257 0xf1f2efbc,
258 0xb6085c87,
259 0x94bd0684,
260 0xd00399f0,
261 0x00f80089,
262/* 0x02ec: error */
263 0xe7f1e0f9,
264 0xe3f09814,
265 0x8d21f440,
266 0x041ce0b7,
267 0xf401f7f0,
268 0xe0fc8d21,
269/* 0x0306: init */
270 0x04bd00f8,
271 0xf10004fe,
272 0xf0120017,
273 0x12d00227,
274 0x2317f100,
275 0x0010fe04,
276 0x040017f1,
277 0xf0c010d0,
278 0x12d00427,
279 0x1031f400,
280 0x060817f1,
281 0xcf0614b6,
282 0x37f00012,
283 0x1f24f001,
284 0xb60432bb,
285 0x02800132,
286 0x06038005,
287 0x040010b7,
288 0x800012cf,
289 0x27f10402,
290 0x24b60800,
291 0x4022cf06,
292 0x47f134bd,
293 0x44b60700,
294 0x08259506,
295 0xd00045d0,
296 0x0e984045,
297 0x010f9800,
298 0x013d21f5,
299 0xbb002fbb,
300 0x0e98003f,
301 0x020f9801,
302 0x013d21f5,
303 0xfd050e98,
304 0x2ebb00ef,
305 0x003ebb00,
306 0x98020e98,
307 0x21f5030f,
308 0x0e98013d,
309 0x00effd07,
310 0xbb002ebb,
311 0x40b7003e,
312 0x35b61300,
313 0x0043d002,
314 0xb60825b6,
315 0x20b60635,
316 0x0130b601,
317 0xb60824b6,
318 0x2fb90834,
319 0x6321f502,
320 0x003fbb02,
321 0x080017f1,
322 0xd00614b6,
323 0x10b74013,
324 0x24bd0800,
325 0xd01f29f0,
326/* 0x03e6: main */
327 0x31f40012,
328 0x0028f400,
329 0xf424d7f0,
330 0x01f43921,
331 0x04e4b0f4,
332 0xfe1e18f4,
333 0x27f00181,
334 0xfd20bd06,
335 0xe4b60412,
336 0x051efd01,
337 0xf50018fe,
338 0xf404a821,
339/* 0x0416: main_not_ctx_xfer */
340 0xef94d30e,
341 0x01f5f010,
342 0x02ec21f5,
343/* 0x0423: ih */
344 0xf9c60ef4,
345 0x0188fe80,
346 0x90f980f9,
347 0xb0f9a0f9,
348 0xe0f9d0f9,
349 0x0acff0f9,
350 0x04abc480,
351 0xf11d0bf4,
352 0xf01900b7,
353 0xbecf24d7,
354 0x00bfcf40,
355 0xb70421f4,
356 0xf00400b0,
357 0xbed001e7,
358/* 0x0459: ih_no_fifo */
359 0x400ad000,
360 0xe0fcf0fc,
361 0xb0fcd0fc,
362 0x90fca0fc,
363 0x88fe80fc,
364 0xf480fc00,
365 0x01f80032,
366/* 0x0474: hub_barrier_done */
367 0x9801f7f0,
368 0xfebb040e,
369 0x18e7f104,
370 0x40e3f094,
371 0xf88d21f4,
372/* 0x0489: ctx_redswitch */
373 0x14e7f100,
374 0x06e4b606,
375 0xd020f7f0,
376 0xf7f000ef,
377/* 0x0499: ctx_redswitch_delay */
378 0x01f2b608,
379 0xf1fd1bf4,
380 0xd00a20f7,
381 0x00f800ef,
382/* 0x04a8: ctx_xfer */
383 0x0a0417f1,
384 0xd00614b6,
385 0x11f4001f,
386 0x8921f507,
387/* 0x04b9: ctx_xfer_not_load */
388 0xfc17f104,
389 0x0213f04a,
390 0xd00c27f0,
391 0x21f50012,
392 0x27f10207,
393 0x23f047fc,
394 0x0020d002,
395 0xb6012cf0,
396 0x12d00320,
397 0x01acf000,
398 0xf002a5f0,
399 0xb3f000b7,
400 0x040c9850,
401 0xbb0fc4b6,
402 0x0c9800bc,
403 0x010d9800,
404 0xf500e7f0,
405 0xf0015c21,
406 0xb7f101ac,
407 0xb3f04000,
408 0x040c9850,
409 0xbb0fc4b6,
410 0x0c9800bc,
411 0x020d9801,
412 0xf1060f98,
413 0xf50800e7,
414 0xf0015c21,
415 0xa5f001ac,
416 0x00b7f104,
417 0x50b3f030,
418 0xb6040c98,
419 0xbcbb0fc4,
420 0x020c9800,
421 0x98030d98,
422 0xe7f1080f,
423 0x21f50200,
424 0x21f5015c,
425 0x01f40207,
426 0x1412f406,
427/* 0x0554: ctx_xfer_post */
428 0x4afc17f1,
429 0xf00213f0,
430 0x12d00d27,
431 0x0721f500,
432/* 0x0565: ctx_xfer_done */
433 0x7421f502,
434 0x0000f804,
435 0x00000000,
436 0x00000000,
437 0x00000000,
438 0x00000000,
439 0x00000000,
440 0x00000000,
441 0x00000000,
442 0x00000000,
443 0x00000000,
444 0x00000000,
445 0x00000000,
446 0x00000000,
447 0x00000000,
448 0x00000000,
449 0x00000000,
450 0x00000000,
451 0x00000000,
452 0x00000000,
453 0x00000000,
454 0x00000000,
455 0x00000000,
456 0x00000000,
457 0x00000000,
458 0x00000000,
459 0x00000000,
460 0x00000000,
461 0x00000000,
462 0x00000000,
463 0x00000000,
464 0x00000000,
465 0x00000000,
466 0x00000000,
467 0x00000000,
468 0x00000000,
469 0x00000000,
470 0x00000000,
471 0x00000000,
472};
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvf0.fuc b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvf0.fuc
new file mode 100644
index 000000000000..ec42ed29b50d
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvf0.fuc
@@ -0,0 +1,40 @@
1/*
2 * Copyright 2013 Red Hat Inc.
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the
9 * Software is furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17 * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
18 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20 * OTHER DEALINGS IN THE SOFTWARE.
21 *
22 * Authors: Ben Skeggs <bskeggs@redhat.com>
23 */
24
25#define CHIPSET GK110
26#include "macros.fuc"
27
28.section #nvf0_grhub_data
29#define INCLUDE_DATA
30#include "com.fuc"
31#include "hub.fuc"
32#undef INCLUDE_DATA
33
34.section #nvf0_grhub_code
35#define INCLUDE_CODE
36bra #init
37#include "com.fuc"
38#include "hub.fuc"
39.align 256
40#undef INCLUDE_CODE
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvf0.fuc.h b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvf0.fuc.h
new file mode 100644
index 000000000000..1b64fe55903a
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvf0.fuc.h
@@ -0,0 +1,854 @@
1uint32_t nvf0_grhub_data[] = {
2/* 0x0000: hub_mmio_list_head */
3 0x00000300,
4/* 0x0004: hub_mmio_list_tail */
5 0x00000304,
6/* 0x0008: gpc_count */
7 0x00000000,
8/* 0x000c: rop_count */
9 0x00000000,
10/* 0x0010: cmd_queue */
11 0x00000000,
12 0x00000000,
13 0x00000000,
14 0x00000000,
15 0x00000000,
16 0x00000000,
17 0x00000000,
18 0x00000000,
19 0x00000000,
20 0x00000000,
21 0x00000000,
22 0x00000000,
23 0x00000000,
24 0x00000000,
25 0x00000000,
26 0x00000000,
27 0x00000000,
28 0x00000000,
29/* 0x0058: ctx_current */
30 0x00000000,
31 0x00000000,
32 0x00000000,
33 0x00000000,
34 0x00000000,
35 0x00000000,
36 0x00000000,
37 0x00000000,
38 0x00000000,
39 0x00000000,
40 0x00000000,
41 0x00000000,
42 0x00000000,
43 0x00000000,
44 0x00000000,
45 0x00000000,
46 0x00000000,
47 0x00000000,
48 0x00000000,
49 0x00000000,
50 0x00000000,
51 0x00000000,
52 0x00000000,
53 0x00000000,
54 0x00000000,
55 0x00000000,
56 0x00000000,
57 0x00000000,
58 0x00000000,
59 0x00000000,
60 0x00000000,
61 0x00000000,
62 0x00000000,
63 0x00000000,
64 0x00000000,
65 0x00000000,
66 0x00000000,
67 0x00000000,
68 0x00000000,
69 0x00000000,
70 0x00000000,
71 0x00000000,
72/* 0x0100: chan_data */
73/* 0x0100: chan_mmio_count */
74 0x00000000,
75/* 0x0104: chan_mmio_address */
76 0x00000000,
77 0x00000000,
78 0x00000000,
79 0x00000000,
80 0x00000000,
81 0x00000000,
82 0x00000000,
83 0x00000000,
84 0x00000000,
85 0x00000000,
86 0x00000000,
87 0x00000000,
88 0x00000000,
89 0x00000000,
90 0x00000000,
91 0x00000000,
92 0x00000000,
93 0x00000000,
94 0x00000000,
95 0x00000000,
96 0x00000000,
97 0x00000000,
98 0x00000000,
99 0x00000000,
100 0x00000000,
101 0x00000000,
102 0x00000000,
103 0x00000000,
104 0x00000000,
105 0x00000000,
106 0x00000000,
107 0x00000000,
108 0x00000000,
109 0x00000000,
110 0x00000000,
111 0x00000000,
112 0x00000000,
113 0x00000000,
114 0x00000000,
115 0x00000000,
116 0x00000000,
117 0x00000000,
118 0x00000000,
119 0x00000000,
120 0x00000000,
121 0x00000000,
122 0x00000000,
123 0x00000000,
124 0x00000000,
125 0x00000000,
126 0x00000000,
127 0x00000000,
128 0x00000000,
129 0x00000000,
130 0x00000000,
131 0x00000000,
132 0x00000000,
133 0x00000000,
134 0x00000000,
135 0x00000000,
136 0x00000000,
137 0x00000000,
138 0x00000000,
139/* 0x0200: xfer_data */
140 0x00000000,
141 0x00000000,
142 0x00000000,
143 0x00000000,
144 0x00000000,
145 0x00000000,
146 0x00000000,
147 0x00000000,
148 0x00000000,
149 0x00000000,
150 0x00000000,
151 0x00000000,
152 0x00000000,
153 0x00000000,
154 0x00000000,
155 0x00000000,
156 0x00000000,
157 0x00000000,
158 0x00000000,
159 0x00000000,
160 0x00000000,
161 0x00000000,
162 0x00000000,
163 0x00000000,
164 0x00000000,
165 0x00000000,
166 0x00000000,
167 0x00000000,
168 0x00000000,
169 0x00000000,
170 0x00000000,
171 0x00000000,
172 0x00000000,
173 0x00000000,
174 0x00000000,
175 0x00000000,
176 0x00000000,
177 0x00000000,
178 0x00000000,
179 0x00000000,
180 0x00000000,
181 0x00000000,
182 0x00000000,
183 0x00000000,
184 0x00000000,
185 0x00000000,
186 0x00000000,
187 0x00000000,
188 0x00000000,
189 0x00000000,
190 0x00000000,
191 0x00000000,
192 0x00000000,
193 0x00000000,
194 0x00000000,
195 0x00000000,
196 0x00000000,
197 0x00000000,
198 0x00000000,
199 0x00000000,
200 0x00000000,
201 0x00000000,
202 0x00000000,
203 0x00000000,
204/* 0x0300: hub_mmio_list_base */
205 0x0417e91c,
206};
207
208uint32_t nvf0_grhub_code[] = {
209 0x03090ef5,
210/* 0x0004: queue_put */
211 0x9800d898,
212 0x86f001d9,
213 0x0489b808,
214 0xf00c1bf4,
215 0x21f502f7,
216 0x00f802ec,
217/* 0x001c: queue_put_next */
218 0xb60798c4,
219 0x8dbb0384,
220 0x0880b600,
221 0x80008e80,
222 0x90b6018f,
223 0x0f94f001,
224 0xf801d980,
225/* 0x0039: queue_get */
226 0x0131f400,
227 0x9800d898,
228 0x89b801d9,
229 0x210bf404,
230 0xb60789c4,
231 0x9dbb0394,
232 0x0890b600,
233 0x98009e98,
234 0x80b6019f,
235 0x0f84f001,
236 0xf400d880,
237/* 0x0066: queue_get_done */
238 0x00f80132,
239/* 0x0068: nv_rd32 */
240 0x0728b7f1,
241 0xb906b4b6,
242 0xc9f002ec,
243 0x00bcd01f,
244/* 0x0078: nv_rd32_wait */
245 0xc800bccf,
246 0x1bf41fcc,
247 0x06a7f0fa,
248 0x010321f5,
249 0xf840bfcf,
250/* 0x008d: nv_wr32 */
251 0x28b7f100,
252 0x06b4b607,
253 0xb980bfd0,
254 0xc9f002ec,
255 0x1ec9f01f,
256/* 0x00a3: nv_wr32_wait */
257 0xcf00bcd0,
258 0xccc800bc,
259 0xfa1bf41f,
260/* 0x00ae: watchdog_reset */
261 0x87f100f8,
262 0x84b60430,
263 0x1ff9f006,
264 0xf8008fd0,
265/* 0x00bd: watchdog_clear */
266 0x3087f100,
267 0x0684b604,
268 0xf80080d0,
269/* 0x00c9: wait_donez */
270 0x3c87f100,
271 0x0684b608,
272 0x99f094bd,
273 0x0089d000,
274 0x081887f1,
275 0xd00684b6,
276/* 0x00e2: wait_donez_ne */
277 0x87f1008a,
278 0x84b60400,
279 0x0088cf06,
280 0xf4888aff,
281 0x87f1f31b,
282 0x84b6085c,
283 0xf094bd06,
284 0x89d00099,
285/* 0x0103: wait_doneo */
286 0xf100f800,
287 0xb6083c87,
288 0x94bd0684,
289 0xd00099f0,
290 0x87f10089,
291 0x84b60818,
292 0x008ad006,
293/* 0x011c: wait_doneo_e */
294 0x040087f1,
295 0xcf0684b6,
296 0x8aff0088,
297 0xf30bf488,
298 0x085c87f1,
299 0xbd0684b6,
300 0x0099f094,
301 0xf80089d0,
302/* 0x013d: mmctx_size */
303/* 0x013f: nv_mmctx_size_loop */
304 0x9894bd00,
305 0x85b600e8,
306 0x0180b61a,
307 0xbb0284b6,
308 0xe0b60098,
309 0x04efb804,
310 0xb9eb1bf4,
311 0x00f8029f,
312/* 0x015c: mmctx_xfer */
313 0x083c87f1,
314 0xbd0684b6,
315 0x0199f094,
316 0xf10089d0,
317 0xb6071087,
318 0x94bd0684,
319 0xf405bbfd,
320 0x8bd0090b,
321 0x0099f000,
322/* 0x0180: mmctx_base_disabled */
323 0xf405eefd,
324 0x8ed00c0b,
325 0xc08fd080,
326/* 0x018f: mmctx_multi_disabled */
327 0xb70199f0,
328 0xc8010080,
329 0xb4b600ab,
330 0x0cb9f010,
331 0xb601aec8,
332 0xbefd11e4,
333 0x008bd005,
334/* 0x01a8: mmctx_exec_loop */
335/* 0x01a8: mmctx_wait_free */
336 0xf0008ecf,
337 0x0bf41fe4,
338 0x00ce98fa,
339 0xd005e9fd,
340 0xc0b6c08e,
341 0x04cdb804,
342 0xc8e81bf4,
343 0x1bf402ab,
344/* 0x01c9: mmctx_fini_wait */
345 0x008bcf18,
346 0xb01fb4f0,
347 0x1bf410b4,
348 0x02a7f0f7,
349 0xf4c921f4,
350/* 0x01de: mmctx_stop */
351 0xabc81b0e,
352 0x10b4b600,
353 0xf00cb9f0,
354 0x8bd012b9,
355/* 0x01ed: mmctx_stop_wait */
356 0x008bcf00,
357 0xf412bbc8,
358/* 0x01f6: mmctx_done */
359 0x87f1fa1b,
360 0x84b6085c,
361 0xf094bd06,
362 0x89d00199,
363/* 0x0207: strand_wait */
364 0xf900f800,
365 0x02a7f0a0,
366 0xfcc921f4,
367/* 0x0213: strand_pre */
368 0xf100f8a0,
369 0xf04afc87,
370 0x97f00283,
371 0x0089d00c,
372 0x020721f5,
373/* 0x0226: strand_post */
374 0x87f100f8,
375 0x83f04afc,
376 0x0d97f002,
377 0xf50089d0,
378 0xf8020721,
379/* 0x0239: strand_set */
380 0xfca7f100,
381 0x02a3f04f,
382 0x0500aba2,
383 0xd00fc7f0,
384 0xc7f000ac,
385 0x00bcd00b,
386 0x020721f5,
387 0xf000aed0,
388 0xbcd00ac7,
389 0x0721f500,
390/* 0x0263: strand_ctx_init */
391 0xf100f802,
392 0xb6083c87,
393 0x94bd0684,
394 0xd00399f0,
395 0x21f50089,
396 0xe7f00213,
397 0x3921f503,
398 0xfca7f102,
399 0x02a3f046,
400 0x0400aba0,
401 0xf040a0d0,
402 0xbcd001c7,
403 0x0721f500,
404 0x010c9202,
405 0xf000acd0,
406 0xbcd002c7,
407 0x0721f500,
408 0x2621f502,
409 0x8087f102,
410 0x0684b608,
411 0xb70089cf,
412 0x95220080,
413/* 0x02ba: ctx_init_strand_loop */
414 0x8ed008fe,
415 0x408ed000,
416 0xb6808acf,
417 0xa0b606a5,
418 0x00eabb01,
419 0xb60480b6,
420 0x1bf40192,
421 0x08e4b6e8,
422 0xf1f2efbc,
423 0xb6085c87,
424 0x94bd0684,
425 0xd00399f0,
426 0x00f80089,
427/* 0x02ec: error */
428 0xe7f1e0f9,
429 0xe4b60814,
430 0x00efd006,
431 0x0c1ce7f1,
432 0xf006e4b6,
433 0xefd001f7,
434 0xf8e0fc00,
435/* 0x0309: init */
436 0xfe04bd00,
437 0x07fe0004,
438 0x0017f100,
439 0x0227f012,
440 0xf10012d0,
441 0xfe058517,
442 0x17f10010,
443 0x10d00400,
444 0x0437f1c0,
445 0x0634b604,
446 0x200327f1,
447 0xf10032d0,
448 0xd0200427,
449 0x27f10132,
450 0x32d0200b,
451 0x0c27f102,
452 0x0732d020,
453 0x0c2427f1,
454 0xb90624b6,
455 0x23d00003,
456 0x0427f100,
457 0x0023f087,
458 0xb70012d0,
459 0xf0010012,
460 0x12d00427,
461 0x1031f400,
462 0x9604e7f1,
463 0xf440e3f0,
464 0xf1c76821,
465 0x03018090,
466 0x801ff4f0,
467 0x17f0020f,
468 0x041fbb01,
469 0xf10112b6,
470 0xb6040c27,
471 0x21d00624,
472 0x4021d000,
473 0x010017f1,
474 0x98000e98,
475 0x21f5010f,
476 0x37f1013d,
477 0x34b60700,
478 0x08149506,
479 0xd00034d0,
480 0x30b74034,
481 0x1fbb1300,
482 0x02f5b600,
483 0xb6003fd0,
484 0x10b60815,
485 0x0814b601,
486 0xf5021fb9,
487 0xbb026321,
488 0x0398001f,
489 0x0047f102,
490 0x5043f020,
491/* 0x03e4: init_gpc */
492 0x08044ea0,
493 0xf4021fb9,
494 0x4ea08d21,
495 0xf4bd010c,
496 0xa08d21f4,
497 0xf401044e,
498 0x4ea08d21,
499 0xf7f00100,
500 0x8d21f402,
501 0x08004ea0,
502/* 0x040c: init_gpc_wait */
503 0xc86821f4,
504 0x0bf41fff,
505 0x044ea0fa,
506 0x6821f408,
507 0xb7001fbb,
508 0xb6800040,
509 0x1bf40132,
510 0x0027f1be,
511 0x0624b608,
512 0xb74021d0,
513 0xbd080020,
514 0x1f19f014,
515/* 0x043f: main */
516 0xf40021d0,
517 0x28f40031,
518 0x10d7f000,
519 0xf43921f4,
520 0xe4b1f401,
521 0x1bf54001,
522 0x87f100d1,
523 0x84b6083c,
524 0xf094bd06,
525 0x89d00499,
526 0x0017f100,
527 0x0614b60b,
528 0xcf4012cf,
529 0x13c80011,
530 0x7e0bf41f,
531 0xf41f23c8,
532 0x20f95a0b,
533 0xf10212b9,
534 0xb6083c87,
535 0x94bd0684,
536 0xd00799f0,
537 0x32f40089,
538 0x0231f401,
539 0x07c721f5,
540 0x085c87f1,
541 0xbd0684b6,
542 0x0799f094,
543 0xfc0089d0,
544 0x3c87f120,
545 0x0684b608,
546 0x99f094bd,
547 0x0089d006,
548 0xf50131f4,
549 0xf107c721,
550 0xb6085c87,
551 0x94bd0684,
552 0xd00699f0,
553 0x0ef40089,
554/* 0x04d5: chsw_prev_no_next */
555 0xb920f931,
556 0x32f40212,
557 0x0232f401,
558 0x07c721f5,
559 0x17f120fc,
560 0x14b60b00,
561 0x0012d006,
562/* 0x04f3: chsw_no_prev */
563 0xc8130ef4,
564 0x0bf41f23,
565 0x0131f40d,
566 0xf50232f4,
567/* 0x0503: chsw_done */
568 0xf107c721,
569 0xb60b0c17,
570 0x27f00614,
571 0x0012d001,
572 0x085c87f1,
573 0xbd0684b6,
574 0x0499f094,
575 0xf50089d0,
576/* 0x0523: main_not_ctx_switch */
577 0xb0ff200e,
578 0x1bf401e4,
579 0x02f2b90d,
580 0x075b21f5,
581/* 0x0533: main_not_ctx_chan */
582 0xb0420ef4,
583 0x1bf402e4,
584 0x3c87f12e,
585 0x0684b608,
586 0x99f094bd,
587 0x0089d007,
588 0xf40132f4,
589 0x21f50232,
590 0x87f107c7,
591 0x84b6085c,
592 0xf094bd06,
593 0x89d00799,
594 0x110ef400,
595/* 0x0564: main_not_ctx_save */
596 0xf010ef94,
597 0x21f501f5,
598 0x0ef502ec,
599/* 0x0572: main_done */
600 0x17f1fed1,
601 0x14b60820,
602 0xf024bd06,
603 0x12d01f29,
604 0xbe0ef500,
605/* 0x0585: ih */
606 0xfe80f9fe,
607 0x80f90188,
608 0xa0f990f9,
609 0xd0f9b0f9,
610 0xf0f9e0f9,
611 0xc4800acf,
612 0x0bf404ab,
613 0x00b7f11d,
614 0x10d7f019,
615 0xcf40becf,
616 0x21f400bf,
617 0x00b0b704,
618 0x01e7f004,
619/* 0x05bb: ih_no_fifo */
620 0xe400bed0,
621 0xf40100ab,
622 0xd7f00d0b,
623 0x01e7f110,
624 0x0421f440,
625/* 0x05cc: ih_no_ctxsw */
626 0x0104b7f1,
627 0xabffb0bd,
628 0x0d0bf4b4,
629 0x0c1ca7f1,
630 0xd006a4b6,
631/* 0x05e2: ih_no_other */
632 0x0ad000ab,
633 0xfcf0fc40,
634 0xfcd0fce0,
635 0xfca0fcb0,
636 0xfe80fc90,
637 0x80fc0088,
638 0xf80032f4,
639/* 0x05fd: ctx_4170s */
640 0x70e7f101,
641 0x40e3f041,
642 0xf410f5f0,
643 0x00f88d21,
644/* 0x060c: ctx_4170w */
645 0x4170e7f1,
646 0xf440e3f0,
647 0xf4f06821,
648 0xf31bf410,
649/* 0x061e: ctx_redswitch */
650 0xe7f100f8,
651 0xe4b60614,
652 0x70f7f106,
653 0x00efd002,
654/* 0x062f: ctx_redswitch_delay */
655 0xb608f7f0,
656 0x1bf401f2,
657 0x70f7f1fd,
658 0x00efd007,
659/* 0x063e: ctx_86c */
660 0xe7f100f8,
661 0xe4b6086c,
662 0x00efd006,
663 0x8a14e7f1,
664 0xf440e3f0,
665 0xe7f18d21,
666 0xe3f0a86c,
667 0x8d21f441,
668/* 0x065e: ctx_load */
669 0x87f100f8,
670 0x84b6083c,
671 0xf094bd06,
672 0x89d00599,
673 0x0ca7f000,
674 0xf1c921f4,
675 0xb60a2417,
676 0x10d00614,
677 0x0037f100,
678 0x0634b60b,
679 0xf14032d0,
680 0xb60a0c17,
681 0x47f00614,
682 0x0012d007,
683/* 0x0697: ctx_chan_wait_0 */
684 0xcf4014d0,
685 0x44f04014,
686 0xfa1bf41f,
687 0xfe0032d0,
688 0x2af0000b,
689 0x0424b61f,
690 0xf10220b6,
691 0xb6083c87,
692 0x94bd0684,
693 0xd00899f0,
694 0x17f10089,
695 0x14b60a04,
696 0x0012d006,
697 0x0a2017f1,
698 0xf00614b6,
699 0x23f10227,
700 0x12d08000,
701 0x1017f000,
702 0x020027f1,
703 0xfa0223f0,
704 0x03f80512,
705 0x085c87f1,
706 0xbd0684b6,
707 0x0899f094,
708 0x980089d0,
709 0x14b68101,
710 0x80029818,
711 0xfd0825b6,
712 0x01800512,
713 0x3c87f116,
714 0x0684b608,
715 0x99f094bd,
716 0x0089d009,
717 0x0a0427f1,
718 0xd00624b6,
719 0x27f00021,
720 0x2017f101,
721 0x0614b60a,
722 0xf10012d0,
723 0xf0010017,
724 0x01fa0613,
725 0xf103f805,
726 0xb6085c87,
727 0x94bd0684,
728 0xd00999f0,
729 0x87f10089,
730 0x84b6085c,
731 0xf094bd06,
732 0x89d00599,
733/* 0x075b: ctx_chan */
734 0xf500f800,
735 0xf0065e21,
736 0x21f40ca7,
737 0x1017f1c9,
738 0x0614b60a,
739 0xd00527f0,
740/* 0x0772: ctx_chan_wait */
741 0x12cf0012,
742 0x0522fd00,
743 0xf8fa1bf4,
744/* 0x077d: ctx_mmio_exec */
745 0x41039800,
746 0x0a0427f1,
747 0xd00624b6,
748 0x34bd0023,
749/* 0x078c: ctx_mmio_loop */
750 0xf4ff34c4,
751 0x57f10f1b,
752 0x53f00200,
753 0x0535fa06,
754/* 0x079e: ctx_mmio_pull */
755 0x4e9803f8,
756 0x814f9880,
757 0xb68d21f4,
758 0x12b60830,
759 0xdf1bf401,
760/* 0x07b0: ctx_mmio_done */
761 0xd0160398,
762 0x00800023,
763 0x0017f140,
764 0x0613f001,
765 0xf80601fa,
766/* 0x07c7: ctx_xfer */
767 0xf100f803,
768 0xb60c00f7,
769 0xe7f006f4,
770 0x80fed004,
771/* 0x07d4: ctx_xfer_idle */
772 0xf100fecf,
773 0xf42000e4,
774 0x11f4f91b,
775 0x0d02f406,
776/* 0x07e4: ctx_xfer_pre */
777 0xf510f7f0,
778 0xf4063e21,
779/* 0x07ee: ctx_xfer_pre_load */
780 0xf7f01c11,
781 0xfd21f502,
782 0x0c21f505,
783 0x1e21f506,
784 0xf5f4bd06,
785 0xf505fd21,
786/* 0x0807: ctx_xfer_exec */
787 0x98065e21,
788 0x27f11601,
789 0x24b60414,
790 0x0020d006,
791 0xa500e7f1,
792 0xb941e3f0,
793 0x21f4021f,
794 0x04e0b68d,
795 0xf001fcf0,
796 0x24b6022c,
797 0x05f2fd01,
798 0xf18d21f4,
799 0xf04afc17,
800 0x27f00213,
801 0x0012d00c,
802 0x020721f5,
803 0x47fc27f1,
804 0xd00223f0,
805 0x2cf00020,
806 0x0320b601,
807 0xf00012d0,
808 0xa5f001ac,
809 0x00b7f006,
810 0x98000c98,
811 0xe7f0010d,
812 0x5c21f500,
813 0x08a7f001,
814 0x010321f5,
815 0x020721f5,
816 0xf02201f4,
817 0x21f40ca7,
818 0x1017f1c9,
819 0x0614b60a,
820 0xd00527f0,
821/* 0x088e: ctx_xfer_post_save_wait */
822 0x12cf0012,
823 0x0522fd00,
824 0xf4fa1bf4,
825/* 0x089a: ctx_xfer_post */
826 0xf7f02e02,
827 0xfd21f502,
828 0xf5f4bd05,
829 0xf5063e21,
830 0xf5022621,
831 0xbd060c21,
832 0xfd21f5f4,
833 0x1011f405,
834 0xfd400198,
835 0x0bf40511,
836 0x7d21f507,
837/* 0x08c5: ctx_xfer_no_post_mmio */
838/* 0x08c5: ctx_xfer_done */
839 0x0000f807,
840 0x00000000,
841 0x00000000,
842 0x00000000,
843 0x00000000,
844 0x00000000,
845 0x00000000,
846 0x00000000,
847 0x00000000,
848 0x00000000,
849 0x00000000,
850 0x00000000,
851 0x00000000,
852 0x00000000,
853 0x00000000,
854};
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/macros.fuc b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/macros.fuc
index f73cf3efbc35..c74642827021 100644
--- a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/macros.fuc
+++ b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/macros.fuc
@@ -27,6 +27,7 @@
27#define GF100 0xc0 27#define GF100 0xc0
28#define GF117 0xd7 28#define GF117 0xd7
29#define GK100 0xe0 29#define GK100 0xe0
30#define GK110 0xf0
30 31
31#define mmctx_data(r,c) .b32 (((c - 1) << 26) | r) 32#define mmctx_data(r,c) .b32 (((c - 1) << 26) | r)
32#define queue_init .skip 72 // (2 * 4) + ((8 * 4) * 2) 33#define queue_init .skip 72 // (2 * 4) + ((8 * 4) * 2)
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/nvf0.c b/drivers/gpu/drm/nouveau/core/engine/graph/nvf0.c
index 01294b0a0632..2f0ac7832234 100644
--- a/drivers/gpu/drm/nouveau/core/engine/graph/nvf0.c
+++ b/drivers/gpu/drm/nouveau/core/engine/graph/nvf0.c
@@ -211,6 +211,26 @@ nvf0_graph_init_mmio[] = {
211 NULL 211 NULL
212}; 212};
213 213
214#include "fuc/hubnvf0.fuc.h"
215
216static struct nvc0_graph_ucode
217nvf0_graph_fecs_ucode = {
218 .code.data = nvf0_grhub_code,
219 .code.size = sizeof(nvf0_grhub_code),
220 .data.data = nvf0_grhub_data,
221 .data.size = sizeof(nvf0_grhub_data),
222};
223
224#include "fuc/gpcnvf0.fuc.h"
225
226static struct nvc0_graph_ucode
227nvf0_graph_gpccs_ucode = {
228 .code.data = nvf0_grgpc_code,
229 .code.size = sizeof(nvf0_grgpc_code),
230 .data.data = nvf0_grgpc_data,
231 .data.size = sizeof(nvf0_grgpc_data),
232};
233
214struct nouveau_oclass * 234struct nouveau_oclass *
215nvf0_graph_oclass = &(struct nvc0_graph_oclass) { 235nvf0_graph_oclass = &(struct nvc0_graph_oclass) {
216 .base.handle = NV_ENGINE(GR, 0xf0), 236 .base.handle = NV_ENGINE(GR, 0xf0),
@@ -223,4 +243,6 @@ nvf0_graph_oclass = &(struct nvc0_graph_oclass) {
223 .cclass = &nvf0_grctx_oclass, 243 .cclass = &nvf0_grctx_oclass,
224 .sclass = nvf0_graph_sclass, 244 .sclass = nvf0_graph_sclass,
225 .mmio = nvf0_graph_init_mmio, 245 .mmio = nvf0_graph_init_mmio,
246 .fecs.ucode = 0 ? &nvf0_graph_fecs_ucode : NULL,
247 .gpccs.ucode = &nvf0_graph_gpccs_ucode,
226}.base; 248}.base;