1 #ifndef __NVBIOS_RAMCFG_H__ 2 #define __NVBIOS_RAMCFG_H__ 3 4 struct nouveau_bios; 5 6 struct nvbios_ramcfg { 7 unsigned rammap_ver; 8 unsigned rammap_hdr; 9 unsigned rammap_min; 10 unsigned rammap_max; 11 union { 12 struct { 13 unsigned rammap_10_04_02:1; 14 unsigned rammap_10_04_08:1; 15 }; 16 struct { 17 unsigned rammap_11_08_01:1; 18 unsigned rammap_11_08_0c:2; 19 unsigned rammap_11_08_10:1; 20 unsigned rammap_11_09_01ff:9; 21 unsigned rammap_11_0a_03fe:9; 22 unsigned rammap_11_0a_0400:1; 23 unsigned rammap_11_0a_0800:1; 24 unsigned rammap_11_0b_01f0:5; 25 unsigned rammap_11_0b_0200:1; 26 unsigned rammap_11_0b_0400:1; 27 unsigned rammap_11_0b_0800:1; 28 unsigned rammap_11_0d:8; 29 unsigned rammap_11_0e:8; 30 unsigned rammap_11_0f:8; 31 unsigned rammap_11_11_0c:2; 32 }; 33 }; 34 35 unsigned ramcfg_ver; 36 unsigned ramcfg_hdr; 37 unsigned ramcfg_timing; 38 union { 39 struct { 40 unsigned ramcfg_10_02_01:1; 41 unsigned ramcfg_10_02_02:1; 42 unsigned ramcfg_10_02_04:1; 43 unsigned ramcfg_10_02_08:1; 44 unsigned ramcfg_10_02_10:1; 45 unsigned ramcfg_10_02_20:1; 46 unsigned ramcfg_10_02_40:1; 47 unsigned ramcfg_10_03_0f:4; 48 unsigned ramcfg_10_05:8; 49 unsigned ramcfg_10_06:8; 50 unsigned ramcfg_10_07:8; 51 unsigned ramcfg_10_08:8; 52 unsigned ramcfg_10_09_0f:4; 53 unsigned ramcfg_10_09_f0:4; 54 }; 55 struct { 56 unsigned ramcfg_11_01_01:1; 57 unsigned ramcfg_11_01_02:1; 58 unsigned ramcfg_11_01_04:1; 59 unsigned ramcfg_11_01_08:1; 60 unsigned ramcfg_11_01_10:1; 61 unsigned ramcfg_11_01_20:1; 62 unsigned ramcfg_11_01_40:1; 63 unsigned ramcfg_11_01_80:1; 64 unsigned ramcfg_11_02_03:2; 65 unsigned ramcfg_11_02_04:1; 66 unsigned ramcfg_11_02_08:1; 67 unsigned ramcfg_11_02_10:1; 68 unsigned ramcfg_11_02_40:1; 69 unsigned ramcfg_11_02_80:1; 70 unsigned ramcfg_11_03_0f:4; 71 unsigned ramcfg_11_03_30:2; 72 unsigned ramcfg_11_03_c0:2; 73 unsigned ramcfg_11_03_f0:4; 74 unsigned ramcfg_11_04:8; 75 unsigned ramcfg_11_06:8; 76 unsigned ramcfg_11_07_02:1; 77 unsigned ramcfg_11_07_04:1; 78 unsigned ramcfg_11_07_08:1; 79 unsigned ramcfg_11_07_10:1; 80 unsigned ramcfg_11_07_40:1; 81 unsigned ramcfg_11_07_80:1; 82 unsigned ramcfg_11_08_01:1; 83 unsigned ramcfg_11_08_02:1; 84 unsigned ramcfg_11_08_04:1; 85 unsigned ramcfg_11_08_08:1; 86 unsigned ramcfg_11_08_10:1; 87 unsigned ramcfg_11_08_20:1; 88 unsigned ramcfg_11_09:8; 89 }; 90 }; 91 92 unsigned timing_ver; 93 unsigned timing_hdr; 94 unsigned timing[11]; 95 union { 96 struct { 97 unsigned timing_10_WR:8; 98 unsigned timing_10_CL:8; 99 unsigned timing_10_ODT:3; 100 unsigned timing_10_CWL:8; 101 }; 102 struct { 103 unsigned timing_20_2e_03:2; 104 unsigned timing_20_2e_30:2; 105 unsigned timing_20_2e_c0:2; 106 unsigned timing_20_2f_03:2; 107 unsigned timing_20_2c_003f:6; 108 unsigned timing_20_2c_1fc0:7; 109 unsigned timing_20_30_f8:5; 110 unsigned timing_20_30_07:3; 111 unsigned timing_20_31_0007:3; 112 unsigned timing_20_31_0078:4; 113 unsigned timing_20_31_0780:4; 114 unsigned timing_20_31_0800:1; 115 unsigned timing_20_31_7000:3; 116 unsigned timing_20_31_8000:1; 117 }; 118 }; 119 }; 120 121 u8 nvbios_ramcfg_count(struct nouveau_bios *); 122 u8 nvbios_ramcfg_index(struct nouveau_subdev *); 123 124 #endif 125