1b8bf04e1SBen Skeggs /* 2b8bf04e1SBen Skeggs * Copyright 2013 Red Hat Inc. 3b8bf04e1SBen Skeggs * 4b8bf04e1SBen Skeggs * Permission is hereby granted, free of charge, to any person obtaining a 5b8bf04e1SBen Skeggs * copy of this software and associated documentation files (the "Software"), 6b8bf04e1SBen Skeggs * to deal in the Software without restriction, including without limitation 7b8bf04e1SBen Skeggs * the rights to use, copy, modify, merge, publish, distribute, sublicense, 8b8bf04e1SBen Skeggs * and/or sell copies of the Software, and to permit persons to whom the 9b8bf04e1SBen Skeggs * Software is furnished to do so, subject to the following conditions: 10b8bf04e1SBen Skeggs * 11b8bf04e1SBen Skeggs * The above copyright notice and this permission notice shall be included in 12b8bf04e1SBen Skeggs * all copies or substantial portions of the Software. 13b8bf04e1SBen Skeggs * 14b8bf04e1SBen Skeggs * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15b8bf04e1SBen Skeggs * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16b8bf04e1SBen Skeggs * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 17b8bf04e1SBen Skeggs * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 18b8bf04e1SBen Skeggs * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 19b8bf04e1SBen Skeggs * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 20b8bf04e1SBen Skeggs * OTHER DEALINGS IN THE SOFTWARE. 21b8bf04e1SBen Skeggs * 22b8bf04e1SBen Skeggs * Authors: Ben Skeggs <bskeggs@redhat.com> 23b8bf04e1SBen Skeggs */ 24e3c71eb2SBen Skeggs #include "ctxgf100.h" 25b8bf04e1SBen Skeggs 26b8bf04e1SBen Skeggs /******************************************************************************* 27b8bf04e1SBen Skeggs * PGRAPH context register lists 28b8bf04e1SBen Skeggs ******************************************************************************/ 29b8bf04e1SBen Skeggs 30e3c71eb2SBen Skeggs static const struct gf100_gr_init 31b8bf04e1SBen Skeggs gk110b_grctx_init_sm_0[] = { 32b8bf04e1SBen Skeggs { 0x419e04, 1, 0x04, 0x00000000 }, 33b8bf04e1SBen Skeggs { 0x419e08, 1, 0x04, 0x0000001d }, 34b8bf04e1SBen Skeggs { 0x419e0c, 1, 0x04, 0x00000000 }, 35b8bf04e1SBen Skeggs { 0x419e10, 1, 0x04, 0x00001c02 }, 36b8bf04e1SBen Skeggs { 0x419e44, 1, 0x04, 0x0013eff2 }, 37b8bf04e1SBen Skeggs { 0x419e48, 1, 0x04, 0x00000000 }, 38b8bf04e1SBen Skeggs { 0x419e4c, 1, 0x04, 0x0000007f }, 39b8bf04e1SBen Skeggs { 0x419e50, 2, 0x04, 0x00000000 }, 40b8bf04e1SBen Skeggs { 0x419e58, 1, 0x04, 0x00000001 }, 41b8bf04e1SBen Skeggs { 0x419e5c, 3, 0x04, 0x00000000 }, 42b8bf04e1SBen Skeggs { 0x419e68, 1, 0x04, 0x00000002 }, 43b8bf04e1SBen Skeggs { 0x419e6c, 12, 0x04, 0x00000000 }, 44b8bf04e1SBen Skeggs { 0x419eac, 1, 0x04, 0x00001f8f }, 45b8bf04e1SBen Skeggs { 0x419eb0, 1, 0x04, 0x0db00d2f }, 46b8bf04e1SBen Skeggs { 0x419eb8, 1, 0x04, 0x00000000 }, 47b8bf04e1SBen Skeggs { 0x419ec8, 1, 0x04, 0x0001304f }, 48b8bf04e1SBen Skeggs { 0x419f30, 4, 0x04, 0x00000000 }, 49b8bf04e1SBen Skeggs { 0x419f40, 1, 0x04, 0x00000018 }, 50b8bf04e1SBen Skeggs { 0x419f44, 3, 0x04, 0x00000000 }, 51b8bf04e1SBen Skeggs { 0x419f58, 1, 0x04, 0x00000000 }, 52b8bf04e1SBen Skeggs { 0x419f70, 1, 0x04, 0x00006300 }, 53b8bf04e1SBen Skeggs { 0x419f78, 1, 0x04, 0x000000eb }, 54b8bf04e1SBen Skeggs { 0x419f7c, 1, 0x04, 0x00000404 }, 55b8bf04e1SBen Skeggs {} 56b8bf04e1SBen Skeggs }; 57b8bf04e1SBen Skeggs 58e3c71eb2SBen Skeggs static const struct gf100_gr_pack 59b8bf04e1SBen Skeggs gk110b_grctx_pack_tpc[] = { 60e3c71eb2SBen Skeggs { gf117_grctx_init_pe_0 }, 61e3c71eb2SBen Skeggs { gk110_grctx_init_tex_0 }, 62e3c71eb2SBen Skeggs { gk110_grctx_init_mpc_0 }, 63e3c71eb2SBen Skeggs { gk110_grctx_init_l1c_0 }, 64b8bf04e1SBen Skeggs { gk110b_grctx_init_sm_0 }, 65b8bf04e1SBen Skeggs {} 66b8bf04e1SBen Skeggs }; 67b8bf04e1SBen Skeggs 68b8bf04e1SBen Skeggs /******************************************************************************* 69b8bf04e1SBen Skeggs * PGRAPH context implementation 70b8bf04e1SBen Skeggs ******************************************************************************/ 71b8bf04e1SBen Skeggs 7227f3d6cfSBen Skeggs const struct gf100_grctx_func 7327f3d6cfSBen Skeggs gk110b_grctx = { 74201ed6f6SBen Skeggs .main = gf100_grctx_generate_main, 75e3c71eb2SBen Skeggs .unkn = gk104_grctx_generate_unkn, 76e3c71eb2SBen Skeggs .hub = gk110_grctx_pack_hub, 77191e3232SBen Skeggs .gpc_0 = gk110_grctx_pack_gpc_0, 78191e3232SBen Skeggs .gpc_1 = gk110_grctx_pack_gpc_1, 79e3c71eb2SBen Skeggs .zcull = gf100_grctx_pack_zcull, 80b8bf04e1SBen Skeggs .tpc = gk110b_grctx_pack_tpc, 81e3c71eb2SBen Skeggs .ppc = gk110_grctx_pack_ppc, 82e3c71eb2SBen Skeggs .icmd = gk110_grctx_pack_icmd, 83e3c71eb2SBen Skeggs .mthd = gk110_grctx_pack_mthd, 84e3c71eb2SBen Skeggs .bundle = gk104_grctx_generate_bundle, 85b8bf04e1SBen Skeggs .bundle_size = 0x3000, 86b8bf04e1SBen Skeggs .bundle_min_gpm_fifo_depth = 0x180, 87b8bf04e1SBen Skeggs .bundle_token_limit = 0x600, 88e3c71eb2SBen Skeggs .pagepool = gk104_grctx_generate_pagepool, 89b8bf04e1SBen Skeggs .pagepool_size = 0x8000, 9078a43c7eSBen Skeggs .attrib_cb_size = gf100_grctx_generate_attrib_cb_size, 9178a43c7eSBen Skeggs .attrib_cb = gf100_grctx_generate_attrib_cb, 92e3c71eb2SBen Skeggs .attrib = gf117_grctx_generate_attrib, 93b8bf04e1SBen Skeggs .attrib_nr_max = 0x324, 94b8bf04e1SBen Skeggs .attrib_nr = 0x218, 95b8bf04e1SBen Skeggs .alpha_nr_max = 0x7ff, 96b8bf04e1SBen Skeggs .alpha_nr = 0x648, 97ea4a2bb5SBen Skeggs .patch_ltc = gk104_grctx_generate_patch_ltc, 98fc740f54SBen Skeggs .sm_id = gf100_grctx_generate_sm_id, 99fc740f54SBen Skeggs .tpc_nr = gf100_grctx_generate_tpc_nr, 100ff209c23SBen Skeggs .rop_mapping = gf117_grctx_generate_rop_mapping, 10143952c6fSBen Skeggs .alpha_beta_tables = gk104_grctx_generate_alpha_beta_tables, 10260770fa2SBen Skeggs .dist_skip_table = gf117_grctx_generate_dist_skip_table, 10360c0264aSBen Skeggs .gpc_tpc_nr = gk104_grctx_generate_gpc_tpc_nr, 1045b54b5b9SBen Skeggs .r418800 = gk104_grctx_generate_r418800, 105ad45a92bSBen Skeggs .r419eb0 = gk110_grctx_generate_r419eb0, 106*1cb9e2efSKarol Herbst .r419f78 = gk110_grctx_generate_r419f78, 10727f3d6cfSBen Skeggs }; 108