0001
0002 #ifndef __NVBIOS_RAMCFG_H__
0003 #define __NVBIOS_RAMCFG_H__
0004 struct nvbios_ramcfg {
0005 unsigned rammap_ver;
0006 unsigned rammap_hdr;
0007 unsigned rammap_min;
0008 unsigned rammap_max;
0009 union {
0010 struct {
0011 unsigned rammap_00_16_20:1;
0012 unsigned rammap_00_16_40:1;
0013 unsigned rammap_00_17_02:1;
0014 };
0015 struct {
0016 unsigned rammap_10_04_02:1;
0017 unsigned rammap_10_04_08:1;
0018 };
0019 struct {
0020 unsigned rammap_11_08_01:1;
0021 unsigned rammap_11_08_0c:2;
0022 unsigned rammap_11_08_10:1;
0023 unsigned rammap_11_09_01ff:9;
0024 unsigned rammap_11_0a_03fe:9;
0025 unsigned rammap_11_0a_0400:1;
0026 unsigned rammap_11_0a_0800:1;
0027 unsigned rammap_11_0b_01f0:5;
0028 unsigned rammap_11_0b_0200:1;
0029 unsigned rammap_11_0b_0400:1;
0030 unsigned rammap_11_0b_0800:1;
0031 unsigned rammap_11_0d:8;
0032 unsigned rammap_11_0e:8;
0033 unsigned rammap_11_0f:8;
0034 unsigned rammap_11_11_0c:2;
0035 };
0036 };
0037
0038 unsigned ramcfg_ver;
0039 unsigned ramcfg_hdr;
0040 unsigned ramcfg_timing;
0041 unsigned ramcfg_DLLoff;
0042 unsigned ramcfg_RON;
0043 unsigned ramcfg_FBVDDQ;
0044 union {
0045 struct {
0046 unsigned ramcfg_00_03_01:1;
0047 unsigned ramcfg_00_03_02:1;
0048 unsigned ramcfg_00_03_08:1;
0049 unsigned ramcfg_00_03_10:1;
0050 unsigned ramcfg_00_04_02:1;
0051 unsigned ramcfg_00_04_04:1;
0052 unsigned ramcfg_00_04_20:1;
0053 unsigned ramcfg_00_05:8;
0054 unsigned ramcfg_00_06:8;
0055 unsigned ramcfg_00_07:8;
0056 unsigned ramcfg_00_08:8;
0057 unsigned ramcfg_00_09:8;
0058 unsigned ramcfg_00_0a_0f:4;
0059 unsigned ramcfg_00_0a_f0:4;
0060 };
0061 struct {
0062 unsigned ramcfg_10_02_01:1;
0063 unsigned ramcfg_10_02_02:1;
0064 unsigned ramcfg_10_02_04:1;
0065 unsigned ramcfg_10_02_08:1;
0066 unsigned ramcfg_10_02_10:1;
0067 unsigned ramcfg_10_02_20:1;
0068 unsigned ramcfg_10_03_0f:4;
0069 unsigned ramcfg_10_04_01:1;
0070 unsigned ramcfg_10_05:8;
0071 unsigned ramcfg_10_06:8;
0072 unsigned ramcfg_10_07:8;
0073 unsigned ramcfg_10_08:8;
0074 unsigned ramcfg_10_09_0f:4;
0075 unsigned ramcfg_10_09_f0:4;
0076 };
0077 struct {
0078 unsigned ramcfg_11_01_01:1;
0079 unsigned ramcfg_11_01_02:1;
0080 unsigned ramcfg_11_01_04:1;
0081 unsigned ramcfg_11_01_08:1;
0082 unsigned ramcfg_11_01_10:1;
0083 unsigned ramcfg_11_01_40:1;
0084 unsigned ramcfg_11_01_80:1;
0085 unsigned ramcfg_11_02_03:2;
0086 unsigned ramcfg_11_02_04:1;
0087 unsigned ramcfg_11_02_08:1;
0088 unsigned ramcfg_11_02_10:1;
0089 unsigned ramcfg_11_02_40:1;
0090 unsigned ramcfg_11_02_80:1;
0091 unsigned ramcfg_11_03_0f:4;
0092 unsigned ramcfg_11_03_30:2;
0093 unsigned ramcfg_11_03_c0:2;
0094 unsigned ramcfg_11_03_f0:4;
0095 unsigned ramcfg_11_04:8;
0096 unsigned ramcfg_11_06:8;
0097 unsigned ramcfg_11_07_02:1;
0098 unsigned ramcfg_11_07_04:1;
0099 unsigned ramcfg_11_07_08:1;
0100 unsigned ramcfg_11_07_10:1;
0101 unsigned ramcfg_11_07_40:1;
0102 unsigned ramcfg_11_07_80:1;
0103 unsigned ramcfg_11_08_01:1;
0104 unsigned ramcfg_11_08_02:1;
0105 unsigned ramcfg_11_08_04:1;
0106 unsigned ramcfg_11_08_08:1;
0107 unsigned ramcfg_11_08_10:1;
0108 unsigned ramcfg_11_08_20:1;
0109 unsigned ramcfg_11_09:8;
0110 };
0111 };
0112
0113 unsigned timing_ver;
0114 unsigned timing_hdr;
0115 unsigned timing[11];
0116 union {
0117 struct {
0118 unsigned timing_10_WR:8;
0119 unsigned timing_10_WTR:8;
0120 unsigned timing_10_CL:8;
0121 unsigned timing_10_RC:8;
0122
0123 unsigned timing_10_RFC:8;
0124
0125 unsigned timing_10_RAS:8;
0126
0127 unsigned timing_10_RP:8;
0128 unsigned timing_10_RCDRD:8;
0129 unsigned timing_10_RCDWR:8;
0130 unsigned timing_10_RRD:8;
0131 unsigned timing_10_13:8;
0132 unsigned timing_10_ODT:3;
0133
0134 unsigned timing_10_16:8;
0135
0136 unsigned timing_10_18:8;
0137 unsigned timing_10_CWL:8;
0138 unsigned timing_10_20:8;
0139 unsigned timing_10_21:8;
0140
0141 unsigned timing_10_24:8;
0142 };
0143 struct {
0144 unsigned timing_20_2e_03:2;
0145 unsigned timing_20_2e_30:2;
0146 unsigned timing_20_2e_c0:2;
0147 unsigned timing_20_2f_03:2;
0148 unsigned timing_20_2c_003f:6;
0149 unsigned timing_20_2c_1fc0:7;
0150 unsigned timing_20_30_f8:5;
0151 unsigned timing_20_30_07:3;
0152 unsigned timing_20_31_0007:3;
0153 unsigned timing_20_31_0078:4;
0154 unsigned timing_20_31_0780:4;
0155 unsigned timing_20_31_0800:1;
0156 unsigned timing_20_31_7000:3;
0157 unsigned timing_20_31_8000:1;
0158 };
0159 };
0160 };
0161
0162 u8 nvbios_ramcfg_count(struct nvkm_bios *);
0163 u8 nvbios_ramcfg_index(struct nvkm_subdev *);
0164 #endif