Loading drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvf0.fuc 0 → 100644 +42 −0 Original line number Diff line number Diff line /* * Copyright 2013 Red Hat Inc. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * * Authors: Ben Skeggs <bskeggs@redhat.com> */ #define NV_PGRAPH_GPCX_UNK__SIZE 0x00000002 #define CHIPSET GK110 #include "macros.fuc" .section #nvf0_grgpc_data #define INCLUDE_DATA #include "com.fuc" #include "gpc.fuc" #undef INCLUDE_DATA .section #nvf0_grgpc_code #define INCLUDE_CODE bra #init #include "com.fuc" #include "gpc.fuc" .align 256 #undef INCLUDE_CODE drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvf0.fuc.h 0 → 100644 +472 −0 Original line number Diff line number Diff line uint32_t nvf0_grgpc_data[] = { /* 0x0000: gpc_mmio_list_head */ 0x0000006c, /* 0x0004: gpc_mmio_list_tail */ /* 0x0004: tpc_mmio_list_head */ 0x0000006c, /* 0x0008: tpc_mmio_list_tail */ /* 0x0008: unk_mmio_list_head */ 0x0000006c, /* 0x000c: unk_mmio_list_tail */ 0x0000006c, /* 0x0010: gpc_id */ 0x00000000, /* 0x0014: tpc_count */ 0x00000000, /* 0x0018: tpc_mask */ 0x00000000, /* 0x001c: unk_count */ 0x00000001, /* 0x0020: unk_mask */ 0x00000001, /* 0x0024: cmd_queue */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }; uint32_t nvf0_grgpc_code[] = { 0x03060ef5, /* 0x0004: queue_put */ 0x9800d898, 0x86f001d9, 0x0489b808, 0xf00c1bf4, 0x21f502f7, 0x00f802ec, /* 0x001c: queue_put_next */ 0xb60798c4, 0x8dbb0384, 0x0880b600, 0x80008e80, 0x90b6018f, 0x0f94f001, 0xf801d980, /* 0x0039: queue_get */ 0x0131f400, 0x9800d898, 0x89b801d9, 0x210bf404, 0xb60789c4, 0x9dbb0394, 0x0890b600, 0x98009e98, 0x80b6019f, 0x0f84f001, 0xf400d880, /* 0x0066: queue_get_done */ 0x00f80132, /* 0x0068: nv_rd32 */ 0x0728b7f1, 0xb906b4b6, 0xc9f002ec, 0x00bcd01f, /* 0x0078: nv_rd32_wait */ 0xc800bccf, 0x1bf41fcc, 0x06a7f0fa, 0x010321f5, 0xf840bfcf, /* 0x008d: nv_wr32 */ 0x28b7f100, 0x06b4b607, 0xb980bfd0, 0xc9f002ec, 0x1ec9f01f, /* 0x00a3: nv_wr32_wait */ 0xcf00bcd0, 0xccc800bc, 0xfa1bf41f, /* 0x00ae: watchdog_reset */ 0x87f100f8, 0x84b60430, 0x1ff9f006, 0xf8008fd0, /* 0x00bd: watchdog_clear */ 0x3087f100, 0x0684b604, 0xf80080d0, /* 0x00c9: wait_donez */ 0x3c87f100, 0x0684b608, 0x99f094bd, 0x0089d000, 0x081887f1, 0xd00684b6, /* 0x00e2: wait_donez_ne */ 0x87f1008a, 0x84b60400, 0x0088cf06, 0xf4888aff, 0x87f1f31b, 0x84b6085c, 0xf094bd06, 0x89d00099, /* 0x0103: wait_doneo */ 0xf100f800, 0xb6083c87, 0x94bd0684, 0xd00099f0, 0x87f10089, 0x84b60818, 0x008ad006, /* 0x011c: wait_doneo_e */ 0x040087f1, 0xcf0684b6, 0x8aff0088, 0xf30bf488, 0x085c87f1, 0xbd0684b6, 0x0099f094, 0xf80089d0, /* 0x013d: mmctx_size */ /* 0x013f: nv_mmctx_size_loop */ 0x9894bd00, 0x85b600e8, 0x0180b61a, 0xbb0284b6, 0xe0b60098, 0x04efb804, 0xb9eb1bf4, 0x00f8029f, /* 0x015c: mmctx_xfer */ 0x083c87f1, 0xbd0684b6, 0x0199f094, 0xf10089d0, 0xb6071087, 0x94bd0684, 0xf405bbfd, 0x8bd0090b, 0x0099f000, /* 0x0180: mmctx_base_disabled */ 0xf405eefd, 0x8ed00c0b, 0xc08fd080, /* 0x018f: mmctx_multi_disabled */ 0xb70199f0, 0xc8010080, 0xb4b600ab, 0x0cb9f010, 0xb601aec8, 0xbefd11e4, 0x008bd005, /* 0x01a8: mmctx_exec_loop */ /* 0x01a8: mmctx_wait_free */ 0xf0008ecf, 0x0bf41fe4, 0x00ce98fa, 0xd005e9fd, 0xc0b6c08e, 0x04cdb804, 0xc8e81bf4, 0x1bf402ab, /* 0x01c9: mmctx_fini_wait */ 0x008bcf18, 0xb01fb4f0, 0x1bf410b4, 0x02a7f0f7, 0xf4c921f4, /* 0x01de: mmctx_stop */ 0xabc81b0e, 0x10b4b600, 0xf00cb9f0, 0x8bd012b9, /* 0x01ed: mmctx_stop_wait */ 0x008bcf00, 0xf412bbc8, /* 0x01f6: mmctx_done */ 0x87f1fa1b, 0x84b6085c, 0xf094bd06, 0x89d00199, /* 0x0207: strand_wait */ 0xf900f800, 0x02a7f0a0, 0xfcc921f4, /* 0x0213: strand_pre */ 0xf100f8a0, 0xf04afc87, 0x97f00283, 0x0089d00c, 0x020721f5, /* 0x0226: strand_post */ 0x87f100f8, 0x83f04afc, 0x0d97f002, 0xf50089d0, 0xf8020721, /* 0x0239: strand_set */ 0xfca7f100, 0x02a3f04f, 0x0500aba2, 0xd00fc7f0, 0xc7f000ac, 0x00bcd00b, 0x020721f5, 0xf000aed0, 0xbcd00ac7, 0x0721f500, /* 0x0263: strand_ctx_init */ 0xf100f802, 0xb6083c87, 0x94bd0684, 0xd00399f0, 0x21f50089, 0xe7f00213, 0x3921f503, 0xfca7f102, 0x02a3f046, 0x0400aba0, 0xf040a0d0, 0xbcd001c7, 0x0721f500, 0x010c9202, 0xf000acd0, 0xbcd002c7, 0x0721f500, 0x2621f502, 0x8087f102, 0x0684b608, 0xb70089cf, 0x95220080, /* 0x02ba: ctx_init_strand_loop */ 0x8ed008fe, 0x408ed000, 0xb6808acf, 0xa0b606a5, 0x00eabb01, 0xb60480b6, 0x1bf40192, 0x08e4b6e8, 0xf1f2efbc, 0xb6085c87, 0x94bd0684, 0xd00399f0, 0x00f80089, /* 0x02ec: error */ 0xe7f1e0f9, 0xe3f09814, 0x8d21f440, 0x041ce0b7, 0xf401f7f0, 0xe0fc8d21, /* 0x0306: init */ 0x04bd00f8, 0xf10004fe, 0xf0120017, 0x12d00227, 0x2317f100, 0x0010fe04, 0x040017f1, 0xf0c010d0, 0x12d00427, 0x1031f400, 0x060817f1, 0xcf0614b6, 0x37f00012, 0x1f24f001, 0xb60432bb, 0x02800132, 0x06038005, 0x040010b7, 0x800012cf, 0x27f10402, 0x24b60800, 0x4022cf06, 0x47f134bd, 0x44b60700, 0x08259506, 0xd00045d0, 0x0e984045, 0x010f9800, 0x013d21f5, 0xbb002fbb, 0x0e98003f, 0x020f9801, 0x013d21f5, 0xfd050e98, 0x2ebb00ef, 0x003ebb00, 0x98020e98, 0x21f5030f, 0x0e98013d, 0x00effd07, 0xbb002ebb, 0x40b7003e, 0x35b61300, 0x0043d002, 0xb60825b6, 0x20b60635, 0x0130b601, 0xb60824b6, 0x2fb90834, 0x6321f502, 0x003fbb02, 0x080017f1, 0xd00614b6, 0x10b74013, 0x24bd0800, 0xd01f29f0, /* 0x03e6: main */ 0x31f40012, 0x0028f400, 0xf424d7f0, 0x01f43921, 0x04e4b0f4, 0xfe1e18f4, 0x27f00181, 0xfd20bd06, 0xe4b60412, 0x051efd01, 0xf50018fe, 0xf404a821, /* 0x0416: main_not_ctx_xfer */ 0xef94d30e, 0x01f5f010, 0x02ec21f5, /* 0x0423: ih */ 0xf9c60ef4, 0x0188fe80, 0x90f980f9, 0xb0f9a0f9, 0xe0f9d0f9, 0x0acff0f9, 0x04abc480, 0xf11d0bf4, 0xf01900b7, 0xbecf24d7, 0x00bfcf40, 0xb70421f4, 0xf00400b0, 0xbed001e7, /* 0x0459: ih_no_fifo */ 0x400ad000, 0xe0fcf0fc, 0xb0fcd0fc, 0x90fca0fc, 0x88fe80fc, 0xf480fc00, 0x01f80032, /* 0x0474: hub_barrier_done */ 0x9801f7f0, 0xfebb040e, 0x18e7f104, 0x40e3f094, 0xf88d21f4, /* 0x0489: ctx_redswitch */ 0x14e7f100, 0x06e4b606, 0xd020f7f0, 0xf7f000ef, /* 0x0499: ctx_redswitch_delay */ 0x01f2b608, 0xf1fd1bf4, 0xd00a20f7, 0x00f800ef, /* 0x04a8: ctx_xfer */ 0x0a0417f1, 0xd00614b6, 0x11f4001f, 0x8921f507, /* 0x04b9: ctx_xfer_not_load */ 0xfc17f104, 0x0213f04a, 0xd00c27f0, 0x21f50012, 0x27f10207, 0x23f047fc, 0x0020d002, 0xb6012cf0, 0x12d00320, 0x01acf000, 0xf002a5f0, 0xb3f000b7, 0x040c9850, 0xbb0fc4b6, 0x0c9800bc, 0x010d9800, 0xf500e7f0, 0xf0015c21, 0xb7f101ac, 0xb3f04000, 0x040c9850, 0xbb0fc4b6, 0x0c9800bc, 0x020d9801, 0xf1060f98, 0xf50800e7, 0xf0015c21, 0xa5f001ac, 0x00b7f104, 0x50b3f030, 0xb6040c98, 0xbcbb0fc4, 0x020c9800, 0x98030d98, 0xe7f1080f, 0x21f50200, 0x21f5015c, 0x01f40207, 0x1412f406, /* 0x0554: ctx_xfer_post */ 0x4afc17f1, 0xf00213f0, 0x12d00d27, 0x0721f500, /* 0x0565: ctx_xfer_done */ 0x7421f502, 0x0000f804, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }; drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvf0.fuc 0 → 100644 +40 −0 Original line number Diff line number Diff line /* * Copyright 2013 Red Hat Inc. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * * Authors: Ben Skeggs <bskeggs@redhat.com> */ #define CHIPSET GK110 #include "macros.fuc" .section #nvf0_grhub_data #define INCLUDE_DATA #include "com.fuc" #include "hub.fuc" #undef INCLUDE_DATA .section #nvf0_grhub_code #define INCLUDE_CODE bra #init #include "com.fuc" #include "hub.fuc" .align 256 #undef INCLUDE_CODE drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvf0.fuc.h 0 → 100644 +854 −0 Original line number Diff line number Diff line uint32_t nvf0_grhub_data[] = { /* 0x0000: hub_mmio_list_head */ 0x00000300, /* 0x0004: hub_mmio_list_tail */ 0x00000304, /* 0x0008: gpc_count */ 0x00000000, /* 0x000c: rop_count */ 0x00000000, /* 0x0010: cmd_queue */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, /* 0x0058: ctx_current */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, /* 0x0100: chan_data */ /* 0x0100: chan_mmio_count */ 0x00000000, /* 0x0104: chan_mmio_address */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, /* 0x0200: xfer_data */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, /* 0x0300: hub_mmio_list_base */ 0x0417e91c, }; uint32_t nvf0_grhub_code[] = { 0x03090ef5, /* 0x0004: queue_put */ 0x9800d898, 0x86f001d9, 0x0489b808, 0xf00c1bf4, 0x21f502f7, 0x00f802ec, /* 0x001c: queue_put_next */ 0xb60798c4, 0x8dbb0384, 0x0880b600, 0x80008e80, 0x90b6018f, 0x0f94f001, 0xf801d980, /* 0x0039: queue_get */ 0x0131f400, 0x9800d898, 0x89b801d9, 0x210bf404, 0xb60789c4, 0x9dbb0394, 0x0890b600, 0x98009e98, 0x80b6019f, 0x0f84f001, 0xf400d880, /* 0x0066: queue_get_done */ 0x00f80132, /* 0x0068: nv_rd32 */ 0x0728b7f1, 0xb906b4b6, 0xc9f002ec, 0x00bcd01f, /* 0x0078: nv_rd32_wait */ 0xc800bccf, 0x1bf41fcc, 0x06a7f0fa, 0x010321f5, 0xf840bfcf, /* 0x008d: nv_wr32 */ 0x28b7f100, 0x06b4b607, 0xb980bfd0, 0xc9f002ec, 0x1ec9f01f, /* 0x00a3: nv_wr32_wait */ 0xcf00bcd0, 0xccc800bc, 0xfa1bf41f, /* 0x00ae: watchdog_reset */ 0x87f100f8, 0x84b60430, 0x1ff9f006, 0xf8008fd0, /* 0x00bd: watchdog_clear */ 0x3087f100, 0x0684b604, 0xf80080d0, /* 0x00c9: wait_donez */ 0x3c87f100, 0x0684b608, 0x99f094bd, 0x0089d000, 0x081887f1, 0xd00684b6, /* 0x00e2: wait_donez_ne */ 0x87f1008a, 0x84b60400, 0x0088cf06, 0xf4888aff, 0x87f1f31b, 0x84b6085c, 0xf094bd06, 0x89d00099, /* 0x0103: wait_doneo */ 0xf100f800, 0xb6083c87, 0x94bd0684, 0xd00099f0, 0x87f10089, 0x84b60818, 0x008ad006, /* 0x011c: wait_doneo_e */ 0x040087f1, 0xcf0684b6, 0x8aff0088, 0xf30bf488, 0x085c87f1, 0xbd0684b6, 0x0099f094, 0xf80089d0, /* 0x013d: mmctx_size */ /* 0x013f: nv_mmctx_size_loop */ 0x9894bd00, 0x85b600e8, 0x0180b61a, 0xbb0284b6, 0xe0b60098, 0x04efb804, 0xb9eb1bf4, 0x00f8029f, /* 0x015c: mmctx_xfer */ 0x083c87f1, 0xbd0684b6, 0x0199f094, 0xf10089d0, 0xb6071087, 0x94bd0684, 0xf405bbfd, 0x8bd0090b, 0x0099f000, /* 0x0180: mmctx_base_disabled */ 0xf405eefd, 0x8ed00c0b, 0xc08fd080, /* 0x018f: mmctx_multi_disabled */ 0xb70199f0, 0xc8010080, 0xb4b600ab, 0x0cb9f010, 0xb601aec8, 0xbefd11e4, 0x008bd005, /* 0x01a8: mmctx_exec_loop */ /* 0x01a8: mmctx_wait_free */ 0xf0008ecf, 0x0bf41fe4, 0x00ce98fa, 0xd005e9fd, 0xc0b6c08e, 0x04cdb804, 0xc8e81bf4, 0x1bf402ab, /* 0x01c9: mmctx_fini_wait */ 0x008bcf18, 0xb01fb4f0, 0x1bf410b4, 0x02a7f0f7, 0xf4c921f4, /* 0x01de: mmctx_stop */ 0xabc81b0e, 0x10b4b600, 0xf00cb9f0, 0x8bd012b9, /* 0x01ed: mmctx_stop_wait */ 0x008bcf00, 0xf412bbc8, /* 0x01f6: mmctx_done */ 0x87f1fa1b, 0x84b6085c, 0xf094bd06, 0x89d00199, /* 0x0207: strand_wait */ 0xf900f800, 0x02a7f0a0, 0xfcc921f4, /* 0x0213: strand_pre */ 0xf100f8a0, 0xf04afc87, 0x97f00283, 0x0089d00c, 0x020721f5, /* 0x0226: strand_post */ 0x87f100f8, 0x83f04afc, 0x0d97f002, 0xf50089d0, 0xf8020721, /* 0x0239: strand_set */ 0xfca7f100, 0x02a3f04f, 0x0500aba2, 0xd00fc7f0, 0xc7f000ac, 0x00bcd00b, 0x020721f5, 0xf000aed0, 0xbcd00ac7, 0x0721f500, /* 0x0263: strand_ctx_init */ 0xf100f802, 0xb6083c87, 0x94bd0684, 0xd00399f0, 0x21f50089, 0xe7f00213, 0x3921f503, 0xfca7f102, 0x02a3f046, 0x0400aba0, 0xf040a0d0, 0xbcd001c7, 0x0721f500, 0x010c9202, 0xf000acd0, 0xbcd002c7, 0x0721f500, 0x2621f502, 0x8087f102, 0x0684b608, 0xb70089cf, 0x95220080, /* 0x02ba: ctx_init_strand_loop */ 0x8ed008fe, 0x408ed000, 0xb6808acf, 0xa0b606a5, 0x00eabb01, 0xb60480b6, 0x1bf40192, 0x08e4b6e8, 0xf1f2efbc, 0xb6085c87, 0x94bd0684, 0xd00399f0, 0x00f80089, /* 0x02ec: error */ 0xe7f1e0f9, 0xe4b60814, 0x00efd006, 0x0c1ce7f1, 0xf006e4b6, 0xefd001f7, 0xf8e0fc00, /* 0x0309: init */ 0xfe04bd00, 0x07fe0004, 0x0017f100, 0x0227f012, 0xf10012d0, 0xfe058517, 0x17f10010, 0x10d00400, 0x0437f1c0, 0x0634b604, 0x200327f1, 0xf10032d0, 0xd0200427, 0x27f10132, 0x32d0200b, 0x0c27f102, 0x0732d020, 0x0c2427f1, 0xb90624b6, 0x23d00003, 0x0427f100, 0x0023f087, 0xb70012d0, 0xf0010012, 0x12d00427, 0x1031f400, 0x9604e7f1, 0xf440e3f0, 0xf1c76821, 0x03018090, 0x801ff4f0, 0x17f0020f, 0x041fbb01, 0xf10112b6, 0xb6040c27, 0x21d00624, 0x4021d000, 0x010017f1, 0x98000e98, 0x21f5010f, 0x37f1013d, 0x34b60700, 0x08149506, 0xd00034d0, 0x30b74034, 0x1fbb1300, 0x02f5b600, 0xb6003fd0, 0x10b60815, 0x0814b601, 0xf5021fb9, 0xbb026321, 0x0398001f, 0x0047f102, 0x5043f020, /* 0x03e4: init_gpc */ 0x08044ea0, 0xf4021fb9, 0x4ea08d21, 0xf4bd010c, 0xa08d21f4, 0xf401044e, 0x4ea08d21, 0xf7f00100, 0x8d21f402, 0x08004ea0, /* 0x040c: init_gpc_wait */ 0xc86821f4, 0x0bf41fff, 0x044ea0fa, 0x6821f408, 0xb7001fbb, 0xb6800040, 0x1bf40132, 0x0027f1be, 0x0624b608, 0xb74021d0, 0xbd080020, 0x1f19f014, /* 0x043f: main */ 0xf40021d0, 0x28f40031, 0x10d7f000, 0xf43921f4, 0xe4b1f401, 0x1bf54001, 0x87f100d1, 0x84b6083c, 0xf094bd06, 0x89d00499, 0x0017f100, 0x0614b60b, 0xcf4012cf, 0x13c80011, 0x7e0bf41f, 0xf41f23c8, 0x20f95a0b, 0xf10212b9, 0xb6083c87, 0x94bd0684, 0xd00799f0, 0x32f40089, 0x0231f401, 0x07c721f5, 0x085c87f1, 0xbd0684b6, 0x0799f094, 0xfc0089d0, 0x3c87f120, 0x0684b608, 0x99f094bd, 0x0089d006, 0xf50131f4, 0xf107c721, 0xb6085c87, 0x94bd0684, 0xd00699f0, 0x0ef40089, /* 0x04d5: chsw_prev_no_next */ 0xb920f931, 0x32f40212, 0x0232f401, 0x07c721f5, 0x17f120fc, 0x14b60b00, 0x0012d006, /* 0x04f3: chsw_no_prev */ 0xc8130ef4, 0x0bf41f23, 0x0131f40d, 0xf50232f4, /* 0x0503: chsw_done */ 0xf107c721, 0xb60b0c17, 0x27f00614, 0x0012d001, 0x085c87f1, 0xbd0684b6, 0x0499f094, 0xf50089d0, /* 0x0523: main_not_ctx_switch */ 0xb0ff200e, 0x1bf401e4, 0x02f2b90d, 0x075b21f5, /* 0x0533: main_not_ctx_chan */ 0xb0420ef4, 0x1bf402e4, 0x3c87f12e, 0x0684b608, 0x99f094bd, 0x0089d007, 0xf40132f4, 0x21f50232, 0x87f107c7, 0x84b6085c, 0xf094bd06, 0x89d00799, 0x110ef400, /* 0x0564: main_not_ctx_save */ 0xf010ef94, 0x21f501f5, 0x0ef502ec, /* 0x0572: main_done */ 0x17f1fed1, 0x14b60820, 0xf024bd06, 0x12d01f29, 0xbe0ef500, /* 0x0585: ih */ 0xfe80f9fe, 0x80f90188, 0xa0f990f9, 0xd0f9b0f9, 0xf0f9e0f9, 0xc4800acf, 0x0bf404ab, 0x00b7f11d, 0x10d7f019, 0xcf40becf, 0x21f400bf, 0x00b0b704, 0x01e7f004, /* 0x05bb: ih_no_fifo */ 0xe400bed0, 0xf40100ab, 0xd7f00d0b, 0x01e7f110, 0x0421f440, /* 0x05cc: ih_no_ctxsw */ 0x0104b7f1, 0xabffb0bd, 0x0d0bf4b4, 0x0c1ca7f1, 0xd006a4b6, /* 0x05e2: ih_no_other */ 0x0ad000ab, 0xfcf0fc40, 0xfcd0fce0, 0xfca0fcb0, 0xfe80fc90, 0x80fc0088, 0xf80032f4, /* 0x05fd: ctx_4170s */ 0x70e7f101, 0x40e3f041, 0xf410f5f0, 0x00f88d21, /* 0x060c: ctx_4170w */ 0x4170e7f1, 0xf440e3f0, 0xf4f06821, 0xf31bf410, /* 0x061e: ctx_redswitch */ 0xe7f100f8, 0xe4b60614, 0x70f7f106, 0x00efd002, /* 0x062f: ctx_redswitch_delay */ 0xb608f7f0, 0x1bf401f2, 0x70f7f1fd, 0x00efd007, /* 0x063e: ctx_86c */ 0xe7f100f8, 0xe4b6086c, 0x00efd006, 0x8a14e7f1, 0xf440e3f0, 0xe7f18d21, 0xe3f0a86c, 0x8d21f441, /* 0x065e: ctx_load */ 0x87f100f8, 0x84b6083c, 0xf094bd06, 0x89d00599, 0x0ca7f000, 0xf1c921f4, 0xb60a2417, 0x10d00614, 0x0037f100, 0x0634b60b, 0xf14032d0, 0xb60a0c17, 0x47f00614, 0x0012d007, /* 0x0697: ctx_chan_wait_0 */ 0xcf4014d0, 0x44f04014, 0xfa1bf41f, 0xfe0032d0, 0x2af0000b, 0x0424b61f, 0xf10220b6, 0xb6083c87, 0x94bd0684, 0xd00899f0, 0x17f10089, 0x14b60a04, 0x0012d006, 0x0a2017f1, 0xf00614b6, 0x23f10227, 0x12d08000, 0x1017f000, 0x020027f1, 0xfa0223f0, 0x03f80512, 0x085c87f1, 0xbd0684b6, 0x0899f094, 0x980089d0, 0x14b68101, 0x80029818, 0xfd0825b6, 0x01800512, 0x3c87f116, 0x0684b608, 0x99f094bd, 0x0089d009, 0x0a0427f1, 0xd00624b6, 0x27f00021, 0x2017f101, 0x0614b60a, 0xf10012d0, 0xf0010017, 0x01fa0613, 0xf103f805, 0xb6085c87, 0x94bd0684, 0xd00999f0, 0x87f10089, 0x84b6085c, 0xf094bd06, 0x89d00599, /* 0x075b: ctx_chan */ 0xf500f800, 0xf0065e21, 0x21f40ca7, 0x1017f1c9, 0x0614b60a, 0xd00527f0, /* 0x0772: ctx_chan_wait */ 0x12cf0012, 0x0522fd00, 0xf8fa1bf4, /* 0x077d: ctx_mmio_exec */ 0x41039800, 0x0a0427f1, 0xd00624b6, 0x34bd0023, /* 0x078c: ctx_mmio_loop */ 0xf4ff34c4, 0x57f10f1b, 0x53f00200, 0x0535fa06, /* 0x079e: ctx_mmio_pull */ 0x4e9803f8, 0x814f9880, 0xb68d21f4, 0x12b60830, 0xdf1bf401, /* 0x07b0: ctx_mmio_done */ 0xd0160398, 0x00800023, 0x0017f140, 0x0613f001, 0xf80601fa, /* 0x07c7: ctx_xfer */ 0xf100f803, 0xb60c00f7, 0xe7f006f4, 0x80fed004, /* 0x07d4: ctx_xfer_idle */ 0xf100fecf, 0xf42000e4, 0x11f4f91b, 0x0d02f406, /* 0x07e4: ctx_xfer_pre */ 0xf510f7f0, 0xf4063e21, /* 0x07ee: ctx_xfer_pre_load */ 0xf7f01c11, 0xfd21f502, 0x0c21f505, 0x1e21f506, 0xf5f4bd06, 0xf505fd21, /* 0x0807: ctx_xfer_exec */ 0x98065e21, 0x27f11601, 0x24b60414, 0x0020d006, 0xa500e7f1, 0xb941e3f0, 0x21f4021f, 0x04e0b68d, 0xf001fcf0, 0x24b6022c, 0x05f2fd01, 0xf18d21f4, 0xf04afc17, 0x27f00213, 0x0012d00c, 0x020721f5, 0x47fc27f1, 0xd00223f0, 0x2cf00020, 0x0320b601, 0xf00012d0, 0xa5f001ac, 0x00b7f006, 0x98000c98, 0xe7f0010d, 0x5c21f500, 0x08a7f001, 0x010321f5, 0x020721f5, 0xf02201f4, 0x21f40ca7, 0x1017f1c9, 0x0614b60a, 0xd00527f0, /* 0x088e: ctx_xfer_post_save_wait */ 0x12cf0012, 0x0522fd00, 0xf4fa1bf4, /* 0x089a: ctx_xfer_post */ 0xf7f02e02, 0xfd21f502, 0xf5f4bd05, 0xf5063e21, 0xf5022621, 0xbd060c21, 0xfd21f5f4, 0x1011f405, 0xfd400198, 0x0bf40511, 0x7d21f507, /* 0x08c5: ctx_xfer_no_post_mmio */ /* 0x08c5: ctx_xfer_done */ 0x0000f807, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }; drivers/gpu/drm/nouveau/core/engine/graph/fuc/macros.fuc +1 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ #define GF100 0xc0 #define GF117 0xd7 #define GK100 0xe0 #define GK110 0xf0 #define mmctx_data(r,c) .b32 (((c - 1) << 26) | r) #define queue_init .skip 72 // (2 * 4) + ((8 * 4) * 2) Loading Loading
drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvf0.fuc 0 → 100644 +42 −0 Original line number Diff line number Diff line /* * Copyright 2013 Red Hat Inc. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * * Authors: Ben Skeggs <bskeggs@redhat.com> */ #define NV_PGRAPH_GPCX_UNK__SIZE 0x00000002 #define CHIPSET GK110 #include "macros.fuc" .section #nvf0_grgpc_data #define INCLUDE_DATA #include "com.fuc" #include "gpc.fuc" #undef INCLUDE_DATA .section #nvf0_grgpc_code #define INCLUDE_CODE bra #init #include "com.fuc" #include "gpc.fuc" .align 256 #undef INCLUDE_CODE
drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvf0.fuc.h 0 → 100644 +472 −0 Original line number Diff line number Diff line uint32_t nvf0_grgpc_data[] = { /* 0x0000: gpc_mmio_list_head */ 0x0000006c, /* 0x0004: gpc_mmio_list_tail */ /* 0x0004: tpc_mmio_list_head */ 0x0000006c, /* 0x0008: tpc_mmio_list_tail */ /* 0x0008: unk_mmio_list_head */ 0x0000006c, /* 0x000c: unk_mmio_list_tail */ 0x0000006c, /* 0x0010: gpc_id */ 0x00000000, /* 0x0014: tpc_count */ 0x00000000, /* 0x0018: tpc_mask */ 0x00000000, /* 0x001c: unk_count */ 0x00000001, /* 0x0020: unk_mask */ 0x00000001, /* 0x0024: cmd_queue */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }; uint32_t nvf0_grgpc_code[] = { 0x03060ef5, /* 0x0004: queue_put */ 0x9800d898, 0x86f001d9, 0x0489b808, 0xf00c1bf4, 0x21f502f7, 0x00f802ec, /* 0x001c: queue_put_next */ 0xb60798c4, 0x8dbb0384, 0x0880b600, 0x80008e80, 0x90b6018f, 0x0f94f001, 0xf801d980, /* 0x0039: queue_get */ 0x0131f400, 0x9800d898, 0x89b801d9, 0x210bf404, 0xb60789c4, 0x9dbb0394, 0x0890b600, 0x98009e98, 0x80b6019f, 0x0f84f001, 0xf400d880, /* 0x0066: queue_get_done */ 0x00f80132, /* 0x0068: nv_rd32 */ 0x0728b7f1, 0xb906b4b6, 0xc9f002ec, 0x00bcd01f, /* 0x0078: nv_rd32_wait */ 0xc800bccf, 0x1bf41fcc, 0x06a7f0fa, 0x010321f5, 0xf840bfcf, /* 0x008d: nv_wr32 */ 0x28b7f100, 0x06b4b607, 0xb980bfd0, 0xc9f002ec, 0x1ec9f01f, /* 0x00a3: nv_wr32_wait */ 0xcf00bcd0, 0xccc800bc, 0xfa1bf41f, /* 0x00ae: watchdog_reset */ 0x87f100f8, 0x84b60430, 0x1ff9f006, 0xf8008fd0, /* 0x00bd: watchdog_clear */ 0x3087f100, 0x0684b604, 0xf80080d0, /* 0x00c9: wait_donez */ 0x3c87f100, 0x0684b608, 0x99f094bd, 0x0089d000, 0x081887f1, 0xd00684b6, /* 0x00e2: wait_donez_ne */ 0x87f1008a, 0x84b60400, 0x0088cf06, 0xf4888aff, 0x87f1f31b, 0x84b6085c, 0xf094bd06, 0x89d00099, /* 0x0103: wait_doneo */ 0xf100f800, 0xb6083c87, 0x94bd0684, 0xd00099f0, 0x87f10089, 0x84b60818, 0x008ad006, /* 0x011c: wait_doneo_e */ 0x040087f1, 0xcf0684b6, 0x8aff0088, 0xf30bf488, 0x085c87f1, 0xbd0684b6, 0x0099f094, 0xf80089d0, /* 0x013d: mmctx_size */ /* 0x013f: nv_mmctx_size_loop */ 0x9894bd00, 0x85b600e8, 0x0180b61a, 0xbb0284b6, 0xe0b60098, 0x04efb804, 0xb9eb1bf4, 0x00f8029f, /* 0x015c: mmctx_xfer */ 0x083c87f1, 0xbd0684b6, 0x0199f094, 0xf10089d0, 0xb6071087, 0x94bd0684, 0xf405bbfd, 0x8bd0090b, 0x0099f000, /* 0x0180: mmctx_base_disabled */ 0xf405eefd, 0x8ed00c0b, 0xc08fd080, /* 0x018f: mmctx_multi_disabled */ 0xb70199f0, 0xc8010080, 0xb4b600ab, 0x0cb9f010, 0xb601aec8, 0xbefd11e4, 0x008bd005, /* 0x01a8: mmctx_exec_loop */ /* 0x01a8: mmctx_wait_free */ 0xf0008ecf, 0x0bf41fe4, 0x00ce98fa, 0xd005e9fd, 0xc0b6c08e, 0x04cdb804, 0xc8e81bf4, 0x1bf402ab, /* 0x01c9: mmctx_fini_wait */ 0x008bcf18, 0xb01fb4f0, 0x1bf410b4, 0x02a7f0f7, 0xf4c921f4, /* 0x01de: mmctx_stop */ 0xabc81b0e, 0x10b4b600, 0xf00cb9f0, 0x8bd012b9, /* 0x01ed: mmctx_stop_wait */ 0x008bcf00, 0xf412bbc8, /* 0x01f6: mmctx_done */ 0x87f1fa1b, 0x84b6085c, 0xf094bd06, 0x89d00199, /* 0x0207: strand_wait */ 0xf900f800, 0x02a7f0a0, 0xfcc921f4, /* 0x0213: strand_pre */ 0xf100f8a0, 0xf04afc87, 0x97f00283, 0x0089d00c, 0x020721f5, /* 0x0226: strand_post */ 0x87f100f8, 0x83f04afc, 0x0d97f002, 0xf50089d0, 0xf8020721, /* 0x0239: strand_set */ 0xfca7f100, 0x02a3f04f, 0x0500aba2, 0xd00fc7f0, 0xc7f000ac, 0x00bcd00b, 0x020721f5, 0xf000aed0, 0xbcd00ac7, 0x0721f500, /* 0x0263: strand_ctx_init */ 0xf100f802, 0xb6083c87, 0x94bd0684, 0xd00399f0, 0x21f50089, 0xe7f00213, 0x3921f503, 0xfca7f102, 0x02a3f046, 0x0400aba0, 0xf040a0d0, 0xbcd001c7, 0x0721f500, 0x010c9202, 0xf000acd0, 0xbcd002c7, 0x0721f500, 0x2621f502, 0x8087f102, 0x0684b608, 0xb70089cf, 0x95220080, /* 0x02ba: ctx_init_strand_loop */ 0x8ed008fe, 0x408ed000, 0xb6808acf, 0xa0b606a5, 0x00eabb01, 0xb60480b6, 0x1bf40192, 0x08e4b6e8, 0xf1f2efbc, 0xb6085c87, 0x94bd0684, 0xd00399f0, 0x00f80089, /* 0x02ec: error */ 0xe7f1e0f9, 0xe3f09814, 0x8d21f440, 0x041ce0b7, 0xf401f7f0, 0xe0fc8d21, /* 0x0306: init */ 0x04bd00f8, 0xf10004fe, 0xf0120017, 0x12d00227, 0x2317f100, 0x0010fe04, 0x040017f1, 0xf0c010d0, 0x12d00427, 0x1031f400, 0x060817f1, 0xcf0614b6, 0x37f00012, 0x1f24f001, 0xb60432bb, 0x02800132, 0x06038005, 0x040010b7, 0x800012cf, 0x27f10402, 0x24b60800, 0x4022cf06, 0x47f134bd, 0x44b60700, 0x08259506, 0xd00045d0, 0x0e984045, 0x010f9800, 0x013d21f5, 0xbb002fbb, 0x0e98003f, 0x020f9801, 0x013d21f5, 0xfd050e98, 0x2ebb00ef, 0x003ebb00, 0x98020e98, 0x21f5030f, 0x0e98013d, 0x00effd07, 0xbb002ebb, 0x40b7003e, 0x35b61300, 0x0043d002, 0xb60825b6, 0x20b60635, 0x0130b601, 0xb60824b6, 0x2fb90834, 0x6321f502, 0x003fbb02, 0x080017f1, 0xd00614b6, 0x10b74013, 0x24bd0800, 0xd01f29f0, /* 0x03e6: main */ 0x31f40012, 0x0028f400, 0xf424d7f0, 0x01f43921, 0x04e4b0f4, 0xfe1e18f4, 0x27f00181, 0xfd20bd06, 0xe4b60412, 0x051efd01, 0xf50018fe, 0xf404a821, /* 0x0416: main_not_ctx_xfer */ 0xef94d30e, 0x01f5f010, 0x02ec21f5, /* 0x0423: ih */ 0xf9c60ef4, 0x0188fe80, 0x90f980f9, 0xb0f9a0f9, 0xe0f9d0f9, 0x0acff0f9, 0x04abc480, 0xf11d0bf4, 0xf01900b7, 0xbecf24d7, 0x00bfcf40, 0xb70421f4, 0xf00400b0, 0xbed001e7, /* 0x0459: ih_no_fifo */ 0x400ad000, 0xe0fcf0fc, 0xb0fcd0fc, 0x90fca0fc, 0x88fe80fc, 0xf480fc00, 0x01f80032, /* 0x0474: hub_barrier_done */ 0x9801f7f0, 0xfebb040e, 0x18e7f104, 0x40e3f094, 0xf88d21f4, /* 0x0489: ctx_redswitch */ 0x14e7f100, 0x06e4b606, 0xd020f7f0, 0xf7f000ef, /* 0x0499: ctx_redswitch_delay */ 0x01f2b608, 0xf1fd1bf4, 0xd00a20f7, 0x00f800ef, /* 0x04a8: ctx_xfer */ 0x0a0417f1, 0xd00614b6, 0x11f4001f, 0x8921f507, /* 0x04b9: ctx_xfer_not_load */ 0xfc17f104, 0x0213f04a, 0xd00c27f0, 0x21f50012, 0x27f10207, 0x23f047fc, 0x0020d002, 0xb6012cf0, 0x12d00320, 0x01acf000, 0xf002a5f0, 0xb3f000b7, 0x040c9850, 0xbb0fc4b6, 0x0c9800bc, 0x010d9800, 0xf500e7f0, 0xf0015c21, 0xb7f101ac, 0xb3f04000, 0x040c9850, 0xbb0fc4b6, 0x0c9800bc, 0x020d9801, 0xf1060f98, 0xf50800e7, 0xf0015c21, 0xa5f001ac, 0x00b7f104, 0x50b3f030, 0xb6040c98, 0xbcbb0fc4, 0x020c9800, 0x98030d98, 0xe7f1080f, 0x21f50200, 0x21f5015c, 0x01f40207, 0x1412f406, /* 0x0554: ctx_xfer_post */ 0x4afc17f1, 0xf00213f0, 0x12d00d27, 0x0721f500, /* 0x0565: ctx_xfer_done */ 0x7421f502, 0x0000f804, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, };
drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvf0.fuc 0 → 100644 +40 −0 Original line number Diff line number Diff line /* * Copyright 2013 Red Hat Inc. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * * Authors: Ben Skeggs <bskeggs@redhat.com> */ #define CHIPSET GK110 #include "macros.fuc" .section #nvf0_grhub_data #define INCLUDE_DATA #include "com.fuc" #include "hub.fuc" #undef INCLUDE_DATA .section #nvf0_grhub_code #define INCLUDE_CODE bra #init #include "com.fuc" #include "hub.fuc" .align 256 #undef INCLUDE_CODE
drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvf0.fuc.h 0 → 100644 +854 −0 Original line number Diff line number Diff line uint32_t nvf0_grhub_data[] = { /* 0x0000: hub_mmio_list_head */ 0x00000300, /* 0x0004: hub_mmio_list_tail */ 0x00000304, /* 0x0008: gpc_count */ 0x00000000, /* 0x000c: rop_count */ 0x00000000, /* 0x0010: cmd_queue */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, /* 0x0058: ctx_current */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, /* 0x0100: chan_data */ /* 0x0100: chan_mmio_count */ 0x00000000, /* 0x0104: chan_mmio_address */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, /* 0x0200: xfer_data */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, /* 0x0300: hub_mmio_list_base */ 0x0417e91c, }; uint32_t nvf0_grhub_code[] = { 0x03090ef5, /* 0x0004: queue_put */ 0x9800d898, 0x86f001d9, 0x0489b808, 0xf00c1bf4, 0x21f502f7, 0x00f802ec, /* 0x001c: queue_put_next */ 0xb60798c4, 0x8dbb0384, 0x0880b600, 0x80008e80, 0x90b6018f, 0x0f94f001, 0xf801d980, /* 0x0039: queue_get */ 0x0131f400, 0x9800d898, 0x89b801d9, 0x210bf404, 0xb60789c4, 0x9dbb0394, 0x0890b600, 0x98009e98, 0x80b6019f, 0x0f84f001, 0xf400d880, /* 0x0066: queue_get_done */ 0x00f80132, /* 0x0068: nv_rd32 */ 0x0728b7f1, 0xb906b4b6, 0xc9f002ec, 0x00bcd01f, /* 0x0078: nv_rd32_wait */ 0xc800bccf, 0x1bf41fcc, 0x06a7f0fa, 0x010321f5, 0xf840bfcf, /* 0x008d: nv_wr32 */ 0x28b7f100, 0x06b4b607, 0xb980bfd0, 0xc9f002ec, 0x1ec9f01f, /* 0x00a3: nv_wr32_wait */ 0xcf00bcd0, 0xccc800bc, 0xfa1bf41f, /* 0x00ae: watchdog_reset */ 0x87f100f8, 0x84b60430, 0x1ff9f006, 0xf8008fd0, /* 0x00bd: watchdog_clear */ 0x3087f100, 0x0684b604, 0xf80080d0, /* 0x00c9: wait_donez */ 0x3c87f100, 0x0684b608, 0x99f094bd, 0x0089d000, 0x081887f1, 0xd00684b6, /* 0x00e2: wait_donez_ne */ 0x87f1008a, 0x84b60400, 0x0088cf06, 0xf4888aff, 0x87f1f31b, 0x84b6085c, 0xf094bd06, 0x89d00099, /* 0x0103: wait_doneo */ 0xf100f800, 0xb6083c87, 0x94bd0684, 0xd00099f0, 0x87f10089, 0x84b60818, 0x008ad006, /* 0x011c: wait_doneo_e */ 0x040087f1, 0xcf0684b6, 0x8aff0088, 0xf30bf488, 0x085c87f1, 0xbd0684b6, 0x0099f094, 0xf80089d0, /* 0x013d: mmctx_size */ /* 0x013f: nv_mmctx_size_loop */ 0x9894bd00, 0x85b600e8, 0x0180b61a, 0xbb0284b6, 0xe0b60098, 0x04efb804, 0xb9eb1bf4, 0x00f8029f, /* 0x015c: mmctx_xfer */ 0x083c87f1, 0xbd0684b6, 0x0199f094, 0xf10089d0, 0xb6071087, 0x94bd0684, 0xf405bbfd, 0x8bd0090b, 0x0099f000, /* 0x0180: mmctx_base_disabled */ 0xf405eefd, 0x8ed00c0b, 0xc08fd080, /* 0x018f: mmctx_multi_disabled */ 0xb70199f0, 0xc8010080, 0xb4b600ab, 0x0cb9f010, 0xb601aec8, 0xbefd11e4, 0x008bd005, /* 0x01a8: mmctx_exec_loop */ /* 0x01a8: mmctx_wait_free */ 0xf0008ecf, 0x0bf41fe4, 0x00ce98fa, 0xd005e9fd, 0xc0b6c08e, 0x04cdb804, 0xc8e81bf4, 0x1bf402ab, /* 0x01c9: mmctx_fini_wait */ 0x008bcf18, 0xb01fb4f0, 0x1bf410b4, 0x02a7f0f7, 0xf4c921f4, /* 0x01de: mmctx_stop */ 0xabc81b0e, 0x10b4b600, 0xf00cb9f0, 0x8bd012b9, /* 0x01ed: mmctx_stop_wait */ 0x008bcf00, 0xf412bbc8, /* 0x01f6: mmctx_done */ 0x87f1fa1b, 0x84b6085c, 0xf094bd06, 0x89d00199, /* 0x0207: strand_wait */ 0xf900f800, 0x02a7f0a0, 0xfcc921f4, /* 0x0213: strand_pre */ 0xf100f8a0, 0xf04afc87, 0x97f00283, 0x0089d00c, 0x020721f5, /* 0x0226: strand_post */ 0x87f100f8, 0x83f04afc, 0x0d97f002, 0xf50089d0, 0xf8020721, /* 0x0239: strand_set */ 0xfca7f100, 0x02a3f04f, 0x0500aba2, 0xd00fc7f0, 0xc7f000ac, 0x00bcd00b, 0x020721f5, 0xf000aed0, 0xbcd00ac7, 0x0721f500, /* 0x0263: strand_ctx_init */ 0xf100f802, 0xb6083c87, 0x94bd0684, 0xd00399f0, 0x21f50089, 0xe7f00213, 0x3921f503, 0xfca7f102, 0x02a3f046, 0x0400aba0, 0xf040a0d0, 0xbcd001c7, 0x0721f500, 0x010c9202, 0xf000acd0, 0xbcd002c7, 0x0721f500, 0x2621f502, 0x8087f102, 0x0684b608, 0xb70089cf, 0x95220080, /* 0x02ba: ctx_init_strand_loop */ 0x8ed008fe, 0x408ed000, 0xb6808acf, 0xa0b606a5, 0x00eabb01, 0xb60480b6, 0x1bf40192, 0x08e4b6e8, 0xf1f2efbc, 0xb6085c87, 0x94bd0684, 0xd00399f0, 0x00f80089, /* 0x02ec: error */ 0xe7f1e0f9, 0xe4b60814, 0x00efd006, 0x0c1ce7f1, 0xf006e4b6, 0xefd001f7, 0xf8e0fc00, /* 0x0309: init */ 0xfe04bd00, 0x07fe0004, 0x0017f100, 0x0227f012, 0xf10012d0, 0xfe058517, 0x17f10010, 0x10d00400, 0x0437f1c0, 0x0634b604, 0x200327f1, 0xf10032d0, 0xd0200427, 0x27f10132, 0x32d0200b, 0x0c27f102, 0x0732d020, 0x0c2427f1, 0xb90624b6, 0x23d00003, 0x0427f100, 0x0023f087, 0xb70012d0, 0xf0010012, 0x12d00427, 0x1031f400, 0x9604e7f1, 0xf440e3f0, 0xf1c76821, 0x03018090, 0x801ff4f0, 0x17f0020f, 0x041fbb01, 0xf10112b6, 0xb6040c27, 0x21d00624, 0x4021d000, 0x010017f1, 0x98000e98, 0x21f5010f, 0x37f1013d, 0x34b60700, 0x08149506, 0xd00034d0, 0x30b74034, 0x1fbb1300, 0x02f5b600, 0xb6003fd0, 0x10b60815, 0x0814b601, 0xf5021fb9, 0xbb026321, 0x0398001f, 0x0047f102, 0x5043f020, /* 0x03e4: init_gpc */ 0x08044ea0, 0xf4021fb9, 0x4ea08d21, 0xf4bd010c, 0xa08d21f4, 0xf401044e, 0x4ea08d21, 0xf7f00100, 0x8d21f402, 0x08004ea0, /* 0x040c: init_gpc_wait */ 0xc86821f4, 0x0bf41fff, 0x044ea0fa, 0x6821f408, 0xb7001fbb, 0xb6800040, 0x1bf40132, 0x0027f1be, 0x0624b608, 0xb74021d0, 0xbd080020, 0x1f19f014, /* 0x043f: main */ 0xf40021d0, 0x28f40031, 0x10d7f000, 0xf43921f4, 0xe4b1f401, 0x1bf54001, 0x87f100d1, 0x84b6083c, 0xf094bd06, 0x89d00499, 0x0017f100, 0x0614b60b, 0xcf4012cf, 0x13c80011, 0x7e0bf41f, 0xf41f23c8, 0x20f95a0b, 0xf10212b9, 0xb6083c87, 0x94bd0684, 0xd00799f0, 0x32f40089, 0x0231f401, 0x07c721f5, 0x085c87f1, 0xbd0684b6, 0x0799f094, 0xfc0089d0, 0x3c87f120, 0x0684b608, 0x99f094bd, 0x0089d006, 0xf50131f4, 0xf107c721, 0xb6085c87, 0x94bd0684, 0xd00699f0, 0x0ef40089, /* 0x04d5: chsw_prev_no_next */ 0xb920f931, 0x32f40212, 0x0232f401, 0x07c721f5, 0x17f120fc, 0x14b60b00, 0x0012d006, /* 0x04f3: chsw_no_prev */ 0xc8130ef4, 0x0bf41f23, 0x0131f40d, 0xf50232f4, /* 0x0503: chsw_done */ 0xf107c721, 0xb60b0c17, 0x27f00614, 0x0012d001, 0x085c87f1, 0xbd0684b6, 0x0499f094, 0xf50089d0, /* 0x0523: main_not_ctx_switch */ 0xb0ff200e, 0x1bf401e4, 0x02f2b90d, 0x075b21f5, /* 0x0533: main_not_ctx_chan */ 0xb0420ef4, 0x1bf402e4, 0x3c87f12e, 0x0684b608, 0x99f094bd, 0x0089d007, 0xf40132f4, 0x21f50232, 0x87f107c7, 0x84b6085c, 0xf094bd06, 0x89d00799, 0x110ef400, /* 0x0564: main_not_ctx_save */ 0xf010ef94, 0x21f501f5, 0x0ef502ec, /* 0x0572: main_done */ 0x17f1fed1, 0x14b60820, 0xf024bd06, 0x12d01f29, 0xbe0ef500, /* 0x0585: ih */ 0xfe80f9fe, 0x80f90188, 0xa0f990f9, 0xd0f9b0f9, 0xf0f9e0f9, 0xc4800acf, 0x0bf404ab, 0x00b7f11d, 0x10d7f019, 0xcf40becf, 0x21f400bf, 0x00b0b704, 0x01e7f004, /* 0x05bb: ih_no_fifo */ 0xe400bed0, 0xf40100ab, 0xd7f00d0b, 0x01e7f110, 0x0421f440, /* 0x05cc: ih_no_ctxsw */ 0x0104b7f1, 0xabffb0bd, 0x0d0bf4b4, 0x0c1ca7f1, 0xd006a4b6, /* 0x05e2: ih_no_other */ 0x0ad000ab, 0xfcf0fc40, 0xfcd0fce0, 0xfca0fcb0, 0xfe80fc90, 0x80fc0088, 0xf80032f4, /* 0x05fd: ctx_4170s */ 0x70e7f101, 0x40e3f041, 0xf410f5f0, 0x00f88d21, /* 0x060c: ctx_4170w */ 0x4170e7f1, 0xf440e3f0, 0xf4f06821, 0xf31bf410, /* 0x061e: ctx_redswitch */ 0xe7f100f8, 0xe4b60614, 0x70f7f106, 0x00efd002, /* 0x062f: ctx_redswitch_delay */ 0xb608f7f0, 0x1bf401f2, 0x70f7f1fd, 0x00efd007, /* 0x063e: ctx_86c */ 0xe7f100f8, 0xe4b6086c, 0x00efd006, 0x8a14e7f1, 0xf440e3f0, 0xe7f18d21, 0xe3f0a86c, 0x8d21f441, /* 0x065e: ctx_load */ 0x87f100f8, 0x84b6083c, 0xf094bd06, 0x89d00599, 0x0ca7f000, 0xf1c921f4, 0xb60a2417, 0x10d00614, 0x0037f100, 0x0634b60b, 0xf14032d0, 0xb60a0c17, 0x47f00614, 0x0012d007, /* 0x0697: ctx_chan_wait_0 */ 0xcf4014d0, 0x44f04014, 0xfa1bf41f, 0xfe0032d0, 0x2af0000b, 0x0424b61f, 0xf10220b6, 0xb6083c87, 0x94bd0684, 0xd00899f0, 0x17f10089, 0x14b60a04, 0x0012d006, 0x0a2017f1, 0xf00614b6, 0x23f10227, 0x12d08000, 0x1017f000, 0x020027f1, 0xfa0223f0, 0x03f80512, 0x085c87f1, 0xbd0684b6, 0x0899f094, 0x980089d0, 0x14b68101, 0x80029818, 0xfd0825b6, 0x01800512, 0x3c87f116, 0x0684b608, 0x99f094bd, 0x0089d009, 0x0a0427f1, 0xd00624b6, 0x27f00021, 0x2017f101, 0x0614b60a, 0xf10012d0, 0xf0010017, 0x01fa0613, 0xf103f805, 0xb6085c87, 0x94bd0684, 0xd00999f0, 0x87f10089, 0x84b6085c, 0xf094bd06, 0x89d00599, /* 0x075b: ctx_chan */ 0xf500f800, 0xf0065e21, 0x21f40ca7, 0x1017f1c9, 0x0614b60a, 0xd00527f0, /* 0x0772: ctx_chan_wait */ 0x12cf0012, 0x0522fd00, 0xf8fa1bf4, /* 0x077d: ctx_mmio_exec */ 0x41039800, 0x0a0427f1, 0xd00624b6, 0x34bd0023, /* 0x078c: ctx_mmio_loop */ 0xf4ff34c4, 0x57f10f1b, 0x53f00200, 0x0535fa06, /* 0x079e: ctx_mmio_pull */ 0x4e9803f8, 0x814f9880, 0xb68d21f4, 0x12b60830, 0xdf1bf401, /* 0x07b0: ctx_mmio_done */ 0xd0160398, 0x00800023, 0x0017f140, 0x0613f001, 0xf80601fa, /* 0x07c7: ctx_xfer */ 0xf100f803, 0xb60c00f7, 0xe7f006f4, 0x80fed004, /* 0x07d4: ctx_xfer_idle */ 0xf100fecf, 0xf42000e4, 0x11f4f91b, 0x0d02f406, /* 0x07e4: ctx_xfer_pre */ 0xf510f7f0, 0xf4063e21, /* 0x07ee: ctx_xfer_pre_load */ 0xf7f01c11, 0xfd21f502, 0x0c21f505, 0x1e21f506, 0xf5f4bd06, 0xf505fd21, /* 0x0807: ctx_xfer_exec */ 0x98065e21, 0x27f11601, 0x24b60414, 0x0020d006, 0xa500e7f1, 0xb941e3f0, 0x21f4021f, 0x04e0b68d, 0xf001fcf0, 0x24b6022c, 0x05f2fd01, 0xf18d21f4, 0xf04afc17, 0x27f00213, 0x0012d00c, 0x020721f5, 0x47fc27f1, 0xd00223f0, 0x2cf00020, 0x0320b601, 0xf00012d0, 0xa5f001ac, 0x00b7f006, 0x98000c98, 0xe7f0010d, 0x5c21f500, 0x08a7f001, 0x010321f5, 0x020721f5, 0xf02201f4, 0x21f40ca7, 0x1017f1c9, 0x0614b60a, 0xd00527f0, /* 0x088e: ctx_xfer_post_save_wait */ 0x12cf0012, 0x0522fd00, 0xf4fa1bf4, /* 0x089a: ctx_xfer_post */ 0xf7f02e02, 0xfd21f502, 0xf5f4bd05, 0xf5063e21, 0xf5022621, 0xbd060c21, 0xfd21f5f4, 0x1011f405, 0xfd400198, 0x0bf40511, 0x7d21f507, /* 0x08c5: ctx_xfer_no_post_mmio */ /* 0x08c5: ctx_xfer_done */ 0x0000f807, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, };
drivers/gpu/drm/nouveau/core/engine/graph/fuc/macros.fuc +1 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ #define GF100 0xc0 #define GF117 0xd7 #define GK100 0xe0 #define GK110 0xf0 #define mmctx_data(r,c) .b32 (((c - 1) << 26) | r) #define queue_init .skip 72 // (2 * 4) + ((8 * 4) * 2) Loading