linux/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/ramcfg.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: MIT */
   2#ifndef __NVBIOS_RAMCFG_H__
   3#define __NVBIOS_RAMCFG_H__
   4struct nvbios_ramcfg {
   5        unsigned rammap_ver;
   6        unsigned rammap_hdr;
   7        unsigned rammap_min;
   8        unsigned rammap_max;
   9        union {
  10                struct {
  11                        unsigned rammap_00_16_20:1;
  12                        unsigned rammap_00_16_40:1;
  13                        unsigned rammap_00_17_02:1;
  14                };
  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        };
  37
  38        unsigned ramcfg_ver;
  39        unsigned ramcfg_hdr;
  40        unsigned ramcfg_timing;
  41        unsigned ramcfg_DLLoff;
  42        unsigned ramcfg_RON;
  43        unsigned ramcfg_FBVDDQ;
  44        union {
  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                };
  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;
  68                        unsigned ramcfg_10_03_0f:4;
  69                        unsigned ramcfg_10_04_01:1;
  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;
  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        };
 112
 113        unsigned timing_ver;
 114        unsigned timing_hdr;
 115        unsigned timing[11];
 116        union {
 117                struct {
 118                        unsigned timing_10_WR:8;
 119                        unsigned timing_10_WTR:8;
 120                        unsigned timing_10_CL:8;
 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;
 132                        unsigned timing_10_ODT:3;
 133                        /* empty: 15 */
 134                        unsigned timing_10_16:8;
 135                        /* empty: 17 */
 136                        unsigned timing_10_18:8;
 137                        unsigned timing_10_CWL:8;
 138                        unsigned timing_10_20:8;
 139                        unsigned timing_10_21:8;
 140                        /* empty: 22, 23 */
 141                        unsigned timing_10_24:8;
 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        };
 160};
 161
 162u8 nvbios_ramcfg_count(struct nvkm_bios *);
 163u8 nvbios_ramcfg_index(struct nvkm_subdev *);
 164#endif
 165