Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
06784090
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
06784090
编写于
7月 11, 2011
作者:
B
Ben Skeggs
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
drm/nvc0/gr: add initial support for nvd9, not quite there yet..
Signed-off-by:
N
Ben Skeggs
<
bskeggs@redhat.com
>
上级
be7f2615
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
326 addition
and
93 deletion
+326
-93
drivers/gpu/drm/nouveau/nouveau_state.c
drivers/gpu/drm/nouveau/nouveau_state.c
+2
-3
drivers/gpu/drm/nouveau/nvc0_graph.c
drivers/gpu/drm/nouveau/nvc0_graph.c
+4
-2
drivers/gpu/drm/nouveau/nvc0_graph.h
drivers/gpu/drm/nouveau/nvc0_graph.h
+1
-0
drivers/gpu/drm/nouveau/nvc0_grctx.c
drivers/gpu/drm/nouveau/nvc0_grctx.c
+101
-26
drivers/gpu/drm/nouveau/nvc0_grgpc.fuc
drivers/gpu/drm/nouveau/nvc0_grgpc.fuc
+59
-0
drivers/gpu/drm/nouveau/nvc0_grgpc.fuc.h
drivers/gpu/drm/nouveau/nvc0_grgpc.fuc.h
+66
-14
drivers/gpu/drm/nouveau/nvc0_grhub.fuc
drivers/gpu/drm/nouveau/nvc0_grhub.fuc
+45
-0
drivers/gpu/drm/nouveau/nvc0_grhub.fuc.h
drivers/gpu/drm/nouveau/nvc0_grhub.fuc.h
+48
-48
未找到文件。
drivers/gpu/drm/nouveau/nouveau_state.c
浏览文件 @
06784090
...
...
@@ -655,6 +655,7 @@ nouveau_card_init(struct drm_device *dev)
nv50_graph_create
(
dev
);
break
;
case
NV_C0
:
case
NV_D0
:
nvc0_graph_create
(
dev
);
break
;
default:
...
...
@@ -1111,13 +1112,11 @@ int nouveau_load(struct drm_device *dev, unsigned long flags)
dev_priv
->
noaccel
=
!!
nouveau_noaccel
;
if
(
nouveau_noaccel
==
-
1
)
{
switch
(
dev_priv
->
chipset
)
{
#if 0
case 0xXX: /* known broken */
case
0xd9
:
/* known broken */
NV_INFO
(
dev
,
"acceleration disabled by default, pass "
"noaccel=0 to force enable
\n
"
);
dev_priv
->
noaccel
=
true
;
break
;
#endif
default:
dev_priv
->
noaccel
=
false
;
break
;
...
...
drivers/gpu/drm/nouveau/nvc0_graph.c
浏览文件 @
06784090
...
...
@@ -875,14 +875,16 @@ nvc0_graph_create(struct drm_device *dev)
case
0xcf
:
/* 4/0/0/0, 3 */
priv
->
magic_not_rop_nr
=
0x03
;
break
;
case
0xd9
:
/* 1/0/0/0, 1 */
priv
->
magic_not_rop_nr
=
0x01
;
break
;
}
if
(
!
priv
->
magic_not_rop_nr
)
{
NV_ERROR
(
dev
,
"PGRAPH: unknown config: %d/%d/%d/%d, %d
\n
"
,
priv
->
tp_nr
[
0
],
priv
->
tp_nr
[
1
],
priv
->
tp_nr
[
2
],
priv
->
tp_nr
[
3
],
priv
->
rop_nr
);
/* use 0xc3's values... */
priv
->
magic_not_rop_nr
=
0x03
;
priv
->
magic_not_rop_nr
=
0x00
;
}
NVOBJ_CLASS
(
dev
,
0x902d
,
GR
);
/* 2D */
...
...
drivers/gpu/drm/nouveau/nvc0_graph.h
浏览文件 @
06784090
...
...
@@ -87,6 +87,7 @@ nvc0_graph_class(struct drm_device *dev)
case
0xc1
:
return
0x9197
;
case
0xc8
:
case
0xd9
:
return
0x9297
;
default:
return
0
;
...
...
drivers/gpu/drm/nouveau/nvc0_grctx.c
浏览文件 @
06784090
...
...
@@ -1268,6 +1268,17 @@ nvc0_grctx_generate_9039(struct drm_device *dev)
static
void
nvc0_grctx_generate_90c0
(
struct
drm_device
*
dev
)
{
struct
drm_nouveau_private
*
dev_priv
=
dev
->
dev_private
;
int
i
;
for
(
i
=
0
;
dev_priv
->
chipset
==
0xd9
&&
i
<
4
;
i
++
)
{
nv_mthd
(
dev
,
0x90c0
,
0x2700
+
(
i
*
0x40
),
0x00000000
);
nv_mthd
(
dev
,
0x90c0
,
0x2720
+
(
i
*
0x40
),
0x00000000
);
nv_mthd
(
dev
,
0x90c0
,
0x2704
+
(
i
*
0x40
),
0x00000000
);
nv_mthd
(
dev
,
0x90c0
,
0x2724
+
(
i
*
0x40
),
0x00000000
);
nv_mthd
(
dev
,
0x90c0
,
0x2708
+
(
i
*
0x40
),
0x00000000
);
nv_mthd
(
dev
,
0x90c0
,
0x2728
+
(
i
*
0x40
),
0x00000000
);
}
nv_mthd
(
dev
,
0x90c0
,
0x270c
,
0x00000000
);
nv_mthd
(
dev
,
0x90c0
,
0x272c
,
0x00000000
);
nv_mthd
(
dev
,
0x90c0
,
0x274c
,
0x00000000
);
...
...
@@ -1276,6 +1287,12 @@ nvc0_grctx_generate_90c0(struct drm_device *dev)
nv_mthd
(
dev
,
0x90c0
,
0x27ac
,
0x00000000
);
nv_mthd
(
dev
,
0x90c0
,
0x27cc
,
0x00000000
);
nv_mthd
(
dev
,
0x90c0
,
0x27ec
,
0x00000000
);
for
(
i
=
0
;
dev_priv
->
chipset
==
0xd9
&&
i
<
4
;
i
++
)
{
nv_mthd
(
dev
,
0x90c0
,
0x2710
+
(
i
*
0x40
),
0x00014000
);
nv_mthd
(
dev
,
0x90c0
,
0x2730
+
(
i
*
0x40
),
0x00014000
);
nv_mthd
(
dev
,
0x90c0
,
0x2714
+
(
i
*
0x40
),
0x00000040
);
nv_mthd
(
dev
,
0x90c0
,
0x2734
+
(
i
*
0x40
),
0x00000040
);
}
nv_mthd
(
dev
,
0x90c0
,
0x030c
,
0x00000001
);
nv_mthd
(
dev
,
0x90c0
,
0x1944
,
0x00000000
);
nv_mthd
(
dev
,
0x90c0
,
0x0758
,
0x00000100
);
...
...
@@ -1471,14 +1488,20 @@ nvc0_grctx_generate_shaders(struct drm_device *dev)
{
struct
drm_nouveau_private
*
dev_priv
=
dev
->
dev_private
;
if
(
dev_priv
->
chipset
!=
0xc1
)
{
nv_wr32
(
dev
,
0x405800
,
0x078000bf
);
nv_wr32
(
dev
,
0x405830
,
0x02180000
);
}
else
{
if
(
dev_priv
->
chipset
==
0xd9
)
{
nv_wr32
(
dev
,
0x405800
,
0x0f8000bf
);
nv_wr32
(
dev
,
0x405830
,
0x02180218
);
nv_wr32
(
dev
,
0x405834
,
0x08000000
);
}
else
if
(
dev_priv
->
chipset
==
0xc1
)
{
nv_wr32
(
dev
,
0x405800
,
0x0f8000bf
);
nv_wr32
(
dev
,
0x405830
,
0x02180218
);
nv_wr32
(
dev
,
0x405834
,
0x00000000
);
}
else
{
nv_wr32
(
dev
,
0x405800
,
0x078000bf
);
nv_wr32
(
dev
,
0x405830
,
0x02180000
);
nv_wr32
(
dev
,
0x405834
,
0x00000000
);
}
nv_wr32
(
dev
,
0x405834
,
0x00000000
);
nv_wr32
(
dev
,
0x405838
,
0x00000000
);
nv_wr32
(
dev
,
0x405854
,
0x00000000
);
nv_wr32
(
dev
,
0x405870
,
0x00000001
);
...
...
@@ -1509,7 +1532,10 @@ nvc0_grctx_generate_unk64xx(struct drm_device *dev)
nv_wr32
(
dev
,
0x4064ac
,
0x00003fff
);
nv_wr32
(
dev
,
0x4064b4
,
0x00000000
);
nv_wr32
(
dev
,
0x4064b8
,
0x00000000
);
if
(
dev_priv
->
chipset
==
0xc1
)
{
if
(
dev_priv
->
chipset
==
0xd9
)
nv_wr32
(
dev
,
0x4064bc
,
0x00000000
);
if
(
dev_priv
->
chipset
==
0xc1
||
dev_priv
->
chipset
==
0xd9
)
{
nv_wr32
(
dev
,
0x4064c0
,
0x80140078
);
nv_wr32
(
dev
,
0x4064c4
,
0x0086ffff
);
}
...
...
@@ -1550,10 +1576,23 @@ nvc0_grctx_generate_rop(struct drm_device *dev)
/* ROPC_BROADCAST */
nv_wr32
(
dev
,
0x408800
,
0x02802a3c
);
nv_wr32
(
dev
,
0x408804
,
0x00000040
);
nv_wr32
(
dev
,
0x408808
,
chipset
!=
0xc1
?
0x0003e00d
:
0x1003e005
);
nv_wr32
(
dev
,
0x408900
,
0x3080b801
);
nv_wr32
(
dev
,
0x408904
,
chipset
!=
0xc1
?
0x02000001
:
0x62000001
);
nv_wr32
(
dev
,
0x408908
,
0x00c80929
);
if
(
chipset
==
0xd9
)
{
nv_wr32
(
dev
,
0x408808
,
0x1043e005
);
nv_wr32
(
dev
,
0x408900
,
0x3080b801
);
nv_wr32
(
dev
,
0x408904
,
0x1043e005
);
nv_wr32
(
dev
,
0x408908
,
0x00c8102f
);
}
else
if
(
chipset
==
0xc1
)
{
nv_wr32
(
dev
,
0x408808
,
0x1003e005
);
nv_wr32
(
dev
,
0x408900
,
0x3080b801
);
nv_wr32
(
dev
,
0x408904
,
0x62000001
);
nv_wr32
(
dev
,
0x408908
,
0x00c80929
);
}
else
{
nv_wr32
(
dev
,
0x408808
,
0x0003e00d
);
nv_wr32
(
dev
,
0x408900
,
0x3080b801
);
nv_wr32
(
dev
,
0x408904
,
0x02000001
);
nv_wr32
(
dev
,
0x408908
,
0x00c80929
);
}
nv_wr32
(
dev
,
0x40890c
,
0x00000000
);
nv_wr32
(
dev
,
0x408980
,
0x0000011d
);
}
...
...
@@ -1572,7 +1611,7 @@ nvc0_grctx_generate_gpc(struct drm_device *dev)
nv_wr32
(
dev
,
0x418408
,
0x00000000
);
nv_wr32
(
dev
,
0x41840c
,
0x00001008
);
nv_wr32
(
dev
,
0x418410
,
0x0fff0fff
);
nv_wr32
(
dev
,
0x418414
,
0x00
200fff
);
nv_wr32
(
dev
,
0x418414
,
chipset
!=
0xd9
?
0x00200fff
:
0x02
200fff
);
nv_wr32
(
dev
,
0x418450
,
0x00000000
);
nv_wr32
(
dev
,
0x418454
,
0x00000000
);
nv_wr32
(
dev
,
0x418458
,
0x00000000
);
...
...
@@ -1587,14 +1626,17 @@ nvc0_grctx_generate_gpc(struct drm_device *dev)
nv_wr32
(
dev
,
0x418700
,
0x00000002
);
nv_wr32
(
dev
,
0x418704
,
0x00000080
);
nv_wr32
(
dev
,
0x418708
,
0x00000000
);
nv_wr32
(
dev
,
0x41870c
,
0x07c8
0000
);
nv_wr32
(
dev
,
0x41870c
,
chipset
!=
0xd9
?
0x07c80000
:
0x0000
0000
);
nv_wr32
(
dev
,
0x418710
,
0x00000000
);
nv_wr32
(
dev
,
0x418800
,
0x0
006860a
);
nv_wr32
(
dev
,
0x418800
,
chipset
!=
0xd9
?
0x0006860a
:
0x7
006860a
);
nv_wr32
(
dev
,
0x418808
,
0x00000000
);
nv_wr32
(
dev
,
0x41880c
,
0x00000000
);
nv_wr32
(
dev
,
0x418810
,
0x00000000
);
nv_wr32
(
dev
,
0x418828
,
0x00008442
);
nv_wr32
(
dev
,
0x418830
,
chipset
!=
0xc1
?
0x00000001
:
0x10000001
);
if
(
chipset
==
0xc1
||
chipset
==
0xd9
)
nv_wr32
(
dev
,
0x418830
,
0x10000001
);
else
nv_wr32
(
dev
,
0x418830
,
0x00000001
);
nv_wr32
(
dev
,
0x4188d8
,
0x00000008
);
nv_wr32
(
dev
,
0x4188e0
,
0x01000000
);
nv_wr32
(
dev
,
0x4188e8
,
0x00000000
);
...
...
@@ -1602,7 +1644,12 @@ nvc0_grctx_generate_gpc(struct drm_device *dev)
nv_wr32
(
dev
,
0x4188f0
,
0x00000000
);
nv_wr32
(
dev
,
0x4188f4
,
0x00000000
);
nv_wr32
(
dev
,
0x4188f8
,
0x00000000
);
nv_wr32
(
dev
,
0x4188fc
,
chipset
!=
0xc1
?
0x00100000
:
0x00100018
);
if
(
chipset
==
0xd9
)
nv_wr32
(
dev
,
0x4188fc
,
0x20100008
);
else
if
(
chipset
==
0xc1
)
nv_wr32
(
dev
,
0x4188fc
,
0x00100018
);
else
nv_wr32
(
dev
,
0x4188fc
,
0x00100000
);
nv_wr32
(
dev
,
0x41891c
,
0x00ff00ff
);
nv_wr32
(
dev
,
0x418924
,
0x00000000
);
nv_wr32
(
dev
,
0x418928
,
0x00ffff00
);
...
...
@@ -1616,7 +1663,7 @@ nvc0_grctx_generate_gpc(struct drm_device *dev)
nv_wr32
(
dev
,
0x418a14
+
(
i
*
0x20
),
0x00000000
);
nv_wr32
(
dev
,
0x418a18
+
(
i
*
0x20
),
0x00000000
);
}
nv_wr32
(
dev
,
0x418b00
,
0x00000000
);
nv_wr32
(
dev
,
0x418b00
,
chipset
!=
0xd9
?
0x00000000
:
0x00000006
);
nv_wr32
(
dev
,
0x418b08
,
0x0a418820
);
nv_wr32
(
dev
,
0x418b0c
,
0x062080e6
);
nv_wr32
(
dev
,
0x418b10
,
0x020398a4
);
...
...
@@ -1633,7 +1680,7 @@ nvc0_grctx_generate_gpc(struct drm_device *dev)
nv_wr32
(
dev
,
0x418c24
,
0x00000000
);
nv_wr32
(
dev
,
0x418c28
,
0x00000000
);
nv_wr32
(
dev
,
0x418c2c
,
0x00000000
);
if
(
chipset
==
0xc1
)
if
(
chipset
==
0xc1
||
chipset
==
0xd9
)
nv_wr32
(
dev
,
0x418c6c
,
0x00000001
);
nv_wr32
(
dev
,
0x418c80
,
0x20200004
);
nv_wr32
(
dev
,
0x418c8c
,
0x00000001
);
...
...
@@ -1653,7 +1700,10 @@ nvc0_grctx_generate_tp(struct drm_device *dev)
nv_wr32
(
dev
,
0x419818
,
0x00000000
);
nv_wr32
(
dev
,
0x41983c
,
0x00038bc7
);
nv_wr32
(
dev
,
0x419848
,
0x00000000
);
nv_wr32
(
dev
,
0x419864
,
chipset
!=
0xc1
?
0x0000012a
:
0x00000129
);
if
(
chipset
==
0xc1
||
chipset
==
0xd9
)
nv_wr32
(
dev
,
0x419864
,
0x00000129
);
else
nv_wr32
(
dev
,
0x419864
,
0x0000012a
);
nv_wr32
(
dev
,
0x419888
,
0x00000000
);
nv_wr32
(
dev
,
0x419a00
,
0x000001f0
);
nv_wr32
(
dev
,
0x419a04
,
0x00000001
);
...
...
@@ -1663,7 +1713,9 @@ nvc0_grctx_generate_tp(struct drm_device *dev)
nv_wr32
(
dev
,
0x419a14
,
0x00000200
);
nv_wr32
(
dev
,
0x419a1c
,
0x00000000
);
nv_wr32
(
dev
,
0x419a20
,
0x00000800
);
if
(
chipset
!=
0xc0
&&
chipset
!=
0xc8
)
if
(
chipset
==
0xd9
)
nv_wr32
(
dev
,
0x00419ac4
,
0x0017f440
);
else
if
(
chipset
!=
0xc0
&&
chipset
!=
0xc8
)
nv_wr32
(
dev
,
0x00419ac4
,
0x0007f440
);
nv_wr32
(
dev
,
0x419b00
,
0x0a418820
);
nv_wr32
(
dev
,
0x419b04
,
0x062080e6
);
...
...
@@ -1672,21 +1724,33 @@ nvc0_grctx_generate_tp(struct drm_device *dev)
nv_wr32
(
dev
,
0x419b10
,
0x0a418820
);
nv_wr32
(
dev
,
0x419b14
,
0x000000e6
);
nv_wr32
(
dev
,
0x419bd0
,
0x00900103
);
nv_wr32
(
dev
,
0x419be0
,
chipset
!=
0xc1
?
0x00000001
:
0x00400001
);
if
(
chipset
==
0xc1
||
chipset
==
0xd9
)
nv_wr32
(
dev
,
0x419be0
,
0x00400001
);
else
nv_wr32
(
dev
,
0x419be0
,
0x00000001
);
nv_wr32
(
dev
,
0x419be4
,
0x00000000
);
nv_wr32
(
dev
,
0x419c00
,
0x00000002
);
nv_wr32
(
dev
,
0x419c00
,
chipset
!=
0xd9
?
0x00000002
:
0x0000000a
);
nv_wr32
(
dev
,
0x419c04
,
0x00000006
);
nv_wr32
(
dev
,
0x419c08
,
0x00000002
);
nv_wr32
(
dev
,
0x419c20
,
0x00000000
);
if
(
chipset
==
0xce
||
chipset
==
0xcf
)
if
(
dev_priv
->
chipset
==
0xd9
)
{
nv_wr32
(
dev
,
0x419c24
,
0x00084210
);
nv_wr32
(
dev
,
0x419c28
,
0x3cf3cf3c
);
nv_wr32
(
dev
,
0x419cb0
,
0x00020048
);
else
}
else
if
(
chipset
==
0xce
||
chipset
==
0xcf
)
{
nv_wr32
(
dev
,
0x419cb0
,
0x00020048
);
}
else
{
nv_wr32
(
dev
,
0x419cb0
,
0x00060048
);
}
nv_wr32
(
dev
,
0x419ce8
,
0x00000000
);
nv_wr32
(
dev
,
0x419cf4
,
0x00000183
);
nv_wr32
(
dev
,
0x419d20
,
chipset
!=
0xc1
?
0x02180000
:
0x12180000
);
if
(
chipset
==
0xc1
||
chipset
==
0xd9
)
nv_wr32
(
dev
,
0x419d20
,
0x12180000
);
else
nv_wr32
(
dev
,
0x419d20
,
0x02180000
);
nv_wr32
(
dev
,
0x419d24
,
0x00001fff
);
if
(
chipset
==
0xc1
)
if
(
chipset
==
0xc1
||
chipset
==
0xd9
)
nv_wr32
(
dev
,
0x419d44
,
0x02180218
);
nv_wr32
(
dev
,
0x419e04
,
0x00000000
);
nv_wr32
(
dev
,
0x419e08
,
0x00000000
);
...
...
@@ -1986,6 +2050,10 @@ nvc0_grctx_generate(struct nouveau_channel *chan)
nv_icmd
(
dev
,
0x00000215
,
0x00000040
);
nv_icmd
(
dev
,
0x00000216
,
0x00000040
);
nv_icmd
(
dev
,
0x00000217
,
0x00000040
);
if
(
dev_priv
->
chipset
==
0xd9
)
{
for
(
i
=
0x0400
;
i
<=
0x0417
;
i
++
)
nv_icmd
(
dev
,
i
,
0x00000040
);
}
nv_icmd
(
dev
,
0x00000218
,
0x0000c080
);
nv_icmd
(
dev
,
0x00000219
,
0x0000c080
);
nv_icmd
(
dev
,
0x0000021a
,
0x0000c080
);
...
...
@@ -1994,6 +2062,10 @@ nvc0_grctx_generate(struct nouveau_channel *chan)
nv_icmd
(
dev
,
0x0000021d
,
0x0000c080
);
nv_icmd
(
dev
,
0x0000021e
,
0x0000c080
);
nv_icmd
(
dev
,
0x0000021f
,
0x0000c080
);
if
(
dev_priv
->
chipset
==
0xd9
)
{
for
(
i
=
0x0440
;
i
<=
0x0457
;
i
++
)
nv_icmd
(
dev
,
i
,
0x0000c080
);
}
nv_icmd
(
dev
,
0x000000ad
,
0x0000013e
);
nv_icmd
(
dev
,
0x000000e1
,
0x00000010
);
nv_icmd
(
dev
,
0x00000290
,
0x00000000
);
...
...
@@ -2556,7 +2628,8 @@ nvc0_grctx_generate(struct nouveau_channel *chan)
nv_icmd
(
dev
,
0x0000053f
,
0xffff0000
);
nv_icmd
(
dev
,
0x00000585
,
0x0000003f
);
nv_icmd
(
dev
,
0x00000576
,
0x00000003
);
if
(
dev_priv
->
chipset
==
0xc1
)
if
(
dev_priv
->
chipset
==
0xc1
||
dev_priv
->
chipset
==
0xd9
)
nv_icmd
(
dev
,
0x0000057b
,
0x00000059
);
nv_icmd
(
dev
,
0x00000586
,
0x00000040
);
nv_icmd
(
dev
,
0x00000582
,
0x00000080
);
...
...
@@ -2658,6 +2731,8 @@ nvc0_grctx_generate(struct nouveau_channel *chan)
nv_icmd
(
dev
,
0x00000957
,
0x00000003
);
nv_icmd
(
dev
,
0x0000095e
,
0x20164010
);
nv_icmd
(
dev
,
0x0000095f
,
0x00000020
);
if
(
dev_priv
->
chipset
==
0xd9
)
nv_icmd
(
dev
,
0x0000097d
,
0x00000020
);
nv_icmd
(
dev
,
0x00000683
,
0x00000006
);
nv_icmd
(
dev
,
0x00000685
,
0x003fffff
);
nv_icmd
(
dev
,
0x00000687
,
0x00000c48
);
...
...
drivers/gpu/drm/nouveau/nvc0_grgpc.fuc
浏览文件 @
06784090
...
...
@@ -82,6 +82,11 @@ chipsets:
.b16 #nvc0_gpc_mmio_tail
.b16 #nvc0_tpc_mmio_head
.b16 #nvcf_tpc_mmio_tail
.b8 0xd9 0 0 0
.b16 #nvd9_gpc_mmio_head
.b16 #nvd9_gpc_mmio_tail
.b16 #nvd9_tpc_mmio_head
.b16 #nvd9_tpc_mmio_tail
.b8 0 0 0 0
// GPC mmio lists
...
...
@@ -114,6 +119,35 @@ nvc0_gpc_mmio_tail:
mmctx_data(0x000c6c, 1);
nvc1_gpc_mmio_tail:
nvd9_gpc_mmio_head:
mmctx_data(0x000380, 1)
mmctx_data(0x000400, 2)
mmctx_data(0x00040c, 3)
mmctx_data(0x000450, 9)
mmctx_data(0x000600, 1)
mmctx_data(0x000684, 1)
mmctx_data(0x000700, 5)
mmctx_data(0x000800, 1)
mmctx_data(0x000808, 3)
mmctx_data(0x000828, 1)
mmctx_data(0x000830, 1)
mmctx_data(0x0008d8, 1)
mmctx_data(0x0008e0, 1)
mmctx_data(0x0008e8, 6)
mmctx_data(0x00091c, 1)
mmctx_data(0x000924, 3)
mmctx_data(0x000b00, 1)
mmctx_data(0x000b08, 6)
mmctx_data(0x000bb8, 1)
mmctx_data(0x000c08, 1)
mmctx_data(0x000c10, 8)
mmctx_data(0x000c6c, 1)
mmctx_data(0x000c80, 1)
mmctx_data(0x000c8c, 1)
mmctx_data(0x001000, 3)
mmctx_data(0x001014, 1)
nvd9_gpc_mmio_tail:
// TPC mmio lists
nvc0_tpc_mmio_head:
mmctx_data(0x000018, 1)
...
...
@@ -146,6 +180,31 @@ nvc3_tpc_mmio_tail:
mmctx_data(0x000544, 1)
nvc1_tpc_mmio_tail:
nvd9_tpc_mmio_head:
mmctx_data(0x000018, 1)
mmctx_data(0x00003c, 1)
mmctx_data(0x000048, 1)
mmctx_data(0x000064, 1)
mmctx_data(0x000088, 1)
mmctx_data(0x000200, 6)
mmctx_data(0x00021c, 2)
mmctx_data(0x0002c4, 1)
mmctx_data(0x000300, 6)
mmctx_data(0x0003d0, 1)
mmctx_data(0x0003e0, 2)
mmctx_data(0x000400, 3)
mmctx_data(0x000420, 3)
mmctx_data(0x0004b0, 1)
mmctx_data(0x0004e8, 1)
mmctx_data(0x0004f4, 1)
mmctx_data(0x000520, 2)
mmctx_data(0x000544, 1)
mmctx_data(0x000604, 4)
mmctx_data(0x000644, 20)
mmctx_data(0x000698, 1)
mmctx_data(0x0006e0, 1)
mmctx_data(0x000750, 3)
nvd9_tpc_mmio_tail:
.section #nvc0_grgpc_code
bra #init
...
...
drivers/gpu/drm/nouveau/nvc0_grgpc.fuc.h
浏览文件 @
06784090
...
...
@@ -25,26 +25,29 @@ uint32_t nvc0_grgpc_data[] = {
0x00000000
,
0x00000000
,
0x000000c0
,
0x01
1c00bc
,
0x01
700120
,
0x01
2800c8
,
0x01
e40194
,
0x000000c1
,
0x012
000bc
,
0x01
840120
,
0x012
c00c8
,
0x01
f80194
,
0x000000c3
,
0x01
1c00bc
,
0x01
800120
,
0x01
2800c8
,
0x01
f40194
,
0x000000c4
,
0x01
1c00bc
,
0x01
800120
,
0x01
2800c8
,
0x01
f40194
,
0x000000c8
,
0x01
1c00bc
,
0x01
700120
,
0x01
2800c8
,
0x01
e40194
,
0x000000ce
,
0x01
1c00bc
,
0x01
800120
,
0x01
2800c8
,
0x01
f40194
,
0x000000cf
,
0x011c00bc
,
0x017c0120
,
0x012800c8
,
0x01f00194
,
0x000000d9
,
0x0194012c
,
0x025401f8
,
0x00000000
,
0x00000380
,
0x14000400
,
...
...
@@ -71,6 +74,32 @@ uint32_t nvc0_grgpc_data[] = {
0x08001000
,
0x00001014
,
0x00000c6c
,
0x00000380
,
0x04000400
,
0x0800040c
,
0x20000450
,
0x00000600
,
0x00000684
,
0x10000700
,
0x00000800
,
0x08000808
,
0x00000828
,
0x00000830
,
0x000008d8
,
0x000008e0
,
0x140008e8
,
0x0000091c
,
0x08000924
,
0x00000b00
,
0x14000b08
,
0x00000bb8
,
0x00000c08
,
0x1c000c10
,
0x00000c6c
,
0x00000c80
,
0x00000c8c
,
0x08001000
,
0x00001014
,
0x00000018
,
0x0000003c
,
0x00000048
,
...
...
@@ -96,6 +125,29 @@ uint32_t nvc0_grgpc_data[] = {
0x000006e0
,
0x000004bc
,
0x00000544
,
0x00000018
,
0x0000003c
,
0x00000048
,
0x00000064
,
0x00000088
,
0x14000200
,
0x0400021c
,
0x000002c4
,
0x14000300
,
0x000003d0
,
0x040003e0
,
0x08000400
,
0x08000420
,
0x000004b0
,
0x000004e8
,
0x000004f4
,
0x04000520
,
0x00000544
,
0x0c000604
,
0x4c000644
,
0x00000698
,
0x000006e0
,
0x08000750
,
};
uint32_t
nvc0_grgpc_code
[]
=
{
...
...
drivers/gpu/drm/nouveau/nvc0_grhub.fuc
浏览文件 @
06784090
...
...
@@ -59,6 +59,9 @@ chipsets:
.b8 0xcf 0 0 0
.b16 #nvc0_hub_mmio_head
.b16 #nvc0_hub_mmio_tail
.b8 0xd9 0 0 0
.b16 #nvd9_hub_mmio_head
.b16 #nvd9_hub_mmio_tail
.b8 0 0 0 0
nvc0_hub_mmio_head:
...
...
@@ -105,6 +108,48 @@ nvc0_hub_mmio_tail:
mmctx_data(0x4064c0, 2)
nvc1_hub_mmio_tail:
nvd9_hub_mmio_head:
mmctx_data(0x17e91c, 2)
mmctx_data(0x400204, 2)
mmctx_data(0x404004, 10)
mmctx_data(0x404044, 1)
mmctx_data(0x404094, 14)
mmctx_data(0x4040d0, 7)
mmctx_data(0x4040f8, 1)
mmctx_data(0x404130, 3)
mmctx_data(0x404150, 3)
mmctx_data(0x404164, 2)
mmctx_data(0x404178, 2)
mmctx_data(0x404200, 8)
mmctx_data(0x404404, 14)
mmctx_data(0x404460, 4)
mmctx_data(0x404480, 1)
mmctx_data(0x404498, 1)
mmctx_data(0x404604, 4)
mmctx_data(0x404618, 32)
mmctx_data(0x404698, 21)
mmctx_data(0x4046f0, 2)
mmctx_data(0x404700, 22)
mmctx_data(0x405800, 1)
mmctx_data(0x405830, 3)
mmctx_data(0x405854, 1)
mmctx_data(0x405870, 4)
mmctx_data(0x405a00, 2)
mmctx_data(0x405a18, 1)
mmctx_data(0x406020, 1)
mmctx_data(0x406028, 4)
mmctx_data(0x4064a8, 2)
mmctx_data(0x4064b4, 5)
mmctx_data(0x407804, 1)
mmctx_data(0x40780c, 6)
mmctx_data(0x4078bc, 1)
mmctx_data(0x408000, 7)
mmctx_data(0x408064, 1)
mmctx_data(0x408800, 3)
mmctx_data(0x408900, 4)
mmctx_data(0x408980, 1)
nvd9_hub_mmio_tail:
.align 256
chan_data:
chan_mmio_count: .b32 0
...
...
drivers/gpu/drm/nouveau/nvc0_grhub.fuc.h
浏览文件 @
06784090
...
...
@@ -23,19 +23,21 @@ uint32_t nvc0_grhub_data[] = {
0x00000000
,
0x00000000
,
0x000000c0
,
0x013
40098
,
0x013
c00a0
,
0x000000c1
,
0x01
380098
,
0x01
4000a0
,
0x000000c3
,
0x013
40098
,
0x013
c00a0
,
0x000000c4
,
0x013
40098
,
0x013
c00a0
,
0x000000c8
,
0x013
40098
,
0x013
c00a0
,
0x000000ce
,
0x013
40098
,
0x013
c00a0
,
0x000000cf
,
0x01340098
,
0x013c00a0
,
0x000000d9
,
0x01dc0140
,
0x00000000
,
0x0417e91c
,
0x04400204
,
...
...
@@ -77,47 +79,45 @@ uint32_t nvc0_grhub_data[] = {
0x0c408900
,
0x00408980
,
0x044064c0
,
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
,
0x0417e91c
,
0x04400204
,
0x24404004
,
0x00404044
,
0x34404094
,
0x184040d0
,
0x004040f8
,
0x08404130
,
0x08404150
,
0x04404164
,
0x04404178
,
0x1c404200
,
0x34404404
,
0x0c404460
,
0x00404480
,
0x00404498
,
0x0c404604
,
0x7c404618
,
0x50404698
,
0x044046f0
,
0x54404700
,
0x00405800
,
0x08405830
,
0x00405854
,
0x0c405870
,
0x04405a00
,
0x00405a18
,
0x00406020
,
0x0c406028
,
0x044064a8
,
0x104064b4
,
0x00407804
,
0x1440780c
,
0x004078bc
,
0x18408000
,
0x00408064
,
0x08408800
,
0x0c408900
,
0x00408980
,
0x00000000
,
0x00000000
,
0x00000000
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录