diff options
6 files changed, 1042 insertions, 544 deletions
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc0.c b/drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc0.c index 31a84162632b..416dc9b16978 100644 --- a/drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc0.c +++ b/drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc0.c | |||
@@ -1325,6 +1325,7 @@ nvc0_grctx_generate_9097(struct nvc0_graph_priv *priv) | |||
1325 | nv_mthd(priv, 0x9097, 0x0214, 0x00000000); | 1325 | nv_mthd(priv, 0x9097, 0x0214, 0x00000000); |
1326 | 1326 | ||
1327 | switch (nv_device(priv)->chipset) { | 1327 | switch (nv_device(priv)->chipset) { |
1328 | case 0xc0: | ||
1328 | case 0xd9: | 1329 | case 0xd9: |
1329 | case 0xd7: | 1330 | case 0xd7: |
1330 | break; | 1331 | break; |
@@ -1471,6 +1472,7 @@ nvc0_grctx_generate_dispatch(struct nvc0_graph_priv *priv) | |||
1471 | case 0xd7: | 1472 | case 0xd7: |
1472 | nv_wr32(priv, 0x40402c, 0x00000000); | 1473 | nv_wr32(priv, 0x40402c, 0x00000000); |
1473 | break; | 1474 | break; |
1475 | case 0xc0: | ||
1474 | default: | 1476 | default: |
1475 | break; | 1477 | break; |
1476 | } | 1478 | } |
@@ -1490,6 +1492,7 @@ nvc0_grctx_generate_dispatch(struct nvc0_graph_priv *priv) | |||
1490 | nv_wr32(priv, 0x4040c4, 0x00000000); | 1492 | nv_wr32(priv, 0x4040c4, 0x00000000); |
1491 | nv_wr32(priv, 0x4040c8, 0xf0000087); | 1493 | nv_wr32(priv, 0x4040c8, 0xf0000087); |
1492 | switch (nv_device(priv)->chipset) { | 1494 | switch (nv_device(priv)->chipset) { |
1495 | case 0xc0: | ||
1493 | case 0xd9: | 1496 | case 0xd9: |
1494 | case 0xd7: | 1497 | case 0xd7: |
1495 | nv_wr32(priv, 0x4040d0, 0x00000000); | 1498 | nv_wr32(priv, 0x4040d0, 0x00000000); |
@@ -1516,6 +1519,7 @@ nvc0_grctx_generate_dispatch(struct nvc0_graph_priv *priv) | |||
1516 | case 0xd9: | 1519 | case 0xd9: |
1517 | case 0xd7: | 1520 | case 0xd7: |
1518 | break; | 1521 | break; |
1522 | case 0xc0: | ||
1519 | default: | 1523 | default: |
1520 | nv_wr32(priv, 0x404174, 0x00000000); | 1524 | nv_wr32(priv, 0x404174, 0x00000000); |
1521 | break; | 1525 | break; |
@@ -1645,20 +1649,24 @@ nvc0_grctx_generate_unk47xx(struct nvc0_graph_priv *priv) | |||
1645 | static void | 1649 | static void |
1646 | nvc0_grctx_generate_shaders(struct nvc0_graph_priv *priv) | 1650 | nvc0_grctx_generate_shaders(struct nvc0_graph_priv *priv) |
1647 | { | 1651 | { |
1648 | 1652 | switch (nv_device(priv)->chipset) { | |
1649 | if (nv_device(priv)->chipset >= 0xd0) { | 1653 | case 0xc1: |
1650 | nv_wr32(priv, 0x405800, 0x0f8000bf); | 1654 | nv_wr32(priv, 0x405800, 0x0f8000bf); |
1651 | nv_wr32(priv, 0x405830, 0x02180218); | 1655 | nv_wr32(priv, 0x405830, 0x02180218); |
1652 | nv_wr32(priv, 0x405834, 0x08000000); | 1656 | nv_wr32(priv, 0x405834, 0x00000000); |
1653 | } else | 1657 | break; |
1654 | if (nv_device(priv)->chipset == 0xc1) { | 1658 | case 0xd9: |
1659 | case 0xd7: | ||
1655 | nv_wr32(priv, 0x405800, 0x0f8000bf); | 1660 | nv_wr32(priv, 0x405800, 0x0f8000bf); |
1656 | nv_wr32(priv, 0x405830, 0x02180218); | 1661 | nv_wr32(priv, 0x405830, 0x02180218); |
1657 | nv_wr32(priv, 0x405834, 0x00000000); | 1662 | nv_wr32(priv, 0x405834, 0x08000000); |
1658 | } else { | 1663 | break; |
1664 | case 0xc0: | ||
1665 | default: | ||
1659 | nv_wr32(priv, 0x405800, 0x078000bf); | 1666 | nv_wr32(priv, 0x405800, 0x078000bf); |
1660 | nv_wr32(priv, 0x405830, 0x02180000); | 1667 | nv_wr32(priv, 0x405830, 0x02180000); |
1661 | nv_wr32(priv, 0x405834, 0x00000000); | 1668 | nv_wr32(priv, 0x405834, 0x00000000); |
1669 | break; | ||
1662 | } | 1670 | } |
1663 | nv_wr32(priv, 0x405838, 0x00000000); | 1671 | nv_wr32(priv, 0x405838, 0x00000000); |
1664 | nv_wr32(priv, 0x405854, 0x00000000); | 1672 | nv_wr32(priv, 0x405854, 0x00000000); |
@@ -1694,6 +1702,7 @@ nvc0_grctx_generate_unk64xx(struct nvc0_graph_priv *priv) | |||
1694 | case 0xd7: | 1702 | case 0xd7: |
1695 | nv_wr32(priv, 0x4064bc, 0x00000000); | 1703 | nv_wr32(priv, 0x4064bc, 0x00000000); |
1696 | break; | 1704 | break; |
1705 | case 0xc0: | ||
1697 | default: | 1706 | default: |
1698 | break; | 1707 | break; |
1699 | } | 1708 | } |
@@ -1704,6 +1713,7 @@ nvc0_grctx_generate_unk64xx(struct nvc0_graph_priv *priv) | |||
1704 | nv_wr32(priv, 0x4064c0, 0x80140078); | 1713 | nv_wr32(priv, 0x4064c0, 0x80140078); |
1705 | nv_wr32(priv, 0x4064c4, 0x0086ffff); | 1714 | nv_wr32(priv, 0x4064c4, 0x0086ffff); |
1706 | break; | 1715 | break; |
1716 | case 0xc0: | ||
1707 | default: | 1717 | default: |
1708 | break; | 1718 | break; |
1709 | } | 1719 | } |
@@ -1742,6 +1752,12 @@ nvc0_grctx_generate_rop(struct nvc0_graph_priv *priv) | |||
1742 | nv_wr32(priv, 0x408800, 0x02802a3c); | 1752 | nv_wr32(priv, 0x408800, 0x02802a3c); |
1743 | nv_wr32(priv, 0x408804, 0x00000040); | 1753 | nv_wr32(priv, 0x408804, 0x00000040); |
1744 | switch (nv_device(priv)->chipset) { | 1754 | switch (nv_device(priv)->chipset) { |
1755 | case 0xc0: | ||
1756 | nv_wr32(priv, 0x408808, 0x0003e00d); | ||
1757 | nv_wr32(priv, 0x408900, 0x3080b801); | ||
1758 | nv_wr32(priv, 0x408904, 0x02000001); | ||
1759 | nv_wr32(priv, 0x408908, 0x00c80929); | ||
1760 | break; | ||
1745 | case 0xc1: | 1761 | case 0xc1: |
1746 | nv_wr32(priv, 0x408808, 0x1003e005); | 1762 | nv_wr32(priv, 0x408808, 0x1003e005); |
1747 | nv_wr32(priv, 0x408900, 0x3080b801); | 1763 | nv_wr32(priv, 0x408900, 0x3080b801); |
@@ -1780,6 +1796,7 @@ nvc0_grctx_generate_gpc(struct nvc0_graph_priv *priv) | |||
1780 | case 0xd9: | 1796 | case 0xd9: |
1781 | case 0xd7: | 1797 | case 0xd7: |
1782 | break; | 1798 | break; |
1799 | case 0xc0: | ||
1783 | default: | 1800 | default: |
1784 | nv_wr32(priv, 0x418408, 0x00000000); | 1801 | nv_wr32(priv, 0x418408, 0x00000000); |
1785 | break; | 1802 | break; |
@@ -1791,6 +1808,7 @@ nvc0_grctx_generate_gpc(struct nvc0_graph_priv *priv) | |||
1791 | case 0xd7: | 1808 | case 0xd7: |
1792 | nv_wr32(priv, 0x418414, 0x02200fff); | 1809 | nv_wr32(priv, 0x418414, 0x02200fff); |
1793 | break; | 1810 | break; |
1811 | case 0xc0: | ||
1794 | default: | 1812 | default: |
1795 | nv_wr32(priv, 0x418414, 0x00200fff); | 1813 | nv_wr32(priv, 0x418414, 0x00200fff); |
1796 | break; | 1814 | break; |
@@ -1814,6 +1832,7 @@ nvc0_grctx_generate_gpc(struct nvc0_graph_priv *priv) | |||
1814 | case 0xd7: | 1832 | case 0xd7: |
1815 | nv_wr32(priv, 0x41870c, 0x00000000); | 1833 | nv_wr32(priv, 0x41870c, 0x00000000); |
1816 | break; | 1834 | break; |
1835 | case 0xc0: | ||
1817 | default: | 1836 | default: |
1818 | nv_wr32(priv, 0x41870c, 0x07c80000); | 1837 | nv_wr32(priv, 0x41870c, 0x07c80000); |
1819 | break; | 1838 | break; |
@@ -1824,6 +1843,7 @@ nvc0_grctx_generate_gpc(struct nvc0_graph_priv *priv) | |||
1824 | case 0xd7: | 1843 | case 0xd7: |
1825 | nv_wr32(priv, 0x418800, 0x7006860a); | 1844 | nv_wr32(priv, 0x418800, 0x7006860a); |
1826 | break; | 1845 | break; |
1846 | case 0xc0: | ||
1827 | default: | 1847 | default: |
1828 | nv_wr32(priv, 0x418800, 0x0006860a); | 1848 | nv_wr32(priv, 0x418800, 0x0006860a); |
1829 | break; | 1849 | break; |
@@ -1838,6 +1858,7 @@ nvc0_grctx_generate_gpc(struct nvc0_graph_priv *priv) | |||
1838 | case 0xd7: | 1858 | case 0xd7: |
1839 | nv_wr32(priv, 0x418830, 0x10000001); | 1859 | nv_wr32(priv, 0x418830, 0x10000001); |
1840 | break; | 1860 | break; |
1861 | case 0xc0: | ||
1841 | default: | 1862 | default: |
1842 | nv_wr32(priv, 0x418830, 0x00000001); | 1863 | nv_wr32(priv, 0x418830, 0x00000001); |
1843 | break; | 1864 | break; |
@@ -1857,6 +1878,7 @@ nvc0_grctx_generate_gpc(struct nvc0_graph_priv *priv) | |||
1857 | case 0xd7: | 1878 | case 0xd7: |
1858 | nv_wr32(priv, 0x4188fc, 0x20100008); | 1879 | nv_wr32(priv, 0x4188fc, 0x20100008); |
1859 | break; | 1880 | break; |
1881 | case 0xc0: | ||
1860 | default: | 1882 | default: |
1861 | nv_wr32(priv, 0x4188fc, 0x00100000); | 1883 | nv_wr32(priv, 0x4188fc, 0x00100000); |
1862 | break; | 1884 | break; |
@@ -1879,6 +1901,7 @@ nvc0_grctx_generate_gpc(struct nvc0_graph_priv *priv) | |||
1879 | case 0xd7: | 1901 | case 0xd7: |
1880 | nv_wr32(priv, 0x418b00, 0x00000006); | 1902 | nv_wr32(priv, 0x418b00, 0x00000006); |
1881 | break; | 1903 | break; |
1904 | case 0xc0: | ||
1882 | default: | 1905 | default: |
1883 | nv_wr32(priv, 0x418b00, 0x00000000); | 1906 | nv_wr32(priv, 0x418b00, 0x00000000); |
1884 | break; | 1907 | break; |
@@ -1905,6 +1928,7 @@ nvc0_grctx_generate_gpc(struct nvc0_graph_priv *priv) | |||
1905 | case 0xd7: | 1928 | case 0xd7: |
1906 | nv_wr32(priv, 0x418c6c, 0x00000001); | 1929 | nv_wr32(priv, 0x418c6c, 0x00000001); |
1907 | break; | 1930 | break; |
1931 | case 0xc0: | ||
1908 | default: | 1932 | default: |
1909 | break; | 1933 | break; |
1910 | } | 1934 | } |
@@ -1929,6 +1953,7 @@ nvc0_grctx_generate_tp(struct nvc0_graph_priv *priv) | |||
1929 | case 0xd7: | 1953 | case 0xd7: |
1930 | nv_wr32(priv, 0x419864, 0x00000129); | 1954 | nv_wr32(priv, 0x419864, 0x00000129); |
1931 | break; | 1955 | break; |
1956 | case 0xc0: | ||
1932 | default: | 1957 | default: |
1933 | nv_wr32(priv, 0x419864, 0x0000012a); | 1958 | nv_wr32(priv, 0x419864, 0x0000012a); |
1934 | break; | 1959 | break; |
@@ -1940,8 +1965,14 @@ nvc0_grctx_generate_tp(struct nvc0_graph_priv *priv) | |||
1940 | nv_wr32(priv, 0x419a0c, 0x00020000); | 1965 | nv_wr32(priv, 0x419a0c, 0x00020000); |
1941 | nv_wr32(priv, 0x419a10, 0x00000000); | 1966 | nv_wr32(priv, 0x419a10, 0x00000000); |
1942 | nv_wr32(priv, 0x419a14, 0x00000200); | 1967 | nv_wr32(priv, 0x419a14, 0x00000200); |
1943 | nv_wr32(priv, 0x419a1c, 0x00000000); | 1968 | switch (nv_device(priv)->chipset) { |
1944 | nv_wr32(priv, 0x419a20, 0x00000800); | 1969 | case 0xc0: |
1970 | break; | ||
1971 | default: | ||
1972 | nv_wr32(priv, 0x419a1c, 0x00000000); | ||
1973 | nv_wr32(priv, 0x419a20, 0x00000800); | ||
1974 | break; | ||
1975 | } | ||
1945 | switch (nv_device(priv)->chipset) { | 1976 | switch (nv_device(priv)->chipset) { |
1946 | case 0xc0: | 1977 | case 0xc0: |
1947 | case 0xc8: | 1978 | case 0xc8: |
@@ -1967,6 +1998,7 @@ nvc0_grctx_generate_tp(struct nvc0_graph_priv *priv) | |||
1967 | case 0xd7: | 1998 | case 0xd7: |
1968 | nv_wr32(priv, 0x419be0, 0x00400001); | 1999 | nv_wr32(priv, 0x419be0, 0x00400001); |
1969 | break; | 2000 | break; |
2001 | case 0xc0: | ||
1970 | default: | 2002 | default: |
1971 | nv_wr32(priv, 0x419be0, 0x00000001); | 2003 | nv_wr32(priv, 0x419be0, 0x00000001); |
1972 | break; | 2004 | break; |
@@ -1977,6 +2009,7 @@ nvc0_grctx_generate_tp(struct nvc0_graph_priv *priv) | |||
1977 | case 0xd7: | 2009 | case 0xd7: |
1978 | nv_wr32(priv, 0x419c00, 0x0000000a); | 2010 | nv_wr32(priv, 0x419c00, 0x0000000a); |
1979 | break; | 2011 | break; |
2012 | case 0xc0: | ||
1980 | default: | 2013 | default: |
1981 | nv_wr32(priv, 0x419c00, 0x00000002); | 2014 | nv_wr32(priv, 0x419c00, 0x00000002); |
1982 | break; | 2015 | break; |
@@ -1995,6 +2028,7 @@ nvc0_grctx_generate_tp(struct nvc0_graph_priv *priv) | |||
1995 | nv_wr32(priv, 0x419c28, 0x3cf3cf3c); | 2028 | nv_wr32(priv, 0x419c28, 0x3cf3cf3c); |
1996 | nv_wr32(priv, 0x419cb0, 0x00020048); | 2029 | nv_wr32(priv, 0x419cb0, 0x00020048); |
1997 | break; | 2030 | break; |
2031 | case 0xc0: | ||
1998 | default: | 2032 | default: |
1999 | nv_wr32(priv, 0x419cb0, 0x00060048); | 2033 | nv_wr32(priv, 0x419cb0, 0x00060048); |
2000 | break; | 2034 | break; |
@@ -2007,6 +2041,7 @@ nvc0_grctx_generate_tp(struct nvc0_graph_priv *priv) | |||
2007 | case 0xd7: | 2041 | case 0xd7: |
2008 | nv_wr32(priv, 0x419d20, 0x12180000); | 2042 | nv_wr32(priv, 0x419d20, 0x12180000); |
2009 | break; | 2043 | break; |
2044 | case 0xc0: | ||
2010 | default: | 2045 | default: |
2011 | nv_wr32(priv, 0x419d20, 0x02180000); | 2046 | nv_wr32(priv, 0x419d20, 0x02180000); |
2012 | break; | 2047 | break; |
@@ -2018,6 +2053,7 @@ nvc0_grctx_generate_tp(struct nvc0_graph_priv *priv) | |||
2018 | case 0xd7: | 2053 | case 0xd7: |
2019 | nv_wr32(priv, 0x419d44, 0x02180218); | 2054 | nv_wr32(priv, 0x419d44, 0x02180218); |
2020 | break; | 2055 | break; |
2056 | case 0xc0: | ||
2021 | default: | 2057 | default: |
2022 | break; | 2058 | break; |
2023 | } | 2059 | } |
@@ -2399,6 +2435,7 @@ nvc0_grctx_generate(struct nvc0_graph_priv *priv) | |||
2399 | for (i = 0x400; i <= 0x417; i++) | 2435 | for (i = 0x400; i <= 0x417; i++) |
2400 | nv_icmd(priv, i, 0x00000040); | 2436 | nv_icmd(priv, i, 0x00000040); |
2401 | break; | 2437 | break; |
2438 | case 0xc0: | ||
2402 | default: | 2439 | default: |
2403 | break; | 2440 | break; |
2404 | } | 2441 | } |
@@ -2416,6 +2453,8 @@ nvc0_grctx_generate(struct nvc0_graph_priv *priv) | |||
2416 | for (i = 0x440; i <= 0x457; i++) | 2453 | for (i = 0x440; i <= 0x457; i++) |
2417 | nv_icmd(priv, i, 0x0000c080); | 2454 | nv_icmd(priv, i, 0x0000c080); |
2418 | break; | 2455 | break; |
2456 | case 0xc0: | ||
2457 | break; | ||
2419 | default: | 2458 | default: |
2420 | break; | 2459 | break; |
2421 | } | 2460 | } |
@@ -2986,6 +3025,7 @@ nvc0_grctx_generate(struct nvc0_graph_priv *priv) | |||
2986 | case 0xd7: | 3025 | case 0xd7: |
2987 | nv_icmd(priv, 0x0000057b, 0x00000059); | 3026 | nv_icmd(priv, 0x0000057b, 0x00000059); |
2988 | break; | 3027 | break; |
3028 | case 0xc0: | ||
2989 | default: | 3029 | default: |
2990 | break; | 3030 | break; |
2991 | } | 3031 | } |
@@ -3094,6 +3134,7 @@ nvc0_grctx_generate(struct nvc0_graph_priv *priv) | |||
3094 | case 0xd7: | 3134 | case 0xd7: |
3095 | nv_icmd(priv, 0x0000097d, 0x00000020); | 3135 | nv_icmd(priv, 0x0000097d, 0x00000020); |
3096 | break; | 3136 | break; |
3137 | case 0xc0: | ||
3097 | default: | 3138 | default: |
3098 | break; | 3139 | break; |
3099 | } | 3140 | } |
@@ -3240,6 +3281,9 @@ nvc0_grctx_generate(struct nvc0_graph_priv *priv) | |||
3240 | nvc0_grctx_generate_90c0(priv); | 3281 | nvc0_grctx_generate_90c0(priv); |
3241 | 3282 | ||
3242 | switch (nv_device(priv)->chipset) { | 3283 | switch (nv_device(priv)->chipset) { |
3284 | case 0xc0: | ||
3285 | nv_mthd(priv, 0x902d, 0x3410, 0x00000000); | ||
3286 | break; | ||
3243 | case 0xd9: | 3287 | case 0xd9: |
3244 | case 0xd7: | 3288 | case 0xd7: |
3245 | nv_mthd(priv, 0x902d, 0x3410, 0x80002006); | 3289 | nv_mthd(priv, 0x902d, 0x3410, 0x80002006); |
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvc0.fuc b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvc0.fuc index a9f499c6729b..1034ff15b032 100644 --- a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvc0.fuc +++ b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvc0.fuc | |||
@@ -48,10 +48,10 @@ cmd_queue: queue_init | |||
48 | // chipset descriptions | 48 | // chipset descriptions |
49 | chipsets: | 49 | chipsets: |
50 | .b8 0xc0 0 0 0 | 50 | .b8 0xc0 0 0 0 |
51 | .b16 #nvc0_gpc_mmio_head | 51 | .b16 #nnvc0_gpc_mmio_head |
52 | .b16 #nvc0_gpc_mmio_tail | 52 | .b16 #nnvc0_gpc_mmio_tail |
53 | .b16 #nvc0_tpc_mmio_head | 53 | .b16 #nnvc0_tpc_mmio_head |
54 | .b16 #nvc0_tpc_mmio_tail | 54 | .b16 #nnvc0_tpc_mmio_tail |
55 | .b8 0xc1 0 0 0 | 55 | .b8 0xc1 0 0 0 |
56 | .b16 #nvc0_gpc_mmio_head | 56 | .b16 #nvc0_gpc_mmio_head |
57 | .b16 #nvc1_gpc_mmio_tail | 57 | .b16 #nvc1_gpc_mmio_tail |
@@ -124,6 +124,33 @@ nvc0_gpc_mmio_tail: | |||
124 | mmctx_data(0x000c6c, 1); | 124 | mmctx_data(0x000c6c, 1); |
125 | nvc1_gpc_mmio_tail: | 125 | nvc1_gpc_mmio_tail: |
126 | 126 | ||
127 | nnvc0_gpc_mmio_head: | ||
128 | mmctx_data(0x000380, 1) | ||
129 | mmctx_data(0x000400, 6) | ||
130 | mmctx_data(0x000450, 9) | ||
131 | mmctx_data(0x000600, 1) | ||
132 | mmctx_data(0x000684, 1) | ||
133 | mmctx_data(0x000700, 5) | ||
134 | mmctx_data(0x000800, 1) | ||
135 | mmctx_data(0x000808, 3) | ||
136 | mmctx_data(0x000828, 1) | ||
137 | mmctx_data(0x000830, 1) | ||
138 | mmctx_data(0x0008d8, 1) | ||
139 | mmctx_data(0x0008e0, 1) | ||
140 | mmctx_data(0x0008e8, 6) | ||
141 | mmctx_data(0x00091c, 1) | ||
142 | mmctx_data(0x000924, 3) | ||
143 | mmctx_data(0x000b00, 1) | ||
144 | mmctx_data(0x000b08, 6) | ||
145 | mmctx_data(0x000bb8, 1) | ||
146 | mmctx_data(0x000c08, 1) | ||
147 | mmctx_data(0x000c10, 8) | ||
148 | mmctx_data(0x000c80, 1) | ||
149 | mmctx_data(0x000c8c, 1) | ||
150 | mmctx_data(0x001000, 3) | ||
151 | mmctx_data(0x001014, 1) | ||
152 | nnvc0_gpc_mmio_tail: | ||
153 | |||
127 | nvd9_gpc_mmio_head: | 154 | nvd9_gpc_mmio_head: |
128 | mmctx_data(0x000380, 1) | 155 | mmctx_data(0x000380, 1) |
129 | mmctx_data(0x000400, 2) | 156 | mmctx_data(0x000400, 2) |
@@ -185,6 +212,28 @@ nvc3_tpc_mmio_tail: | |||
185 | mmctx_data(0x000544, 1) | 212 | mmctx_data(0x000544, 1) |
186 | nvc1_tpc_mmio_tail: | 213 | nvc1_tpc_mmio_tail: |
187 | 214 | ||
215 | nnvc0_tpc_mmio_head: | ||
216 | mmctx_data(0x000018, 1) | ||
217 | mmctx_data(0x00003c, 1) | ||
218 | mmctx_data(0x000048, 1) | ||
219 | mmctx_data(0x000064, 1) | ||
220 | mmctx_data(0x000088, 1) | ||
221 | mmctx_data(0x000200, 6) | ||
222 | mmctx_data(0x000300, 6) | ||
223 | mmctx_data(0x0003d0, 1) | ||
224 | mmctx_data(0x0003e0, 2) | ||
225 | mmctx_data(0x000400, 3) | ||
226 | mmctx_data(0x000420, 1) | ||
227 | mmctx_data(0x0004b0, 1) | ||
228 | mmctx_data(0x0004e8, 1) | ||
229 | mmctx_data(0x0004f4, 1) | ||
230 | mmctx_data(0x000520, 2) | ||
231 | mmctx_data(0x000604, 4) | ||
232 | mmctx_data(0x000644, 20) | ||
233 | mmctx_data(0x000698, 1) | ||
234 | mmctx_data(0x000750, 2) | ||
235 | nnvc0_tpc_mmio_tail: | ||
236 | |||
188 | nvd9_tpc_mmio_head: | 237 | nvd9_tpc_mmio_head: |
189 | mmctx_data(0x000018, 1) | 238 | mmctx_data(0x000018, 1) |
190 | mmctx_data(0x00003c, 1) | 239 | mmctx_data(0x00003c, 1) |
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvc0.fuc.h b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvc0.fuc.h index b8c9fc3b32bd..427ddf06316c 100644 --- a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvc0.fuc.h +++ b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvc0.fuc.h | |||
@@ -34,32 +34,32 @@ uint32_t nvc0_grgpc_data[] = { | |||
34 | 0x00000000, | 34 | 0x00000000, |
35 | /* 0x0064: chipsets */ | 35 | /* 0x0064: chipsets */ |
36 | 0x000000c0, | 36 | 0x000000c0, |
37 | 0x013400d4, | 37 | 0x01980138, |
38 | 0x01f001a0, | 38 | 0x02b00264, |
39 | 0x000000c1, | 39 | 0x000000c1, |
40 | 0x013800d4, | 40 | 0x013800d4, |
41 | 0x020401a0, | 41 | 0x02640200, |
42 | 0x000000c3, | 42 | 0x000000c3, |
43 | 0x013400d4, | 43 | 0x013400d4, |
44 | 0x020001a0, | 44 | 0x02600200, |
45 | 0x000000c4, | 45 | 0x000000c4, |
46 | 0x013400d4, | 46 | 0x013400d4, |
47 | 0x020001a0, | 47 | 0x02600200, |
48 | 0x000000c8, | 48 | 0x000000c8, |
49 | 0x013400d4, | 49 | 0x013400d4, |
50 | 0x01f001a0, | 50 | 0x02500200, |
51 | 0x000000ce, | 51 | 0x000000ce, |
52 | 0x013400d4, | 52 | 0x013400d4, |
53 | 0x020001a0, | 53 | 0x02600200, |
54 | 0x000000cf, | 54 | 0x000000cf, |
55 | 0x013400d4, | 55 | 0x013400d4, |
56 | 0x01fc01a0, | 56 | 0x025c0200, |
57 | 0x000000d9, | 57 | 0x000000d9, |
58 | 0x01a00138, | 58 | 0x02000198, |
59 | 0x02600204, | 59 | 0x030c02b0, |
60 | 0x000000d7, | 60 | 0x000000d7, |
61 | 0x01a00138, | 61 | 0x02000198, |
62 | 0x02600204, | 62 | 0x030c02b0, |
63 | 0x00000000, | 63 | 0x00000000, |
64 | /* 0x00d4: nvc0_gpc_mmio_head */ | 64 | /* 0x00d4: nvc0_gpc_mmio_head */ |
65 | 0x00000380, | 65 | 0x00000380, |
@@ -89,7 +89,33 @@ uint32_t nvc0_grgpc_data[] = { | |||
89 | /* 0x0134: nvc0_gpc_mmio_tail */ | 89 | /* 0x0134: nvc0_gpc_mmio_tail */ |
90 | 0x00000c6c, | 90 | 0x00000c6c, |
91 | /* 0x0138: nvc1_gpc_mmio_tail */ | 91 | /* 0x0138: nvc1_gpc_mmio_tail */ |
92 | /* 0x0138: nvd9_gpc_mmio_head */ | 92 | /* 0x0138: nnvc0_gpc_mmio_head */ |
93 | 0x00000380, | ||
94 | 0x14000400, | ||
95 | 0x20000450, | ||
96 | 0x00000600, | ||
97 | 0x00000684, | ||
98 | 0x10000700, | ||
99 | 0x00000800, | ||
100 | 0x08000808, | ||
101 | 0x00000828, | ||
102 | 0x00000830, | ||
103 | 0x000008d8, | ||
104 | 0x000008e0, | ||
105 | 0x140008e8, | ||
106 | 0x0000091c, | ||
107 | 0x08000924, | ||
108 | 0x00000b00, | ||
109 | 0x14000b08, | ||
110 | 0x00000bb8, | ||
111 | 0x00000c08, | ||
112 | 0x1c000c10, | ||
113 | 0x00000c80, | ||
114 | 0x00000c8c, | ||
115 | 0x08001000, | ||
116 | 0x00001014, | ||
117 | /* 0x0198: nnvc0_gpc_mmio_tail */ | ||
118 | /* 0x0198: nvd9_gpc_mmio_head */ | ||
93 | 0x00000380, | 119 | 0x00000380, |
94 | 0x04000400, | 120 | 0x04000400, |
95 | 0x0800040c, | 121 | 0x0800040c, |
@@ -116,8 +142,8 @@ uint32_t nvc0_grgpc_data[] = { | |||
116 | 0x00000c8c, | 142 | 0x00000c8c, |
117 | 0x08001000, | 143 | 0x08001000, |
118 | 0x00001014, | 144 | 0x00001014, |
119 | /* 0x01a0: nvd9_gpc_mmio_tail */ | 145 | /* 0x0200: nvd9_gpc_mmio_tail */ |
120 | /* 0x01a0: nvc0_tpc_mmio_head */ | 146 | /* 0x0200: nvc0_tpc_mmio_head */ |
121 | 0x00000018, | 147 | 0x00000018, |
122 | 0x0000003c, | 148 | 0x0000003c, |
123 | 0x00000048, | 149 | 0x00000048, |
@@ -138,16 +164,37 @@ uint32_t nvc0_grgpc_data[] = { | |||
138 | 0x4c000644, | 164 | 0x4c000644, |
139 | 0x00000698, | 165 | 0x00000698, |
140 | 0x04000750, | 166 | 0x04000750, |
141 | /* 0x01f0: nvc0_tpc_mmio_tail */ | 167 | /* 0x0250: nvc0_tpc_mmio_tail */ |
142 | 0x00000758, | 168 | 0x00000758, |
143 | 0x000002c4, | 169 | 0x000002c4, |
144 | 0x000006e0, | 170 | 0x000006e0, |
145 | /* 0x01fc: nvcf_tpc_mmio_tail */ | 171 | /* 0x025c: nvcf_tpc_mmio_tail */ |
146 | 0x000004bc, | 172 | 0x000004bc, |
147 | /* 0x0200: nvc3_tpc_mmio_tail */ | 173 | /* 0x0260: nvc3_tpc_mmio_tail */ |
148 | 0x00000544, | 174 | 0x00000544, |
149 | /* 0x0204: nvc1_tpc_mmio_tail */ | 175 | /* 0x0264: nvc1_tpc_mmio_tail */ |
150 | /* 0x0204: nvd9_tpc_mmio_head */ | 176 | /* 0x0264: nnvc0_tpc_mmio_head */ |
177 | 0x00000018, | ||
178 | 0x0000003c, | ||
179 | 0x00000048, | ||
180 | 0x00000064, | ||
181 | 0x00000088, | ||
182 | 0x14000200, | ||
183 | 0x14000300, | ||
184 | 0x000003d0, | ||
185 | 0x040003e0, | ||
186 | 0x08000400, | ||
187 | 0x00000420, | ||
188 | 0x000004b0, | ||
189 | 0x000004e8, | ||
190 | 0x000004f4, | ||
191 | 0x04000520, | ||
192 | 0x0c000604, | ||
193 | 0x4c000644, | ||
194 | 0x00000698, | ||
195 | 0x04000750, | ||
196 | /* 0x02b0: nnvc0_tpc_mmio_tail */ | ||
197 | /* 0x02b0: nvd9_tpc_mmio_head */ | ||
151 | 0x00000018, | 198 | 0x00000018, |
152 | 0x0000003c, | 199 | 0x0000003c, |
153 | 0x00000048, | 200 | 0x00000048, |
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvc0.fuc b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvc0.fuc index 56735d0654bf..9f0768e2719d 100644 --- a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvc0.fuc +++ b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvc0.fuc | |||
@@ -37,10 +37,19 @@ hub_mmio_list_tail: .b32 0 | |||
37 | 37 | ||
38 | ctx_current: .b32 0 | 38 | ctx_current: .b32 0 |
39 | 39 | ||
40 | .align 256 | ||
41 | chan_data: | ||
42 | chan_mmio_count: .b32 0 | ||
43 | chan_mmio_address: .b32 0 | ||
44 | |||
45 | .align 256 | ||
46 | xfer_data: .b32 0 | ||
47 | |||
48 | .align 256 | ||
40 | chipsets: | 49 | chipsets: |
41 | .b8 0xc0 0 0 0 | 50 | .b8 0xc0 0 0 0 |
42 | .b16 #nvc0_hub_mmio_head | 51 | .b16 #nnvc0_hub_mmio_head |
43 | .b16 #nvc0_hub_mmio_tail | 52 | .b16 #nnvc0_hub_mmio_tail |
44 | .b8 0xc1 0 0 0 | 53 | .b8 0xc1 0 0 0 |
45 | .b16 #nvc0_hub_mmio_head | 54 | .b16 #nvc0_hub_mmio_head |
46 | .b16 #nvc1_hub_mmio_tail | 55 | .b16 #nvc1_hub_mmio_tail |
@@ -111,6 +120,48 @@ nvc0_hub_mmio_tail: | |||
111 | mmctx_data(0x4064c0, 2) | 120 | mmctx_data(0x4064c0, 2) |
112 | nvc1_hub_mmio_tail: | 121 | nvc1_hub_mmio_tail: |
113 | 122 | ||
123 | nnvc0_hub_mmio_head: | ||
124 | mmctx_data(0x17e91c, 2) | ||
125 | mmctx_data(0x400204, 2) | ||
126 | mmctx_data(0x404004, 11) | ||
127 | mmctx_data(0x404044, 1) | ||
128 | mmctx_data(0x404094, 14) | ||
129 | mmctx_data(0x4040d0, 7) | ||
130 | mmctx_data(0x4040f8, 1) | ||
131 | mmctx_data(0x404130, 3) | ||
132 | mmctx_data(0x404150, 3) | ||
133 | mmctx_data(0x404164, 2) | ||
134 | mmctx_data(0x404174, 3) | ||
135 | mmctx_data(0x404200, 8) | ||
136 | mmctx_data(0x404404, 14) | ||
137 | mmctx_data(0x404460, 4) | ||
138 | mmctx_data(0x404480, 1) | ||
139 | mmctx_data(0x404498, 1) | ||
140 | mmctx_data(0x404604, 4) | ||
141 | mmctx_data(0x404618, 32) | ||
142 | mmctx_data(0x404698, 21) | ||
143 | mmctx_data(0x4046f0, 2) | ||
144 | mmctx_data(0x404700, 22) | ||
145 | mmctx_data(0x405800, 1) | ||
146 | mmctx_data(0x405830, 3) | ||
147 | mmctx_data(0x405854, 1) | ||
148 | mmctx_data(0x405870, 4) | ||
149 | mmctx_data(0x405a00, 2) | ||
150 | mmctx_data(0x405a18, 1) | ||
151 | mmctx_data(0x406020, 1) | ||
152 | mmctx_data(0x406028, 4) | ||
153 | mmctx_data(0x4064a8, 2) | ||
154 | mmctx_data(0x4064b4, 2) | ||
155 | mmctx_data(0x407804, 1) | ||
156 | mmctx_data(0x40780c, 6) | ||
157 | mmctx_data(0x4078bc, 1) | ||
158 | mmctx_data(0x408000, 7) | ||
159 | mmctx_data(0x408064, 1) | ||
160 | mmctx_data(0x408800, 3) | ||
161 | mmctx_data(0x408900, 3) | ||
162 | mmctx_data(0x408980, 1) | ||
163 | nnvc0_hub_mmio_tail: | ||
164 | |||
114 | nvd9_hub_mmio_head: | 165 | nvd9_hub_mmio_head: |
115 | mmctx_data(0x17e91c, 2) | 166 | mmctx_data(0x17e91c, 2) |
116 | mmctx_data(0x400204, 2) | 167 | mmctx_data(0x400204, 2) |
@@ -153,14 +204,6 @@ mmctx_data(0x408900, 3) | |||
153 | mmctx_data(0x408980, 1) | 204 | mmctx_data(0x408980, 1) |
154 | nvd9_hub_mmio_tail: | 205 | nvd9_hub_mmio_tail: |
155 | 206 | ||
156 | .align 256 | ||
157 | chan_data: | ||
158 | chan_mmio_count: .b32 0 | ||
159 | chan_mmio_address: .b32 0 | ||
160 | |||
161 | .align 256 | ||
162 | xfer_data: .b32 0 | ||
163 | |||
164 | .section #nvc0_grhub_code | 207 | .section #nvc0_grhub_code |
165 | bra #init | 208 | bra #init |
166 | define(`include_code') | 209 | define(`include_code') |
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvc0.fuc.h b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvc0.fuc.h index eb59892bc488..fc5f9727ae76 100644 --- a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvc0.fuc.h +++ b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvc0.fuc.h | |||
@@ -28,27 +28,200 @@ uint32_t nvc0_grhub_data[] = { | |||
28 | 0x00000000, | 28 | 0x00000000, |
29 | /* 0x0058: ctx_current */ | 29 | /* 0x0058: ctx_current */ |
30 | 0x00000000, | 30 | 0x00000000, |
31 | /* 0x005c: chipsets */ | 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: chipsets */ | ||
32 | 0x000000c0, | 205 | 0x000000c0, |
33 | 0x014400a8, | 206 | 0x048803ec, |
34 | 0x000000c1, | 207 | 0x000000c1, |
35 | 0x014800a8, | 208 | 0x03ec034c, |
36 | 0x000000c3, | 209 | 0x000000c3, |
37 | 0x014400a8, | 210 | 0x03e8034c, |
38 | 0x000000c4, | 211 | 0x000000c4, |
39 | 0x014400a8, | 212 | 0x03e8034c, |
40 | 0x000000c8, | 213 | 0x000000c8, |
41 | 0x014400a8, | 214 | 0x03e8034c, |
42 | 0x000000ce, | 215 | 0x000000ce, |
43 | 0x014400a8, | 216 | 0x03e8034c, |
44 | 0x000000cf, | 217 | 0x000000cf, |
45 | 0x014400a8, | 218 | 0x03e8034c, |
46 | 0x000000d9, | 219 | 0x000000d9, |
47 | 0x01e40148, | 220 | 0x05240488, |
48 | 0x000000d7, | 221 | 0x000000d7, |
49 | 0x01e40148, | 222 | 0x05240488, |
50 | 0x00000000, | 223 | 0x00000000, |
51 | /* 0x00a8: nvc0_hub_mmio_head */ | 224 | /* 0x034c: nvc0_hub_mmio_head */ |
52 | 0x0417e91c, | 225 | 0x0417e91c, |
53 | 0x04400204, | 226 | 0x04400204, |
54 | 0x28404004, | 227 | 0x28404004, |
@@ -88,10 +261,51 @@ uint32_t nvc0_grhub_data[] = { | |||
88 | 0x08408800, | 261 | 0x08408800, |
89 | 0x0c408900, | 262 | 0x0c408900, |
90 | 0x00408980, | 263 | 0x00408980, |
91 | /* 0x0144: nvc0_hub_mmio_tail */ | 264 | /* 0x03e8: nvc0_hub_mmio_tail */ |
92 | 0x044064c0, | 265 | 0x044064c0, |
93 | /* 0x0148: nvc1_hub_mmio_tail */ | 266 | /* 0x03ec: nvc1_hub_mmio_tail */ |
94 | /* 0x0148: nvd9_hub_mmio_head */ | 267 | /* 0x03ec: nnvc0_hub_mmio_head */ |
268 | 0x0417e91c, | ||
269 | 0x04400204, | ||
270 | 0x28404004, | ||
271 | 0x00404044, | ||
272 | 0x34404094, | ||
273 | 0x184040d0, | ||
274 | 0x004040f8, | ||
275 | 0x08404130, | ||
276 | 0x08404150, | ||
277 | 0x04404164, | ||
278 | 0x08404174, | ||
279 | 0x1c404200, | ||
280 | 0x34404404, | ||
281 | 0x0c404460, | ||
282 | 0x00404480, | ||
283 | 0x00404498, | ||
284 | 0x0c404604, | ||
285 | 0x7c404618, | ||
286 | 0x50404698, | ||
287 | 0x044046f0, | ||
288 | 0x54404700, | ||
289 | 0x00405800, | ||
290 | 0x08405830, | ||
291 | 0x00405854, | ||
292 | 0x0c405870, | ||
293 | 0x04405a00, | ||
294 | 0x00405a18, | ||
295 | 0x00406020, | ||
296 | 0x0c406028, | ||
297 | 0x044064a8, | ||
298 | 0x044064b4, | ||
299 | 0x00407804, | ||
300 | 0x1440780c, | ||
301 | 0x004078bc, | ||
302 | 0x18408000, | ||
303 | 0x00408064, | ||
304 | 0x08408800, | ||
305 | 0x08408900, | ||
306 | 0x00408980, | ||
307 | /* 0x0488: nnvc0_hub_mmio_tail */ | ||
308 | /* 0x0488: nvd9_hub_mmio_head */ | ||
95 | 0x0417e91c, | 309 | 0x0417e91c, |
96 | 0x04400204, | 310 | 0x04400204, |
97 | 0x24404004, | 311 | 0x24404004, |
@@ -131,83 +345,6 @@ uint32_t nvc0_grhub_data[] = { | |||
131 | 0x08408800, | 345 | 0x08408800, |
132 | 0x08408900, | 346 | 0x08408900, |
133 | 0x00408980, | 347 | 0x00408980, |
134 | /* 0x01e4: nvd9_hub_mmio_tail */ | ||
135 | 0x00000000, | ||
136 | 0x00000000, | ||
137 | 0x00000000, | ||
138 | 0x00000000, | ||
139 | 0x00000000, | ||
140 | 0x00000000, | ||
141 | 0x00000000, | ||
142 | /* 0x0200: chan_data */ | ||
143 | /* 0x0200: chan_mmio_count */ | ||
144 | 0x00000000, | ||
145 | /* 0x0204: chan_mmio_address */ | ||
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 | 0x00000000, | ||
205 | 0x00000000, | ||
206 | 0x00000000, | ||
207 | 0x00000000, | ||
208 | 0x00000000, | ||
209 | /* 0x0300: xfer_data */ | ||
210 | 0x00000000, | ||
211 | }; | 348 | }; |
212 | 349 | ||
213 | uint32_t nvc0_grhub_code[] = { | 350 | uint32_t nvc0_grhub_code[] = { |
@@ -443,7 +580,7 @@ uint32_t nvc0_grhub_code[] = { | |||
443 | 0x0017f100, | 580 | 0x0017f100, |
444 | 0x0227f012, | 581 | 0x0227f012, |
445 | 0xf10012d0, | 582 | 0xf10012d0, |
446 | 0xfe05b917, | 583 | 0xfe05ba17, |
447 | 0x17f10010, | 584 | 0x17f10010, |
448 | 0x10d00400, | 585 | 0x10d00400, |
449 | 0x0437f1c0, | 586 | 0x0437f1c0, |
@@ -477,403 +614,403 @@ uint32_t nvc0_grhub_code[] = { | |||
477 | 0x4021d000, | 614 | 0x4021d000, |
478 | 0x080027f1, | 615 | 0x080027f1, |
479 | 0xcf0624b6, | 616 | 0xcf0624b6, |
480 | 0xf7f00022, | 617 | 0xf7f10022, |
481 | /* 0x03a9: init_find_chipset */ | 618 | /* 0x03aa: init_find_chipset */ |
482 | 0x08f0b654, | 619 | 0xf0b602f8, |
483 | 0xb800f398, | 620 | 0x00f39808, |
484 | 0x0bf40432, | 621 | 0xf40432b8, |
485 | 0x0034b00b, | 622 | 0x34b00b0b, |
486 | 0xf8f11bf4, | 623 | 0xf11bf400, |
487 | /* 0x03bd: init_context */ | 624 | /* 0x03be: init_context */ |
488 | 0x0017f100, | 625 | 0x17f100f8, |
489 | 0x02fe5801, | 626 | 0xfe580100, |
490 | 0xf003ff58, | 627 | 0x03ff5802, |
491 | 0x0e8000e3, | 628 | 0x8000e3f0, |
492 | 0x150f8014, | 629 | 0x0f80140e, |
493 | 0x013d21f5, | 630 | 0x3d21f515, |
494 | 0x070037f1, | 631 | 0x0037f101, |
495 | 0x950634b6, | 632 | 0x0634b607, |
496 | 0x34d00814, | 633 | 0xd0081495, |
497 | 0x4034d000, | 634 | 0x34d00034, |
498 | 0x130030b7, | 635 | 0x0030b740, |
499 | 0xb6001fbb, | 636 | 0x001fbb13, |
500 | 0x3fd002f5, | 637 | 0xd002f5b6, |
501 | 0x0815b600, | 638 | 0x15b6003f, |
502 | 0xb60110b6, | 639 | 0x0110b608, |
503 | 0x1fb90814, | 640 | 0xb90814b6, |
504 | 0x6321f502, | 641 | 0x21f5021f, |
505 | 0x001fbb02, | 642 | 0x1fbb0263, |
506 | 0xf1000398, | 643 | 0x00039800, |
507 | 0xf0200047, | 644 | 0x200047f1, |
508 | /* 0x040e: init_gpc */ | 645 | /* 0x040f: init_gpc */ |
509 | 0x4ea05043, | 646 | 0xa05043f0, |
510 | 0x1fb90804, | 647 | 0xb908044e, |
511 | 0x8d21f402, | 648 | 0x21f4021f, |
512 | 0x08004ea0, | 649 | 0x004ea08d, |
513 | 0xf4022fb9, | 650 | 0x022fb908, |
514 | 0x4ea08d21, | ||
515 | 0xf4bd010c, | ||
516 | 0xa08d21f4, | 651 | 0xa08d21f4, |
517 | 0xf401044e, | 652 | 0xbd010c4e, |
518 | 0x4ea08d21, | 653 | 0x8d21f4f4, |
519 | 0xf7f00100, | 654 | 0x01044ea0, |
520 | 0x8d21f402, | 655 | 0xa08d21f4, |
521 | 0x08004ea0, | 656 | 0xf001004e, |
522 | /* 0x0440: init_gpc_wait */ | 657 | 0x21f402f7, |
523 | 0xc86821f4, | 658 | 0x004ea08d, |
524 | 0x0bf41fff, | 659 | /* 0x0441: init_gpc_wait */ |
525 | 0x044ea0fa, | ||
526 | 0x6821f408, | 660 | 0x6821f408, |
527 | 0xb7001fbb, | 661 | 0xf41fffc8, |
528 | 0xb6800040, | 662 | 0x4ea0fa0b, |
529 | 0x1bf40132, | 663 | 0x21f40804, |
530 | 0x0027f1b4, | 664 | 0x001fbb68, |
531 | 0x0624b608, | 665 | 0x800040b7, |
532 | 0xb74021d0, | 666 | 0xf40132b6, |
533 | 0xbd080020, | 667 | 0x27f1b41b, |
534 | 0x1f19f014, | 668 | 0x24b60800, |
535 | /* 0x0473: main */ | 669 | 0x4021d006, |
536 | 0xf40021d0, | 670 | 0x080020b7, |
537 | 0x28f40031, | 671 | 0x19f014bd, |
538 | 0x08d7f000, | 672 | 0x0021d01f, |
539 | 0xf43921f4, | 673 | /* 0x0474: main */ |
540 | 0xe4b1f401, | 674 | 0xf40031f4, |
541 | 0x1bf54001, | 675 | 0xd7f00028, |
542 | 0x87f100d1, | 676 | 0x3921f408, |
543 | 0x84b6083c, | 677 | 0xb1f401f4, |
544 | 0xf094bd06, | 678 | 0xf54001e4, |
545 | 0x89d00499, | 679 | 0xf100d11b, |
546 | 0x0017f100, | ||
547 | 0x0614b60b, | ||
548 | 0xcf4012cf, | ||
549 | 0x13c80011, | ||
550 | 0x7e0bf41f, | ||
551 | 0xf41f23c8, | ||
552 | 0x20f95a0b, | ||
553 | 0xf10212b9, | ||
554 | 0xb6083c87, | 680 | 0xb6083c87, |
555 | 0x94bd0684, | 681 | 0x94bd0684, |
556 | 0xd00799f0, | 682 | 0xd00499f0, |
557 | 0x32f40089, | 683 | 0x17f10089, |
558 | 0x0231f401, | 684 | 0x14b60b00, |
559 | 0x082921f5, | 685 | 0x4012cf06, |
560 | 0x085c87f1, | 686 | 0xc80011cf, |
687 | 0x0bf41f13, | ||
688 | 0x1f23c87e, | ||
689 | 0xf95a0bf4, | ||
690 | 0x0212b920, | ||
691 | 0x083c87f1, | ||
561 | 0xbd0684b6, | 692 | 0xbd0684b6, |
562 | 0x0799f094, | 693 | 0x0799f094, |
563 | 0xfc0089d0, | 694 | 0xf40089d0, |
564 | 0x3c87f120, | 695 | 0x31f40132, |
696 | 0x2a21f502, | ||
697 | 0x5c87f108, | ||
565 | 0x0684b608, | 698 | 0x0684b608, |
566 | 0x99f094bd, | 699 | 0x99f094bd, |
567 | 0x0089d006, | 700 | 0x0089d007, |
568 | 0xf50131f4, | 701 | 0x87f120fc, |
569 | 0xf1082921, | 702 | 0x84b6083c, |
570 | 0xb6085c87, | 703 | 0xf094bd06, |
571 | 0x94bd0684, | 704 | 0x89d00699, |
572 | 0xd00699f0, | 705 | 0x0131f400, |
573 | 0x0ef40089, | 706 | 0x082a21f5, |
574 | /* 0x0509: chsw_prev_no_next */ | ||
575 | 0xb920f931, | ||
576 | 0x32f40212, | ||
577 | 0x0232f401, | ||
578 | 0x082921f5, | ||
579 | 0x17f120fc, | ||
580 | 0x14b60b00, | ||
581 | 0x0012d006, | ||
582 | /* 0x0527: chsw_no_prev */ | ||
583 | 0xc8130ef4, | ||
584 | 0x0bf41f23, | ||
585 | 0x0131f40d, | ||
586 | 0xf50232f4, | ||
587 | /* 0x0537: chsw_done */ | ||
588 | 0xf1082921, | ||
589 | 0xb60b0c17, | ||
590 | 0x27f00614, | ||
591 | 0x0012d001, | ||
592 | 0x085c87f1, | 707 | 0x085c87f1, |
593 | 0xbd0684b6, | 708 | 0xbd0684b6, |
594 | 0x0499f094, | 709 | 0x0699f094, |
595 | 0xf50089d0, | 710 | 0xf40089d0, |
596 | /* 0x0557: main_not_ctx_switch */ | 711 | /* 0x050a: chsw_prev_no_next */ |
597 | 0xb0ff200e, | 712 | 0x20f9310e, |
598 | 0x1bf401e4, | 713 | 0xf40212b9, |
599 | 0x02f2b90d, | 714 | 0x32f40132, |
600 | 0x07b521f5, | 715 | 0x2a21f502, |
601 | /* 0x0567: main_not_ctx_chan */ | 716 | 0xf120fc08, |
602 | 0xb0420ef4, | 717 | 0xb60b0017, |
603 | 0x1bf402e4, | 718 | 0x12d00614, |
604 | 0x3c87f12e, | 719 | 0x130ef400, |
720 | /* 0x0528: chsw_no_prev */ | ||
721 | 0xf41f23c8, | ||
722 | 0x31f40d0b, | ||
723 | 0x0232f401, | ||
724 | 0x082a21f5, | ||
725 | /* 0x0538: chsw_done */ | ||
726 | 0x0b0c17f1, | ||
727 | 0xf00614b6, | ||
728 | 0x12d00127, | ||
729 | 0x5c87f100, | ||
605 | 0x0684b608, | 730 | 0x0684b608, |
606 | 0x99f094bd, | 731 | 0x99f094bd, |
607 | 0x0089d007, | 732 | 0x0089d004, |
608 | 0xf40132f4, | 733 | 0xff200ef5, |
609 | 0x21f50232, | 734 | /* 0x0558: main_not_ctx_switch */ |
610 | 0x87f10829, | 735 | 0xf401e4b0, |
611 | 0x84b6085c, | 736 | 0xf2b90d1b, |
737 | 0xb621f502, | ||
738 | 0x420ef407, | ||
739 | /* 0x0568: main_not_ctx_chan */ | ||
740 | 0xf402e4b0, | ||
741 | 0x87f12e1b, | ||
742 | 0x84b6083c, | ||
612 | 0xf094bd06, | 743 | 0xf094bd06, |
613 | 0x89d00799, | 744 | 0x89d00799, |
614 | 0x110ef400, | 745 | 0x0132f400, |
615 | /* 0x0598: main_not_ctx_save */ | 746 | 0xf50232f4, |
616 | 0xf010ef94, | 747 | 0xf1082a21, |
617 | 0x21f501f5, | 748 | 0xb6085c87, |
618 | 0x0ef502ec, | 749 | 0x94bd0684, |
619 | /* 0x05a6: main_done */ | 750 | 0xd00799f0, |
620 | 0x17f1fed1, | 751 | 0x0ef40089, |
621 | 0x14b60820, | 752 | /* 0x0599: main_not_ctx_save */ |
622 | 0xf024bd06, | 753 | 0x10ef9411, |
623 | 0x12d01f29, | 754 | 0xf501f5f0, |
624 | 0xbe0ef500, | 755 | 0xf502ec21, |
625 | /* 0x05b9: ih */ | 756 | /* 0x05a7: main_done */ |
626 | 0xfe80f9fe, | 757 | 0xf1fed10e, |
627 | 0x80f90188, | 758 | 0xb6082017, |
628 | 0xa0f990f9, | 759 | 0x24bd0614, |
629 | 0xd0f9b0f9, | 760 | 0xd01f29f0, |
630 | 0xf0f9e0f9, | 761 | 0x0ef50012, |
631 | 0xc4800acf, | 762 | /* 0x05ba: ih */ |
632 | 0x0bf404ab, | 763 | 0x80f9febe, |
633 | 0x00b7f11d, | 764 | 0xf90188fe, |
634 | 0x08d7f019, | 765 | 0xf990f980, |
635 | 0xcf40becf, | 766 | 0xf9b0f9a0, |
636 | 0x21f400bf, | 767 | 0xf9e0f9d0, |
637 | 0x00b0b704, | 768 | 0x800acff0, |
638 | 0x01e7f004, | 769 | 0xf404abc4, |
639 | /* 0x05ef: ih_no_fifo */ | 770 | 0xb7f11d0b, |
640 | 0xe400bed0, | 771 | 0xd7f01900, |
641 | 0xf40100ab, | 772 | 0x40becf08, |
642 | 0xd7f00d0b, | 773 | 0xf400bfcf, |
643 | 0x01e7f108, | 774 | 0xb0b70421, |
644 | 0x0421f440, | 775 | 0xe7f00400, |
645 | /* 0x0600: ih_no_ctxsw */ | 776 | 0x00bed001, |
646 | 0x0104b7f1, | 777 | /* 0x05f0: ih_no_fifo */ |
647 | 0xabffb0bd, | 778 | 0x0100abe4, |
648 | 0x0d0bf4b4, | 779 | 0xf00d0bf4, |
649 | 0x0c1ca7f1, | 780 | 0xe7f108d7, |
650 | 0xd006a4b6, | 781 | 0x21f44001, |
651 | /* 0x0616: ih_no_other */ | 782 | /* 0x0601: ih_no_ctxsw */ |
652 | 0x0ad000ab, | 783 | 0x04b7f104, |
653 | 0xfcf0fc40, | 784 | 0xffb0bd01, |
654 | 0xfcd0fce0, | 785 | 0x0bf4b4ab, |
655 | 0xfca0fcb0, | 786 | 0x1ca7f10d, |
656 | 0xfe80fc90, | 787 | 0x06a4b60c, |
657 | 0x80fc0088, | 788 | /* 0x0617: ih_no_other */ |
658 | 0xf80032f4, | 789 | 0xd000abd0, |
659 | /* 0x0631: ctx_4160s */ | 790 | 0xf0fc400a, |
660 | 0x60e7f101, | 791 | 0xd0fce0fc, |
661 | 0x40e3f041, | 792 | 0xa0fcb0fc, |
662 | 0xf401f7f0, | 793 | 0x80fc90fc, |
663 | /* 0x063e: ctx_4160s_wait */ | 794 | 0xfc0088fe, |
664 | 0x21f48d21, | 795 | 0x0032f480, |
665 | 0x04ffc868, | 796 | /* 0x0632: ctx_4160s */ |
666 | 0xf8fa0bf4, | 797 | 0xe7f101f8, |
667 | /* 0x0649: ctx_4160c */ | 798 | 0xe3f04160, |
668 | 0x60e7f100, | 799 | 0x01f7f040, |
669 | 0x40e3f041, | 800 | /* 0x063f: ctx_4160s_wait */ |
670 | 0x21f4f4bd, | 801 | 0xf48d21f4, |
671 | /* 0x0657: ctx_4170s */ | 802 | 0xffc86821, |
672 | 0xf100f88d, | 803 | 0xfa0bf404, |
673 | 0xf04170e7, | 804 | /* 0x064a: ctx_4160c */ |
674 | 0xf5f040e3, | ||
675 | 0x8d21f410, | ||
676 | /* 0x0666: ctx_4170w */ | ||
677 | 0xe7f100f8, | 805 | 0xe7f100f8, |
678 | 0xe3f04170, | 806 | 0xe3f04160, |
679 | 0x6821f440, | 807 | 0xf4f4bd40, |
680 | 0xf410f4f0, | ||
681 | 0x00f8f31b, | ||
682 | /* 0x0678: ctx_redswitch */ | ||
683 | 0x0614e7f1, | ||
684 | 0xf106e4b6, | ||
685 | 0xd00270f7, | ||
686 | 0xf7f000ef, | ||
687 | /* 0x0689: ctx_redswitch_delay */ | ||
688 | 0x01f2b608, | ||
689 | 0xf1fd1bf4, | ||
690 | 0xd00770f7, | ||
691 | 0x00f800ef, | ||
692 | /* 0x0698: ctx_86c */ | ||
693 | 0x086ce7f1, | ||
694 | 0xd006e4b6, | ||
695 | 0xe7f100ef, | ||
696 | 0xe3f08a14, | ||
697 | 0x8d21f440, | ||
698 | 0xa86ce7f1, | ||
699 | 0xf441e3f0, | ||
700 | 0x00f88d21, | 808 | 0x00f88d21, |
701 | /* 0x06b8: ctx_load */ | 809 | /* 0x0658: ctx_4170s */ |
702 | 0x083c87f1, | 810 | 0x4170e7f1, |
703 | 0xbd0684b6, | 811 | 0xf040e3f0, |
704 | 0x0599f094, | 812 | 0x21f410f5, |
705 | 0xf00089d0, | 813 | /* 0x0667: ctx_4170w */ |
706 | 0x21f40ca7, | 814 | 0xf100f88d, |
707 | 0x2417f1c9, | 815 | 0xf04170e7, |
708 | 0x0614b60a, | 816 | 0x21f440e3, |
709 | 0xf10010d0, | 817 | 0x10f4f068, |
710 | 0xb60b0037, | 818 | 0xf8f31bf4, |
711 | 0x32d00634, | 819 | /* 0x0679: ctx_redswitch */ |
712 | 0x0c17f140, | 820 | 0x14e7f100, |
713 | 0x0614b60a, | 821 | 0x06e4b606, |
714 | 0xd00747f0, | 822 | 0x0270f7f1, |
715 | 0x14d00012, | 823 | 0xf000efd0, |
716 | /* 0x06f1: ctx_chan_wait_0 */ | 824 | /* 0x068a: ctx_redswitch_delay */ |
717 | 0x4014cf40, | 825 | 0xf2b608f7, |
718 | 0xf41f44f0, | 826 | 0xfd1bf401, |
719 | 0x32d0fa1b, | 827 | 0x0770f7f1, |
720 | 0x000bfe00, | 828 | 0xf800efd0, |
721 | 0xb61f2af0, | 829 | /* 0x0699: ctx_86c */ |
722 | 0x20b60424, | 830 | 0x6ce7f100, |
723 | 0x3c87f102, | 831 | 0x06e4b608, |
832 | 0xf100efd0, | ||
833 | 0xf08a14e7, | ||
834 | 0x21f440e3, | ||
835 | 0x6ce7f18d, | ||
836 | 0x41e3f0a8, | ||
837 | 0xf88d21f4, | ||
838 | /* 0x06b9: ctx_load */ | ||
839 | 0x3c87f100, | ||
724 | 0x0684b608, | 840 | 0x0684b608, |
725 | 0x99f094bd, | 841 | 0x99f094bd, |
726 | 0x0089d008, | 842 | 0x0089d005, |
727 | 0x0a0417f1, | 843 | 0xf40ca7f0, |
844 | 0x17f1c921, | ||
845 | 0x14b60a24, | ||
846 | 0x0010d006, | ||
847 | 0x0b0037f1, | ||
848 | 0xd00634b6, | ||
849 | 0x17f14032, | ||
850 | 0x14b60a0c, | ||
851 | 0x0747f006, | ||
852 | 0xd00012d0, | ||
853 | /* 0x06f2: ctx_chan_wait_0 */ | ||
854 | 0x14cf4014, | ||
855 | 0x1f44f040, | ||
856 | 0xd0fa1bf4, | ||
857 | 0x0bfe0032, | ||
858 | 0x1f2af000, | ||
859 | 0xb60424b6, | ||
860 | 0x87f10220, | ||
861 | 0x84b6083c, | ||
862 | 0xf094bd06, | ||
863 | 0x89d00899, | ||
864 | 0x0417f100, | ||
865 | 0x0614b60a, | ||
866 | 0xf10012d0, | ||
867 | 0xb60a2017, | ||
868 | 0x27f00614, | ||
869 | 0x0023f102, | ||
870 | 0x0012d080, | ||
871 | 0xf11017f0, | ||
872 | 0xf0020027, | ||
873 | 0x12fa0223, | ||
874 | 0xf103f805, | ||
875 | 0xb6085c87, | ||
876 | 0x94bd0684, | ||
877 | 0xd00899f0, | ||
878 | 0x01980089, | ||
879 | 0x1814b681, | ||
880 | 0xb6800298, | ||
881 | 0x12fd0825, | ||
882 | 0x16018005, | ||
883 | 0x083c87f1, | ||
884 | 0xbd0684b6, | ||
885 | 0x0999f094, | ||
886 | 0xf10089d0, | ||
887 | 0xb60a0427, | ||
888 | 0x21d00624, | ||
889 | 0x0127f000, | ||
890 | 0x0a2017f1, | ||
728 | 0xd00614b6, | 891 | 0xd00614b6, |
729 | 0x17f10012, | 892 | 0x17f10012, |
730 | 0x14b60a20, | 893 | 0x13f00100, |
731 | 0x0227f006, | 894 | 0x0501fa06, |
732 | 0x800023f1, | ||
733 | 0xf00012d0, | ||
734 | 0x27f11017, | ||
735 | 0x23f00300, | ||
736 | 0x0512fa02, | ||
737 | 0x87f103f8, | 895 | 0x87f103f8, |
738 | 0x84b6085c, | 896 | 0x84b6085c, |
739 | 0xf094bd06, | 897 | 0xf094bd06, |
740 | 0x89d00899, | 898 | 0x89d00999, |
741 | 0xc1019800, | 899 | 0x5c87f100, |
742 | 0x981814b6, | ||
743 | 0x25b6c002, | ||
744 | 0x0512fd08, | ||
745 | 0xf1160180, | ||
746 | 0xb6083c87, | ||
747 | 0x94bd0684, | ||
748 | 0xd00999f0, | ||
749 | 0x27f10089, | ||
750 | 0x24b60a04, | ||
751 | 0x0021d006, | ||
752 | 0xf10127f0, | ||
753 | 0xb60a2017, | ||
754 | 0x12d00614, | ||
755 | 0x0017f100, | ||
756 | 0x0613f002, | ||
757 | 0xf80501fa, | ||
758 | 0x5c87f103, | ||
759 | 0x0684b608, | 900 | 0x0684b608, |
760 | 0x99f094bd, | 901 | 0x99f094bd, |
761 | 0x0089d009, | 902 | 0x0089d005, |
762 | 0x085c87f1, | 903 | /* 0x07b6: ctx_chan */ |
763 | 0xbd0684b6, | 904 | 0x21f500f8, |
764 | 0x0599f094, | 905 | 0x21f50632, |
765 | 0xf80089d0, | 906 | 0xa7f006b9, |
766 | /* 0x07b5: ctx_chan */ | 907 | 0xc921f40c, |
767 | 0x3121f500, | 908 | 0x0a1017f1, |
768 | 0xb821f506, | 909 | 0xf00614b6, |
769 | 0x0ca7f006, | 910 | 0x12d00527, |
770 | 0xf1c921f4, | 911 | /* 0x07d1: ctx_chan_wait */ |
771 | 0xb60a1017, | 912 | 0x0012cf00, |
772 | 0x27f00614, | 913 | 0xf40522fd, |
773 | 0x0012d005, | 914 | 0x21f5fa1b, |
774 | /* 0x07d0: ctx_chan_wait */ | 915 | 0x00f8064a, |
775 | 0xfd0012cf, | 916 | /* 0x07e0: ctx_mmio_exec */ |
776 | 0x1bf40522, | 917 | 0xf1410398, |
777 | 0x4921f5fa, | 918 | 0xb60a0427, |
778 | /* 0x07df: ctx_mmio_exec */ | 919 | 0x23d00624, |
779 | 0x9800f806, | 920 | /* 0x07ef: ctx_mmio_loop */ |
780 | 0x27f18103, | 921 | 0xc434bd00, |
781 | 0x24b60a04, | 922 | 0x1bf4ff34, |
782 | 0x0023d006, | 923 | 0x0057f10f, |
783 | /* 0x07ee: ctx_mmio_loop */ | 924 | 0x0653f002, |
784 | 0x34c434bd, | 925 | 0xf80535fa, |
785 | 0x0f1bf4ff, | 926 | /* 0x0801: ctx_mmio_pull */ |
786 | 0x030057f1, | 927 | 0x804e9803, |
787 | 0xfa0653f0, | 928 | 0xf4814f98, |
788 | 0x03f80535, | 929 | 0x30b68d21, |
789 | /* 0x0800: ctx_mmio_pull */ | 930 | 0x0112b608, |
790 | 0x98c04e98, | 931 | /* 0x0813: ctx_mmio_done */ |
791 | 0x21f4c14f, | 932 | 0x98df1bf4, |
792 | 0x0830b68d, | 933 | 0x23d01603, |
793 | 0xf40112b6, | 934 | 0x40008000, |
794 | /* 0x0812: ctx_mmio_done */ | 935 | 0x010017f1, |
795 | 0x0398df1b, | 936 | 0xfa0613f0, |
796 | 0x0023d016, | 937 | 0x03f80601, |
797 | 0xf1800080, | 938 | /* 0x082a: ctx_xfer */ |
798 | 0xf0020017, | 939 | 0xf7f100f8, |
799 | 0x01fa0613, | 940 | 0xf4b60c00, |
800 | 0xf803f806, | 941 | 0x04e7f006, |
801 | /* 0x0829: ctx_xfer */ | 942 | /* 0x0837: ctx_xfer_idle */ |
802 | 0x00f7f100, | 943 | 0xcf80fed0, |
803 | 0x06f4b60c, | 944 | 0xe4f100fe, |
804 | 0xd004e7f0, | 945 | 0x1bf42000, |
805 | /* 0x0836: ctx_xfer_idle */ | 946 | 0x0611f4f9, |
806 | 0xfecf80fe, | 947 | /* 0x0847: ctx_xfer_pre */ |
807 | 0x00e4f100, | 948 | 0xf01102f4, |
808 | 0xf91bf420, | 949 | 0x21f510f7, |
809 | 0xf40611f4, | 950 | 0x21f50699, |
810 | /* 0x0846: ctx_xfer_pre */ | 951 | 0x11f40632, |
811 | 0xf7f01102, | 952 | /* 0x0855: ctx_xfer_pre_load */ |
812 | 0x9821f510, | 953 | 0x02f7f01c, |
813 | 0x3121f506, | 954 | 0x065821f5, |
814 | 0x1c11f406, | 955 | 0x066721f5, |
815 | /* 0x0854: ctx_xfer_pre_load */ | 956 | 0x067921f5, |
816 | 0xf502f7f0, | 957 | 0x21f5f4bd, |
817 | 0xf5065721, | 958 | 0x21f50658, |
818 | 0xf5066621, | 959 | /* 0x086e: ctx_xfer_exec */ |
819 | 0xbd067821, | 960 | 0x019806b9, |
820 | 0x5721f5f4, | 961 | 0x1427f116, |
821 | 0xb821f506, | 962 | 0x0624b604, |
822 | /* 0x086d: ctx_xfer_exec */ | 963 | 0xf10020d0, |
823 | 0x16019806, | 964 | 0xf0a500e7, |
824 | 0x041427f1, | 965 | 0x1fb941e3, |
825 | 0xd00624b6, | 966 | 0x8d21f402, |
826 | 0xe7f10020, | 967 | 0xf004e0b6, |
827 | 0xe3f0a500, | 968 | 0x2cf001fc, |
828 | 0x021fb941, | 969 | 0x0124b602, |
829 | 0xb68d21f4, | 970 | 0xf405f2fd, |
830 | 0xfcf004e0, | 971 | 0x17f18d21, |
831 | 0x022cf001, | 972 | 0x13f04afc, |
832 | 0xfd0124b6, | 973 | 0x0c27f002, |
833 | 0x21f405f2, | 974 | 0xf50012d0, |
834 | 0xfc17f18d, | 975 | 0xf1020721, |
835 | 0x0213f04a, | 976 | 0xf047fc27, |
836 | 0xd00c27f0, | 977 | 0x20d00223, |
837 | 0x21f50012, | 978 | 0x012cf000, |
838 | 0x27f10207, | 979 | 0xd00320b6, |
839 | 0x23f047fc, | 980 | 0xacf00012, |
840 | 0x0020d002, | 981 | 0x06a5f001, |
841 | 0xb6012cf0, | 982 | 0x9800b7f0, |
842 | 0x12d00320, | 983 | 0x0d98140c, |
843 | 0x01acf000, | 984 | 0x00e7f015, |
844 | 0xf006a5f0, | 985 | 0x015c21f5, |
845 | 0x0c9800b7, | 986 | 0xf508a7f0, |
846 | 0x150d9814, | 987 | 0xf5010321, |
847 | 0xf500e7f0, | 988 | 0xf4020721, |
848 | 0xf0015c21, | 989 | 0xa7f02201, |
849 | 0x21f508a7, | 990 | 0xc921f40c, |
850 | 0x21f50103, | 991 | 0x0a1017f1, |
851 | 0x01f40207, | 992 | 0xf00614b6, |
852 | 0x0ca7f022, | 993 | 0x12d00527, |
853 | 0xf1c921f4, | 994 | /* 0x08f5: ctx_xfer_post_save_wait */ |
854 | 0xb60a1017, | 995 | 0x0012cf00, |
855 | 0x27f00614, | 996 | 0xf40522fd, |
856 | 0x0012d005, | 997 | 0x02f4fa1b, |
857 | /* 0x08f4: ctx_xfer_post_save_wait */ | 998 | /* 0x0901: ctx_xfer_post */ |
858 | 0xfd0012cf, | 999 | 0x02f7f032, |
859 | 0x1bf40522, | 1000 | 0x065821f5, |
860 | 0x3202f4fa, | 1001 | 0x21f5f4bd, |
861 | /* 0x0900: ctx_xfer_post */ | 1002 | 0x21f50699, |
862 | 0xf502f7f0, | 1003 | 0x21f50226, |
863 | 0xbd065721, | 1004 | 0xf4bd0667, |
864 | 0x9821f5f4, | 1005 | 0x065821f5, |
865 | 0x2621f506, | 1006 | 0x981011f4, |
866 | 0x6621f502, | 1007 | 0x11fd4001, |
867 | 0xf5f4bd06, | 1008 | 0x070bf405, |
868 | 0xf4065721, | 1009 | 0x07e021f5, |
869 | 0x01981011, | 1010 | /* 0x092c: ctx_xfer_no_post_mmio */ |
870 | 0x0511fd80, | 1011 | 0x064a21f5, |
871 | 0xf5070bf4, | 1012 | /* 0x0930: ctx_xfer_done */ |
872 | /* 0x092b: ctx_xfer_no_post_mmio */ | 1013 | 0x000000f8, |
873 | 0xf507df21, | ||
874 | /* 0x092f: ctx_xfer_done */ | ||
875 | 0xf8064921, | ||
876 | 0x00000000, | ||
877 | 0x00000000, | 1014 | 0x00000000, |
878 | 0x00000000, | 1015 | 0x00000000, |
879 | 0x00000000, | 1016 | 0x00000000, |
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/nvc0.c b/drivers/gpu/drm/nouveau/core/engine/graph/nvc0.c index 766870c4a27c..9d705bab9dcd 100644 --- a/drivers/gpu/drm/nouveau/core/engine/graph/nvc0.c +++ b/drivers/gpu/drm/nouveau/core/engine/graph/nvc0.c | |||
@@ -745,9 +745,17 @@ nvc0_graph_init_unk60xx(struct nvc0_graph_priv *priv) | |||
745 | static void | 745 | static void |
746 | nvc0_graph_init_unk64xx(struct nvc0_graph_priv *priv) | 746 | nvc0_graph_init_unk64xx(struct nvc0_graph_priv *priv) |
747 | { | 747 | { |
748 | nv_wr32(priv, 0x4064f0, 0x00000000); | 748 | switch (nv_device(priv)->chipset) { |
749 | nv_wr32(priv, 0x4064f4, 0x00000000); | 749 | case 0xd9: |
750 | nv_wr32(priv, 0x4064f8, 0x00000000); | 750 | case 0xd7: |
751 | nv_wr32(priv, 0x4064f0, 0x00000000); | ||
752 | nv_wr32(priv, 0x4064f4, 0x00000000); | ||
753 | nv_wr32(priv, 0x4064f8, 0x00000000); | ||
754 | break; | ||
755 | case 0xc0: | ||
756 | default: | ||
757 | break; | ||
758 | } | ||
751 | } | 759 | } |
752 | 760 | ||
753 | static void | 761 | static void |
@@ -755,10 +763,26 @@ nvc0_graph_init_unk58xx(struct nvc0_graph_priv *priv) | |||
755 | { | 763 | { |
756 | nv_wr32(priv, 0x405844, 0x00ffffff); | 764 | nv_wr32(priv, 0x405844, 0x00ffffff); |
757 | nv_wr32(priv, 0x405850, 0x00000000); | 765 | nv_wr32(priv, 0x405850, 0x00000000); |
758 | nv_wr32(priv, 0x405900, 0x00002834); | 766 | switch (nv_device(priv)->chipset) { |
767 | case 0xd9: | ||
768 | case 0xd7: | ||
769 | nv_wr32(priv, 0x405900, 0x00002834); | ||
770 | break; | ||
771 | case 0xc0: | ||
772 | default: | ||
773 | break; | ||
774 | } | ||
759 | nv_wr32(priv, 0x405908, 0x00000000); | 775 | nv_wr32(priv, 0x405908, 0x00000000); |
760 | nv_wr32(priv, 0x405928, 0x00000000); | 776 | switch (nv_device(priv)->chipset) { |
761 | nv_wr32(priv, 0x40592c, 0x00000000); | 777 | case 0xd9: |
778 | case 0xd7: | ||
779 | nv_wr32(priv, 0x405928, 0x00000000); | ||
780 | nv_wr32(priv, 0x40592c, 0x00000000); | ||
781 | break; | ||
782 | case 0xc0: | ||
783 | default: | ||
784 | break; | ||
785 | } | ||
762 | } | 786 | } |
763 | 787 | ||
764 | static void | 788 | static void |
@@ -770,19 +794,53 @@ nvc0_graph_init_unk80xx(struct nvc0_graph_priv *priv) | |||
770 | static void | 794 | static void |
771 | nvc0_graph_init_gpc(struct nvc0_graph_priv *priv) | 795 | nvc0_graph_init_gpc(struct nvc0_graph_priv *priv) |
772 | { | 796 | { |
773 | nv_wr32(priv, 0x418408, 0x00000000); | 797 | switch (nv_device(priv)->chipset) { |
798 | case 0xd9: | ||
799 | case 0xd7: | ||
800 | nv_wr32(priv, 0x418408, 0x00000000); | ||
801 | break; | ||
802 | case 0xc0: | ||
803 | default: | ||
804 | break; | ||
805 | } | ||
774 | nv_wr32(priv, 0x4184a0, 0x00000000); | 806 | nv_wr32(priv, 0x4184a0, 0x00000000); |
775 | nv_wr32(priv, 0x4184a4, 0x00000000); | 807 | switch (nv_device(priv)->chipset) { |
776 | nv_wr32(priv, 0x4184a8, 0x00000000); | 808 | case 0xd9: |
809 | case 0xd7: | ||
810 | nv_wr32(priv, 0x4184a4, 0x00000000); | ||
811 | nv_wr32(priv, 0x4184a8, 0x00000000); | ||
812 | break; | ||
813 | case 0xc0: | ||
814 | default: | ||
815 | break; | ||
816 | } | ||
777 | nv_wr32(priv, 0x418604, 0x00000000); | 817 | nv_wr32(priv, 0x418604, 0x00000000); |
778 | nv_wr32(priv, 0x418680, 0x00000000); | 818 | nv_wr32(priv, 0x418680, 0x00000000); |
779 | nv_wr32(priv, 0x418714, 0x00000000); | 819 | switch (nv_device(priv)->chipset) { |
820 | case 0xd9: | ||
821 | case 0xd7: | ||
822 | nv_wr32(priv, 0x418714, 0x00000000); | ||
823 | break; | ||
824 | case 0xc0: | ||
825 | default: | ||
826 | nv_wr32(priv, 0x418714, 0x80000000); | ||
827 | break; | ||
828 | } | ||
780 | nv_wr32(priv, 0x418384, 0x00000000); | 829 | nv_wr32(priv, 0x418384, 0x00000000); |
781 | nv_wr32(priv, 0x418814, 0x00000000); | 830 | nv_wr32(priv, 0x418814, 0x00000000); |
782 | nv_wr32(priv, 0x418818, 0x00000000); | 831 | nv_wr32(priv, 0x418818, 0x00000000); |
783 | nv_wr32(priv, 0x41881c, 0x00000000); | 832 | nv_wr32(priv, 0x41881c, 0x00000000); |
784 | nv_wr32(priv, 0x418b04, 0x00000000); | 833 | nv_wr32(priv, 0x418b04, 0x00000000); |
785 | nv_wr32(priv, 0x4188c8, 0x00000000); | 834 | switch (nv_device(priv)->chipset) { |
835 | case 0xd9: | ||
836 | case 0xd7: | ||
837 | nv_wr32(priv, 0x4188c8, 0x00000000); | ||
838 | break; | ||
839 | case 0xc0: | ||
840 | default: | ||
841 | nv_wr32(priv, 0x4188c8, 0x80000000); | ||
842 | break; | ||
843 | } | ||
786 | nv_wr32(priv, 0x4188cc, 0x00000000); | 844 | nv_wr32(priv, 0x4188cc, 0x00000000); |
787 | nv_wr32(priv, 0x4188d0, 0x00010000); | 845 | nv_wr32(priv, 0x4188d0, 0x00010000); |
788 | nv_wr32(priv, 0x4188d4, 0x00000001); | 846 | nv_wr32(priv, 0x4188d4, 0x00000001); |
@@ -794,22 +852,63 @@ nvc0_graph_init_gpc(struct nvc0_graph_priv *priv) | |||
794 | nv_wr32(priv, 0x418988, 0x77777777); | 852 | nv_wr32(priv, 0x418988, 0x77777777); |
795 | nv_wr32(priv, 0x41898c, 0x77777777); | 853 | nv_wr32(priv, 0x41898c, 0x77777777); |
796 | nv_wr32(priv, 0x418c04, 0x00000000); | 854 | nv_wr32(priv, 0x418c04, 0x00000000); |
797 | nv_wr32(priv, 0x418c64, 0x00000000); | 855 | switch (nv_device(priv)->chipset) { |
798 | nv_wr32(priv, 0x418c68, 0x00000000); | 856 | case 0xd9: |
857 | case 0xd7: | ||
858 | nv_wr32(priv, 0x418c64, 0x00000000); | ||
859 | nv_wr32(priv, 0x418c68, 0x00000000); | ||
860 | break; | ||
861 | case 0xc0: | ||
862 | default: | ||
863 | break; | ||
864 | } | ||
799 | nv_wr32(priv, 0x418c88, 0x00000000); | 865 | nv_wr32(priv, 0x418c88, 0x00000000); |
800 | nv_wr32(priv, 0x418cb4, 0x00000000); | 866 | switch (nv_device(priv)->chipset) { |
801 | nv_wr32(priv, 0x418cb8, 0x00000000); | 867 | case 0xd9: |
868 | case 0xd7: | ||
869 | nv_wr32(priv, 0x418cb4, 0x00000000); | ||
870 | nv_wr32(priv, 0x418cb8, 0x00000000); | ||
871 | break; | ||
872 | case 0xc0: | ||
873 | default: | ||
874 | break; | ||
875 | } | ||
802 | nv_wr32(priv, 0x418d00, 0x00000000); | 876 | nv_wr32(priv, 0x418d00, 0x00000000); |
803 | nv_wr32(priv, 0x418d28, 0x00000000); | 877 | switch (nv_device(priv)->chipset) { |
804 | nv_wr32(priv, 0x418d2c, 0x00000000); | 878 | case 0xd9: |
805 | nv_wr32(priv, 0x418f00, 0x00000000); | 879 | case 0xd7: |
880 | nv_wr32(priv, 0x418d28, 0x00000000); | ||
881 | nv_wr32(priv, 0x418d2c, 0x00000000); | ||
882 | nv_wr32(priv, 0x418f00, 0x00000000); | ||
883 | break; | ||
884 | case 0xc0: | ||
885 | default: | ||
886 | break; | ||
887 | } | ||
806 | nv_wr32(priv, 0x418f08, 0x00000000); | 888 | nv_wr32(priv, 0x418f08, 0x00000000); |
807 | nv_wr32(priv, 0x418f20, 0x00000000); | 889 | switch (nv_device(priv)->chipset) { |
808 | nv_wr32(priv, 0x418f24, 0x00000000); | 890 | case 0xd9: |
809 | nv_wr32(priv, 0x418e00, 0x00000003); | 891 | case 0xd7: |
892 | nv_wr32(priv, 0x418f20, 0x00000000); | ||
893 | nv_wr32(priv, 0x418f24, 0x00000000); | ||
894 | nv_wr32(priv, 0x418e00, 0x00000003); | ||
895 | break; | ||
896 | case 0xc0: | ||
897 | default: | ||
898 | nv_wr32(priv, 0x418e00, 0x00000050); | ||
899 | break; | ||
900 | } | ||
810 | nv_wr32(priv, 0x418e08, 0x00000000); | 901 | nv_wr32(priv, 0x418e08, 0x00000000); |
811 | nv_wr32(priv, 0x418e1c, 0x00000000); | 902 | switch (nv_device(priv)->chipset) { |
812 | nv_wr32(priv, 0x418e20, 0x00000000); | 903 | case 0xd9: |
904 | case 0xd7: | ||
905 | nv_wr32(priv, 0x418e1c, 0x00000000); | ||
906 | nv_wr32(priv, 0x418e20, 0x00000000); | ||
907 | break; | ||
908 | case 0xc0: | ||
909 | default: | ||
910 | break; | ||
911 | } | ||
813 | nv_wr32(priv, 0x41900c, 0x00000000); | 912 | nv_wr32(priv, 0x41900c, 0x00000000); |
814 | nv_wr32(priv, 0x419018, 0x00000000); | 913 | nv_wr32(priv, 0x419018, 0x00000000); |
815 | } | 914 | } |
@@ -821,21 +920,64 @@ nvc0_graph_init_tpc(struct nvc0_graph_priv *priv) | |||
821 | nv_wr32(priv, 0x419d0c, 0x00000000); | 920 | nv_wr32(priv, 0x419d0c, 0x00000000); |
822 | nv_wr32(priv, 0x419d10, 0x00000014); | 921 | nv_wr32(priv, 0x419d10, 0x00000014); |
823 | nv_wr32(priv, 0x419ab0, 0x00000000); | 922 | nv_wr32(priv, 0x419ab0, 0x00000000); |
824 | nv_wr32(priv, 0x419ac8, 0x00000000); | 923 | switch (nv_device(priv)->chipset) { |
924 | case 0xd9: | ||
925 | case 0xd7: | ||
926 | nv_wr32(priv, 0x419ac8, 0x00000000); | ||
927 | break; | ||
928 | case 0xc0: | ||
929 | default: | ||
930 | break; | ||
931 | } | ||
825 | nv_wr32(priv, 0x419ab8, 0x000000e7); | 932 | nv_wr32(priv, 0x419ab8, 0x000000e7); |
826 | nv_wr32(priv, 0x419abc, 0x00000000); | 933 | nv_wr32(priv, 0x419abc, 0x00000000); |
827 | nv_wr32(priv, 0x419ac0, 0x00000000); | 934 | nv_wr32(priv, 0x419ac0, 0x00000000); |
828 | nv_wr32(priv, 0x419ab4, 0x00000000); | 935 | switch (nv_device(priv)->chipset) { |
829 | nv_wr32(priv, 0x41980c, 0x00000010); | 936 | case 0xd9: |
937 | case 0xd7: | ||
938 | nv_wr32(priv, 0x419ab4, 0x00000000); | ||
939 | nv_wr32(priv, 0x41980c, 0x00000010); | ||
940 | break; | ||
941 | case 0xc0: | ||
942 | default: | ||
943 | nv_wr32(priv, 0x41980c, 0x00000000); | ||
944 | break; | ||
945 | } | ||
830 | nv_wr32(priv, 0x419810, 0x00000000); | 946 | nv_wr32(priv, 0x419810, 0x00000000); |
831 | nv_wr32(priv, 0x419814, 0x00000004); | 947 | switch (nv_device(priv)->chipset) { |
948 | case 0xd9: | ||
949 | case 0xd7: | ||
950 | nv_wr32(priv, 0x419814, 0x00000004); | ||
951 | break; | ||
952 | case 0xc0: | ||
953 | default: | ||
954 | nv_wr32(priv, 0x419814, 0x00000000); | ||
955 | break; | ||
956 | } | ||
832 | nv_wr32(priv, 0x419844, 0x00000000); | 957 | nv_wr32(priv, 0x419844, 0x00000000); |
833 | nv_wr32(priv, 0x41984c, 0x0000a918); | 958 | switch (nv_device(priv)->chipset) { |
959 | case 0xd9: | ||
960 | case 0xd7: | ||
961 | nv_wr32(priv, 0x41984c, 0x0000a918); | ||
962 | break; | ||
963 | case 0xc0: | ||
964 | default: | ||
965 | nv_wr32(priv, 0x41984c, 0x00005bc5); | ||
966 | break; | ||
967 | } | ||
834 | nv_wr32(priv, 0x419850, 0x00000000); | 968 | nv_wr32(priv, 0x419850, 0x00000000); |
835 | nv_wr32(priv, 0x419854, 0x00000000); | 969 | nv_wr32(priv, 0x419854, 0x00000000); |
836 | nv_wr32(priv, 0x419858, 0x00000000); | 970 | nv_wr32(priv, 0x419858, 0x00000000); |
837 | nv_wr32(priv, 0x41985c, 0x00000000); | 971 | nv_wr32(priv, 0x41985c, 0x00000000); |
838 | nv_wr32(priv, 0x419880, 0x00000002); | 972 | switch (nv_device(priv)->chipset) { |
973 | case 0xd9: | ||
974 | case 0xd7: | ||
975 | nv_wr32(priv, 0x419880, 0x00000002); | ||
976 | break; | ||
977 | case 0xc0: | ||
978 | default: | ||
979 | break; | ||
980 | } | ||
839 | nv_wr32(priv, 0x419c98, 0x00000000); | 981 | nv_wr32(priv, 0x419c98, 0x00000000); |
840 | nv_wr32(priv, 0x419ca8, 0x80000000); | 982 | nv_wr32(priv, 0x419ca8, 0x80000000); |
841 | nv_wr32(priv, 0x419cb4, 0x00000000); | 983 | nv_wr32(priv, 0x419cb4, 0x00000000); |
@@ -845,25 +987,60 @@ nvc0_graph_init_tpc(struct nvc0_graph_priv *priv) | |||
845 | nv_wr32(priv, 0x419cc4, 0x00000000); | 987 | nv_wr32(priv, 0x419cc4, 0x00000000); |
846 | nv_wr32(priv, 0x419bd4, 0x00800000); | 988 | nv_wr32(priv, 0x419bd4, 0x00800000); |
847 | nv_wr32(priv, 0x419bdc, 0x00000000); | 989 | nv_wr32(priv, 0x419bdc, 0x00000000); |
848 | nv_wr32(priv, 0x419bf8, 0x00000000); | 990 | switch (nv_device(priv)->chipset) { |
849 | nv_wr32(priv, 0x419bfc, 0x00000000); | 991 | case 0xd9: |
992 | case 0xd7: | ||
993 | nv_wr32(priv, 0x419bf8, 0x00000000); | ||
994 | nv_wr32(priv, 0x419bfc, 0x00000000); | ||
995 | break; | ||
996 | case 0xc0: | ||
997 | default: | ||
998 | break; | ||
999 | } | ||
850 | nv_wr32(priv, 0x419d2c, 0x00000000); | 1000 | nv_wr32(priv, 0x419d2c, 0x00000000); |
851 | nv_wr32(priv, 0x419d48, 0x00000000); | 1001 | switch (nv_device(priv)->chipset) { |
852 | nv_wr32(priv, 0x419d4c, 0x00000000); | 1002 | case 0xd9: |
1003 | case 0xd7: | ||
1004 | nv_wr32(priv, 0x419d48, 0x00000000); | ||
1005 | nv_wr32(priv, 0x419d4c, 0x00000000); | ||
1006 | break; | ||
1007 | case 0xc0: | ||
1008 | default: | ||
1009 | break; | ||
1010 | } | ||
853 | nv_wr32(priv, 0x419c0c, 0x00000000); | 1011 | nv_wr32(priv, 0x419c0c, 0x00000000); |
854 | nv_wr32(priv, 0x419e00, 0x00000000); | 1012 | nv_wr32(priv, 0x419e00, 0x00000000); |
855 | nv_wr32(priv, 0x419ea0, 0x00000000); | 1013 | nv_wr32(priv, 0x419ea0, 0x00000000); |
856 | nv_wr32(priv, 0x419ea4, 0x00000100); | 1014 | nv_wr32(priv, 0x419ea4, 0x00000100); |
857 | nv_wr32(priv, 0x419ea8, 0x02001100); | 1015 | switch (nv_device(priv)->chipset) { |
1016 | case 0xd9: | ||
1017 | case 0xd7: | ||
1018 | nv_wr32(priv, 0x419ea8, 0x02001100); | ||
1019 | break; | ||
1020 | case 0xc0: | ||
1021 | default: | ||
1022 | nv_wr32(priv, 0x419ea8, 0x00001100); | ||
1023 | break; | ||
1024 | } | ||
858 | nv_wr32(priv, 0x419eac, 0x11100702); | 1025 | nv_wr32(priv, 0x419eac, 0x11100702); |
859 | nv_wr32(priv, 0x419eb0, 0x00000003); | 1026 | nv_wr32(priv, 0x419eb0, 0x00000003); |
860 | nv_wr32(priv, 0x419eb4, 0x00000000); | 1027 | nv_wr32(priv, 0x419eb4, 0x00000000); |
861 | nv_wr32(priv, 0x419eb8, 0x00000000); | 1028 | nv_wr32(priv, 0x419eb8, 0x00000000); |
862 | nv_wr32(priv, 0x419ebc, 0x00000000); | 1029 | nv_wr32(priv, 0x419ebc, 0x00000000); |
863 | nv_wr32(priv, 0x419ec0, 0x00000000); | 1030 | nv_wr32(priv, 0x419ec0, 0x00000000); |
864 | nv_wr32(priv, 0x419ec8, 0x0e063818); | 1031 | switch (nv_device(priv)->chipset) { |
865 | nv_wr32(priv, 0x419ecc, 0x0e060e06); | 1032 | case 0xd9: |
866 | nv_wr32(priv, 0x419ed0, 0x00003818); | 1033 | case 0xd7: |
1034 | nv_wr32(priv, 0x419ec8, 0x0e063818); | ||
1035 | nv_wr32(priv, 0x419ecc, 0x0e060e06); | ||
1036 | nv_wr32(priv, 0x419ed0, 0x00003818); | ||
1037 | break; | ||
1038 | case 0xc0: | ||
1039 | default: | ||
1040 | nv_wr32(priv, 0x419ec8, 0x06060618); | ||
1041 | nv_wr32(priv, 0x419ed0, 0x0eff0e38); | ||
1042 | break; | ||
1043 | } | ||
867 | nv_wr32(priv, 0x419ed4, 0x011104f1); | 1044 | nv_wr32(priv, 0x419ed4, 0x011104f1); |
868 | nv_wr32(priv, 0x419edc, 0x00000000); | 1045 | nv_wr32(priv, 0x419edc, 0x00000000); |
869 | nv_wr32(priv, 0x419f00, 0x00000000); | 1046 | nv_wr32(priv, 0x419f00, 0x00000000); |
@@ -1133,6 +1310,7 @@ nvc0_graph_init(struct nouveau_object *object) | |||
1133 | nvc0_graph_init_regs(priv); | 1310 | nvc0_graph_init_regs(priv); |
1134 | 1311 | ||
1135 | switch (nv_device(priv)->chipset) { | 1312 | switch (nv_device(priv)->chipset) { |
1313 | case 0xc0: | ||
1136 | case 0xd9: | 1314 | case 0xd9: |
1137 | case 0xd7: | 1315 | case 0xd7: |
1138 | nvc0_graph_init_unk40xx(priv); | 1316 | nvc0_graph_init_unk40xx(priv); |