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