0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024 #ifndef AST_TABLES_H
0025 #define AST_TABLES_H
0026
0027
0028 #define TextModeIndex 0
0029 #define EGAModeIndex 1
0030 #define VGAModeIndex 2
0031 #define HiCModeIndex 3
0032 #define TrueCModeIndex 4
0033
0034 #define Charx8Dot 0x00000001
0035 #define HalfDCLK 0x00000002
0036 #define DoubleScanMode 0x00000004
0037 #define LineCompareOff 0x00000008
0038 #define HBorder 0x00000020
0039 #define VBorder 0x00000010
0040 #define WideScreenMode 0x00000100
0041 #define NewModeInfo 0x00000200
0042 #define NHSync 0x00000400
0043 #define PHSync 0x00000800
0044 #define NVSync 0x00001000
0045 #define PVSync 0x00002000
0046 #define SyncPP (PVSync | PHSync)
0047 #define SyncPN (PVSync | NHSync)
0048 #define SyncNP (NVSync | PHSync)
0049 #define SyncNN (NVSync | NHSync)
0050 #define AST2500PreCatchCRT 0x00004000
0051
0052
0053 #define VCLK25_175 0x00
0054 #define VCLK28_322 0x01
0055 #define VCLK31_5 0x02
0056 #define VCLK36 0x03
0057 #define VCLK40 0x04
0058 #define VCLK49_5 0x05
0059 #define VCLK50 0x06
0060 #define VCLK56_25 0x07
0061 #define VCLK65 0x08
0062 #define VCLK75 0x09
0063 #define VCLK78_75 0x0A
0064 #define VCLK94_5 0x0B
0065 #define VCLK108 0x0C
0066 #define VCLK135 0x0D
0067 #define VCLK157_5 0x0E
0068 #define VCLK162 0x0F
0069
0070 #define VCLK154 0x10
0071 #define VCLK83_5 0x11
0072 #define VCLK106_5 0x12
0073 #define VCLK146_25 0x13
0074 #define VCLK148_5 0x14
0075 #define VCLK71 0x15
0076 #define VCLK88_75 0x16
0077 #define VCLK119 0x17
0078 #define VCLK85_5 0x18
0079 #define VCLK97_75 0x19
0080 #define VCLK118_25 0x1A
0081
0082 static const struct ast_vbios_dclk_info dclk_table[] = {
0083 {0x2C, 0xE7, 0x03},
0084 {0x95, 0x62, 0x03},
0085 {0x67, 0x63, 0x01},
0086 {0x76, 0x63, 0x01},
0087 {0xEE, 0x67, 0x01},
0088 {0x82, 0x62, 0x01},
0089 {0xC6, 0x64, 0x01},
0090 {0x94, 0x62, 0x01},
0091 {0x80, 0x64, 0x00},
0092 {0x7B, 0x63, 0x00},
0093 {0x67, 0x62, 0x00},
0094 {0x7C, 0x62, 0x00},
0095 {0x8E, 0x62, 0x00},
0096 {0x85, 0x24, 0x00},
0097 {0x67, 0x22, 0x00},
0098 {0x6A, 0x22, 0x00},
0099 {0x4d, 0x4c, 0x80},
0100 {0x68, 0x6f, 0x80},
0101 {0x28, 0x49, 0x80},
0102 {0x37, 0x49, 0x80},
0103 {0x1f, 0x45, 0x80},
0104 {0x47, 0x6c, 0x80},
0105 {0x25, 0x65, 0x80},
0106 {0x77, 0x58, 0x80},
0107 {0x32, 0x67, 0x80},
0108 {0x6a, 0x6d, 0x80},
0109 {0x3b, 0x2c, 0x81},
0110 };
0111
0112 static const struct ast_vbios_dclk_info dclk_table_ast2500[] = {
0113 {0x2C, 0xE7, 0x03},
0114 {0x95, 0x62, 0x03},
0115 {0x67, 0x63, 0x01},
0116 {0x76, 0x63, 0x01},
0117 {0xEE, 0x67, 0x01},
0118 {0x82, 0x62, 0x01},
0119 {0xC6, 0x64, 0x01},
0120 {0x94, 0x62, 0x01},
0121 {0x80, 0x64, 0x00},
0122 {0x7B, 0x63, 0x00},
0123 {0x67, 0x62, 0x00},
0124 {0x7C, 0x62, 0x00},
0125 {0x8E, 0x62, 0x00},
0126 {0x85, 0x24, 0x00},
0127 {0x67, 0x22, 0x00},
0128 {0x6A, 0x22, 0x00},
0129 {0x4d, 0x4c, 0x80},
0130 {0x68, 0x6f, 0x80},
0131 {0x28, 0x49, 0x80},
0132 {0x37, 0x49, 0x80},
0133 {0x1f, 0x45, 0x80},
0134 {0x47, 0x6c, 0x80},
0135 {0x25, 0x65, 0x80},
0136 {0x58, 0x01, 0x42},
0137 {0x32, 0x67, 0x80},
0138 {0x6a, 0x6d, 0x80},
0139 {0x44, 0x20, 0x43},
0140 };
0141
0142 static const struct ast_vbios_stdtable vbios_stdtable[] = {
0143
0144 {
0145 0x67,
0146 {0x00,0x03,0x00,0x02},
0147 {0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,
0148 0x00,0x4f,0x0d,0x0e,0x00,0x00,0x00,0x00,
0149 0x9c,0x8e,0x8f,0x28,0x1f,0x96,0xb9,0xa3,
0150 0xff},
0151 {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,
0152 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
0153 0x0c,0x00,0x0f,0x08},
0154 {0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,
0155 0xff}
0156 },
0157
0158 {
0159 0xe3,
0160 {0x01,0x0f,0x00,0x06},
0161 {0x5f,0x4f,0x50,0x82,0x55,0x81,0x0b,0x3e,
0162 0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
0163 0xe9,0x8b,0xdf,0x28,0x00,0xe7,0x04,0xe3,
0164 0xff},
0165 {0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,
0166 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
0167 0x01,0x00,0x0f,0x00},
0168 {0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0f,
0169 0xff}
0170 },
0171
0172 {
0173 0x2f,
0174 {0x01,0x0f,0x00,0x0e},
0175 {0x5f,0x4f,0x50,0x82,0x54,0x80,0x0b,0x3e,
0176 0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
0177 0xea,0x8c,0xdf,0x28,0x40,0xe7,0x04,0xa3,
0178 0xff},
0179 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
0180 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
0181 0x01,0x00,0x00,0x00},
0182 {0x00,0x00,0x00,0x00,0x00,0x40,0x05,0x0f,
0183 0xff}
0184 },
0185
0186 {
0187 0x2f,
0188 {0x01,0x0f,0x00,0x0e},
0189 {0x5f,0x4f,0x50,0x82,0x54,0x80,0x0b,0x3e,
0190 0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
0191 0xea,0x8c,0xdf,0x28,0x40,0xe7,0x04,0xa3,
0192 0xff},
0193 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
0194 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
0195 0x01,0x00,0x00,0x00},
0196 {0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0f,
0197 0xff}
0198 },
0199
0200 {
0201 0x2f,
0202 {0x01,0x0f,0x00,0x0e},
0203 {0x5f,0x4f,0x50,0x82,0x54,0x80,0x0b,0x3e,
0204 0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
0205 0xea,0x8c,0xdf,0x28,0x40,0xe7,0x04,0xa3,
0206 0xff},
0207 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
0208 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
0209 0x01,0x00,0x00,0x00},
0210 {0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0f,
0211 0xff}
0212 },
0213 };
0214
0215 static const struct ast_vbios_enhtable res_640x480[] = {
0216 { 800, 640, 8, 96, 525, 480, 2, 2, VCLK25_175,
0217 (SyncNN | HBorder | VBorder | Charx8Dot), 60, 1, 0x2E },
0218 { 832, 640, 16, 40, 520, 480, 1, 3, VCLK31_5,
0219 (SyncNN | HBorder | VBorder | Charx8Dot), 72, 2, 0x2E },
0220 { 840, 640, 16, 64, 500, 480, 1, 3, VCLK31_5,
0221 (SyncNN | Charx8Dot) , 75, 3, 0x2E },
0222 { 832, 640, 56, 56, 509, 480, 1, 3, VCLK36,
0223 (SyncNN | Charx8Dot) , 85, 4, 0x2E },
0224 { 832, 640, 56, 56, 509, 480, 1, 3, VCLK36,
0225 (SyncNN | Charx8Dot) , 0xFF, 4, 0x2E },
0226 };
0227
0228 static const struct ast_vbios_enhtable res_800x600[] = {
0229 {1024, 800, 24, 72, 625, 600, 1, 2, VCLK36,
0230 (SyncPP | Charx8Dot), 56, 1, 0x30 },
0231 {1056, 800, 40, 128, 628, 600, 1, 4, VCLK40,
0232 (SyncPP | Charx8Dot), 60, 2, 0x30 },
0233 {1040, 800, 56, 120, 666, 600, 37, 6, VCLK50,
0234 (SyncPP | Charx8Dot), 72, 3, 0x30 },
0235 {1056, 800, 16, 80, 625, 600, 1, 3, VCLK49_5,
0236 (SyncPP | Charx8Dot), 75, 4, 0x30 },
0237 {1048, 800, 32, 64, 631, 600, 1, 3, VCLK56_25,
0238 (SyncPP | Charx8Dot), 84, 5, 0x30 },
0239 {1048, 800, 32, 64, 631, 600, 1, 3, VCLK56_25,
0240 (SyncPP | Charx8Dot), 0xFF, 5, 0x30 },
0241 };
0242
0243
0244 static const struct ast_vbios_enhtable res_1024x768[] = {
0245 {1344, 1024, 24, 136, 806, 768, 3, 6, VCLK65,
0246 (SyncNN | Charx8Dot), 60, 1, 0x31 },
0247 {1328, 1024, 24, 136, 806, 768, 3, 6, VCLK75,
0248 (SyncNN | Charx8Dot), 70, 2, 0x31 },
0249 {1312, 1024, 16, 96, 800, 768, 1, 3, VCLK78_75,
0250 (SyncPP | Charx8Dot), 75, 3, 0x31 },
0251 {1376, 1024, 48, 96, 808, 768, 1, 3, VCLK94_5,
0252 (SyncPP | Charx8Dot), 84, 4, 0x31 },
0253 {1376, 1024, 48, 96, 808, 768, 1, 3, VCLK94_5,
0254 (SyncPP | Charx8Dot), 0xFF, 4, 0x31 },
0255 };
0256
0257 static const struct ast_vbios_enhtable res_1280x1024[] = {
0258 {1688, 1280, 48, 112, 1066, 1024, 1, 3, VCLK108,
0259 (SyncPP | Charx8Dot), 60, 1, 0x32 },
0260 {1688, 1280, 16, 144, 1066, 1024, 1, 3, VCLK135,
0261 (SyncPP | Charx8Dot), 75, 2, 0x32 },
0262 {1728, 1280, 64, 160, 1072, 1024, 1, 3, VCLK157_5,
0263 (SyncPP | Charx8Dot), 85, 3, 0x32 },
0264 {1728, 1280, 64, 160, 1072, 1024, 1, 3, VCLK157_5,
0265 (SyncPP | Charx8Dot), 0xFF, 3, 0x32 },
0266 };
0267
0268 static const struct ast_vbios_enhtable res_1600x1200[] = {
0269 {2160, 1600, 64, 192, 1250, 1200, 1, 3, VCLK162,
0270 (SyncPP | Charx8Dot), 60, 1, 0x33 },
0271 {2160, 1600, 64, 192, 1250, 1200, 1, 3, VCLK162,
0272 (SyncPP | Charx8Dot), 0xFF, 1, 0x33 },
0273 };
0274
0275
0276 static const struct ast_vbios_enhtable res_1360x768[] = {
0277 {1792, 1360, 64, 112, 795, 768, 3, 6, VCLK85_5,
0278 (SyncPP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 60, 1, 0x39 },
0279 {1792, 1360, 64, 112, 795, 768, 3, 6, VCLK85_5,
0280 (SyncPP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo |
0281 AST2500PreCatchCRT), 0xFF, 1, 0x39 },
0282 };
0283
0284 static const struct ast_vbios_enhtable res_1600x900[] = {
0285 {1760, 1600, 48, 32, 926, 900, 3, 5, VCLK97_75,
0286 (SyncNP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo |
0287 AST2500PreCatchCRT), 60, 1, 0x3A },
0288 {2112, 1600, 88, 168, 934, 900, 3, 5, VCLK118_25,
0289 (SyncPN | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 60, 2, 0x3A },
0290 {2112, 1600, 88, 168, 934, 900, 3, 5, VCLK118_25,
0291 (SyncPN | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 0xFF, 2, 0x3A },
0292 };
0293
0294 static const struct ast_vbios_enhtable res_1920x1080[] = {
0295 {2200, 1920, 88, 44, 1125, 1080, 4, 5, VCLK148_5,
0296 (SyncPP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo |
0297 AST2500PreCatchCRT), 60, 1, 0x38 },
0298 {2200, 1920, 88, 44, 1125, 1080, 4, 5, VCLK148_5,
0299 (SyncPP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo |
0300 AST2500PreCatchCRT), 0xFF, 1, 0x38 },
0301 };
0302
0303
0304
0305 static const struct ast_vbios_enhtable res_1280x800[] = {
0306 {1440, 1280, 48, 32, 823, 800, 3, 6, VCLK71,
0307 (SyncNP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo |
0308 AST2500PreCatchCRT), 60, 1, 0x35 },
0309 {1680, 1280, 72,128, 831, 800, 3, 6, VCLK83_5,
0310 (SyncPN | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 60, 2, 0x35 },
0311 {1680, 1280, 72,128, 831, 800, 3, 6, VCLK83_5,
0312 (SyncPN | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 0xFF, 2, 0x35 },
0313
0314 };
0315
0316 static const struct ast_vbios_enhtable res_1440x900[] = {
0317 {1600, 1440, 48, 32, 926, 900, 3, 6, VCLK88_75,
0318 (SyncNP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo |
0319 AST2500PreCatchCRT), 60, 1, 0x36 },
0320 {1904, 1440, 80,152, 934, 900, 3, 6, VCLK106_5,
0321 (SyncPN | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 60, 2, 0x36 },
0322 {1904, 1440, 80,152, 934, 900, 3, 6, VCLK106_5,
0323 (SyncPN | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 0xFF, 2, 0x36 },
0324 };
0325
0326 static const struct ast_vbios_enhtable res_1680x1050[] = {
0327 {1840, 1680, 48, 32, 1080, 1050, 3, 6, VCLK119,
0328 (SyncNP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo |
0329 AST2500PreCatchCRT), 60, 1, 0x37 },
0330 {2240, 1680,104,176, 1089, 1050, 3, 6, VCLK146_25,
0331 (SyncPN | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 60, 2, 0x37 },
0332 {2240, 1680,104,176, 1089, 1050, 3, 6, VCLK146_25,
0333 (SyncPN | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 0xFF, 2, 0x37 },
0334 };
0335
0336 static const struct ast_vbios_enhtable res_1920x1200[] = {
0337 {2080, 1920, 48, 32, 1235, 1200, 3, 6, VCLK154,
0338 (SyncNP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo |
0339 AST2500PreCatchCRT), 60, 1, 0x34 },
0340 {2080, 1920, 48, 32, 1235, 1200, 3, 6, VCLK154,
0341 (SyncNP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo |
0342 AST2500PreCatchCRT), 0xFF, 1, 0x34 },
0343 };
0344
0345 #endif