]> git.proxmox.com Git - mirror_ubuntu-disco-kernel.git/blame - drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/ramcfg.h
UBUNTU: Ubuntu-5.0.0-29.31
[mirror_ubuntu-disco-kernel.git] / drivers / gpu / drm / nouveau / include / nvkm / subdev / bios / ramcfg.h
CommitLineData
b2441318 1/* SPDX-License-Identifier: GPL-2.0 */
0a0dc8f5
BS
2#ifndef __NVBIOS_RAMCFG_H__
3#define __NVBIOS_RAMCFG_H__
b655f2bb 4struct nvbios_ramcfg {
d9b5f261
BS
5 unsigned rammap_ver;
6 unsigned rammap_hdr;
7 unsigned rammap_min;
8 unsigned rammap_max;
c378eb74 9 union {
2813e19f
RS
10 struct {
11 unsigned rammap_00_16_20:1;
12 unsigned rammap_00_16_40:1;
13 unsigned rammap_00_17_02:1;
14 };
c378eb74
BS
15 struct {
16 unsigned rammap_10_04_02:1;
17 unsigned rammap_10_04_08:1;
18 };
19 struct {
20 unsigned rammap_11_08_01:1;
21 unsigned rammap_11_08_0c:2;
22 unsigned rammap_11_08_10:1;
23 unsigned rammap_11_09_01ff:9;
24 unsigned rammap_11_0a_03fe:9;
25 unsigned rammap_11_0a_0400:1;
26 unsigned rammap_11_0a_0800:1;
27 unsigned rammap_11_0b_01f0:5;
28 unsigned rammap_11_0b_0200:1;
29 unsigned rammap_11_0b_0400:1;
30 unsigned rammap_11_0b_0800:1;
31 unsigned rammap_11_0d:8;
32 unsigned rammap_11_0e:8;
33 unsigned rammap_11_0f:8;
34 unsigned rammap_11_11_0c:2;
35 };
36 };
b655f2bb 37
d9b5f261
BS
38 unsigned ramcfg_ver;
39 unsigned ramcfg_hdr;
40 unsigned ramcfg_timing;
7164f4c5 41 unsigned ramcfg_DLLoff;
c25bf7b6 42 unsigned ramcfg_RON;
ef6e8f4c 43 unsigned ramcfg_FBVDDQ;
c378eb74 44 union {
35fe024a
RS
45 struct {
46 unsigned ramcfg_00_03_01:1;
47 unsigned ramcfg_00_03_02:1;
48 unsigned ramcfg_00_03_08:1;
49 unsigned ramcfg_00_03_10:1;
50 unsigned ramcfg_00_04_02:1;
51 unsigned ramcfg_00_04_04:1;
52 unsigned ramcfg_00_04_20:1;
53 unsigned ramcfg_00_05:8;
54 unsigned ramcfg_00_06:8;
55 unsigned ramcfg_00_07:8;
56 unsigned ramcfg_00_08:8;
57 unsigned ramcfg_00_09:8;
58 unsigned ramcfg_00_0a_0f:4;
59 unsigned ramcfg_00_0a_f0:4;
60 };
c378eb74
BS
61 struct {
62 unsigned ramcfg_10_02_01:1;
63 unsigned ramcfg_10_02_02:1;
64 unsigned ramcfg_10_02_04:1;
65 unsigned ramcfg_10_02_08:1;
66 unsigned ramcfg_10_02_10:1;
67 unsigned ramcfg_10_02_20:1;
c378eb74 68 unsigned ramcfg_10_03_0f:4;
b6a7907f 69 unsigned ramcfg_10_04_01:1;
c378eb74
BS
70 unsigned ramcfg_10_05:8;
71 unsigned ramcfg_10_06:8;
72 unsigned ramcfg_10_07:8;
73 unsigned ramcfg_10_08:8;
74 unsigned ramcfg_10_09_0f:4;
75 unsigned ramcfg_10_09_f0:4;
76 };
77 struct {
78 unsigned ramcfg_11_01_01:1;
79 unsigned ramcfg_11_01_02:1;
80 unsigned ramcfg_11_01_04:1;
81 unsigned ramcfg_11_01_08:1;
82 unsigned ramcfg_11_01_10:1;
c378eb74
BS
83 unsigned ramcfg_11_01_40:1;
84 unsigned ramcfg_11_01_80:1;
85 unsigned ramcfg_11_02_03:2;
86 unsigned ramcfg_11_02_04:1;
87 unsigned ramcfg_11_02_08:1;
88 unsigned ramcfg_11_02_10:1;
89 unsigned ramcfg_11_02_40:1;
90 unsigned ramcfg_11_02_80:1;
91 unsigned ramcfg_11_03_0f:4;
92 unsigned ramcfg_11_03_30:2;
93 unsigned ramcfg_11_03_c0:2;
94 unsigned ramcfg_11_03_f0:4;
95 unsigned ramcfg_11_04:8;
96 unsigned ramcfg_11_06:8;
97 unsigned ramcfg_11_07_02:1;
98 unsigned ramcfg_11_07_04:1;
99 unsigned ramcfg_11_07_08:1;
100 unsigned ramcfg_11_07_10:1;
101 unsigned ramcfg_11_07_40:1;
102 unsigned ramcfg_11_07_80:1;
103 unsigned ramcfg_11_08_01:1;
104 unsigned ramcfg_11_08_02:1;
105 unsigned ramcfg_11_08_04:1;
106 unsigned ramcfg_11_08_08:1;
107 unsigned ramcfg_11_08_10:1;
108 unsigned ramcfg_11_08_20:1;
109 unsigned ramcfg_11_09:8;
110 };
111 };
b655f2bb 112
d9b5f261
BS
113 unsigned timing_ver;
114 unsigned timing_hdr;
b655f2bb 115 unsigned timing[11];
c378eb74
BS
116 union {
117 struct {
118 unsigned timing_10_WR:8;
bf504b3f 119 unsigned timing_10_WTR:8;
c378eb74 120 unsigned timing_10_CL:8;
bf504b3f
RS
121 unsigned timing_10_RC:8;
122 /*empty: 4 */
123 unsigned timing_10_RFC:8; /* Byte 5 */
124 /*empty: 6 */
125 unsigned timing_10_RAS:8; /* Byte 7 */
126 /*empty: 8 */
127 unsigned timing_10_RP:8; /* Byte 9 */
128 unsigned timing_10_RCDRD:8;
129 unsigned timing_10_RCDWR:8;
130 unsigned timing_10_RRD:8;
131 unsigned timing_10_13:8;
c378eb74 132 unsigned timing_10_ODT:3;
bf504b3f
RS
133 /* empty: 15 */
134 unsigned timing_10_16:8;
135 /* empty: 17 */
136 unsigned timing_10_18:8;
c378eb74 137 unsigned timing_10_CWL:8;
bf504b3f
RS
138 unsigned timing_10_20:8;
139 unsigned timing_10_21:8;
140 /* empty: 22, 23 */
141 unsigned timing_10_24:8;
c378eb74
BS
142 };
143 struct {
144 unsigned timing_20_2e_03:2;
145 unsigned timing_20_2e_30:2;
146 unsigned timing_20_2e_c0:2;
147 unsigned timing_20_2f_03:2;
148 unsigned timing_20_2c_003f:6;
149 unsigned timing_20_2c_1fc0:7;
150 unsigned timing_20_30_f8:5;
151 unsigned timing_20_30_07:3;
152 unsigned timing_20_31_0007:3;
153 unsigned timing_20_31_0078:4;
154 unsigned timing_20_31_0780:4;
155 unsigned timing_20_31_0800:1;
156 unsigned timing_20_31_7000:3;
157 unsigned timing_20_31_8000:1;
158 };
159 };
b655f2bb
BS
160};
161
d390b480
BS
162u8 nvbios_ramcfg_count(struct nvkm_bios *);
163u8 nvbios_ramcfg_index(struct nvkm_subdev *);
0a0dc8f5 164#endif