1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
|
/***************************************************************************
* Copyright (C) 2003-2006 by XGI Technology, Taiwan. *
* *
* All Rights Reserved. *
* *
* Permission is hereby granted, free of charge, to any person obtaining *
* a copy of this software and associated documentation files (the *
* "Software"), to deal in the Software without restriction, including *
* without limitation on the rights to use, copy, modify, merge, *
* publish, distribute, sublicense, and/or sell copies of the Software, *
* and to permit persons to whom the Software is furnished to do so, *
* subject to the following conditions: *
* *
* The above copyright notice and this permission notice (including the *
* next paragraph) shall be included in all copies or substantial *
* portions of the Software. *
* *
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, *
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND *
* NON-INFRINGEMENT. IN NO EVENT SHALL XGI AND/OR *
* ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, *
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, *
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER *
* DEALINGS IN THE SOFTWARE. *
***************************************************************************/
#ifndef _XGI_BIOS_H_
#define _XGI_BIOS_H_
/*
*
*/
typedef struct {
CARD16 xres;
CARD16 yres;
CARD16 vref; /* Hz */
CARD16 vclk; /* MHz */
} XGIPixelClockRec, *XGIPixelClockPtr;
/*
* 3D4/3D5 58 R/W Software Scratch Pad 7
* 3D4/3D5 59 R/W Software Scratch Pad 14
* 3D4/3D5 5A R/W Software Scratch Pad 15
*/
#define SOFT_PAD58_INDEX 0x58
#define SOFT_PAD59_INDEX 0x59
#define SOFT_PAD5A_INDEX 0x5A
/*
* TV Screen positioin.
*/
#define INVALID_VALUE 0xffffffff
#define CHANGE_ON_HORIZONTAL 0x0001
#define CHANGE_ON_VERTICAL 0x0002
/*
* TV IP Core
*/
#define TV_TVX 0x00000000 /*TVX*/
#define TV_TVX1K 0x00000001 /*TVX 1K support*/
#define TV_TVX2 0x00000002 /*TVX2 External*/
#define TV_TVXI 0x00000003 /*TVX2 Internal*/
#define TV_CHRONTEL_7004 0x10000004 /*CH7003/04*/
#define TV_CHRONTEL_7007 0x10000007 /*CH7007/08*/
#define TV_CHRONTEL_7009 0x10000009 /*CH7009/11*/
#define TV_PHILIPS_7102 0x20000001 /*PH7102*/
#define TV_NEW_INTERFACE 0x80000000 /*TVX/TVX2 New IF*/
#define TV_INVALID 0xffffffff
/*
* Digital TV Information.
*/
typedef struct {
CARD16 maxLevel1;
CARD16 maxLevel2;
CARD16 delta;
CARD16 direction;
} XGIDigitalTVRec, *XGIDigitalTVPtr;
typedef struct {
unsigned long ret;
XGIDigitalTVRec info[3];
} XGIDigitalTVColorRec;
typedef struct {
unsigned long ret;
XGIDigitalTVRec info[2];
} XGIDigitalTVPositionRec;
typedef struct {
unsigned long ret;
XGIDigitalTVRec info;
} XGIDigitalTVCallRec;
#define XGI_REG_ARX 0x03C0 /* attribute index register. */
#define XGI_REG_SRX 0x03C4 /* sequencer index register. */
#define XGI_REG_CRX 0x03D4 /* CRT index register. */
#define XGI_REG_GRX 0x03CE /* graphics index register. */
#define XGI_REG_PRX 0x03A4 /* flat panel shadow register. */
/*
* definition for BIOS_Capability
*/
#define BIOS_LCD_SUPPORT 0x00000001
#define BIOS_CRT_SUPPORT 0x00000002
#define BIOS_TV_SUPPORT 0x00000004
#define BIOS_DVI_SUPPORT 0x00000008
#define BIOS_VIRTUAL_SCREEN 0x00000010
#define BIOS_DUALCRT_SUPPORT 0x00000040
#define BIOS_DEVICE_SWITCH 0x00000100
#define BIOS_TV_1K_SUPPORT 0x00000200
#define BIOS_SMART_EXPANSION 0x00000400
#define BIOS_TV_CAPABILITY 0x00010000
#define BIOS_MV7_DISABLED 0x00020000
/*
* definition for Device Support
*/
/* bit[7:0] */
#define SUPPORT_DEV_LCD 0x00000001
#define SUPPORT_DEV_CRT 0x00000002
#define SUPPORT_DEV_TV 0x00000004
#define SUPPORT_DEV_DVI 0x00000008
/* bit [15:8] LCD Information */
#define SUPPORT_PANEL_EXPANSION 0x00000400
#define SUPPORT_PANEL_CENTERING 0x00000800
#define SUPPORT_PANEL_V_EXPANSION 0x00001000 /*4:3 Expanded Centering*/
#define SUPPORT_PANEL_FULLEXP 0x00001000 /* NEC request */
#define SUPPORT_PANEL_SMARTEXP 0x00002000
/* bit [23:16] TV information */
#define SUPPORT_TV_NTSC 0x00010000
#define SUPPORT_TV_PAL 0x00020000
#define SUPPORT_TV_UNDERSCAN 0x00040000
#define SUPPORT_TV_OVERSCAN 0x00080000
#define SUPPORT_TV_NATIVE 0x00100000
#define SUPPORT_CURRENT_NO_TV 0x00200000
#define SUPPORT_TV_PALM 0x00400000
#define SUPPORT_TV_DIGITAL 0x00800000 /* - XP5/V3 */
#define SUPPORT_TV_NTSCJ 0x00080000 /* XP10/XG47 -*/
/* bit [31:24] Second view information */
#define SUPPORT_DEV2_LCD 0x01000000
#define SUPPORT_DEV2_CRT 0x02000000
#define SUPPORT_DEV2_TV 0x04000000
#define SUPPORT_DEV2_DVI 0x08000000
#define SUPPORT_W2_CLOSE 0x40000000
/*
* flat panel defines
*/
#define FPTYPE_UNKNOWN 0
#define FPTYPE_TFT 1
#define FPTYPE_HALF 2
#undef FPSIZE_6X4
#undef FPSIZE_8X4
#undef FPSIZE_8X6
#undef FPSIZE_10X4
#undef FPSIZE_10X6
#undef FPSIZE_10X7
#undef FPSIZE_12X6
#undef FPSIZE_12X10
#undef FPSIZE_14X10
#undef FPSIZE_16X12
#define FPSIZE_UNKNOWN 0
#define FPSIZE_6X4 1
#define FPSIZE_8X4 2
#define FPSIZE_8X6 3
#define FPSIZE_10X4 4
#define FPSIZE_10X6 5
#define FPSIZE_10X7 6
#if defined T_FXP || defined T_CBAi1 || defined T_CARMEL
#define FPSIZE_12X10 7
#define FPSIZE_14X10 8
#define FPSIZE_16X12 9
#else
#define FPSIZE_12X6 7
#define FPSIZE_12X10 8
#define FPSIZE_14X10 9
#define FPSIZE_16X12 0xA
#endif
/* To keep compatibility with KB2.5 old BIOS(KTT 6.0)*/
#define FPSIZE_8X6_KB 2
#define FPSIZE_10X7_KB 3
#define FPSIZE_12X10_KB 4
#define FPSIZE_10X6_KB 5
#define FPTYPE_UNKNOWN 0
#define FPTYPE_TFT 1
#define FPTYPE_HALF 2
#define LCD_LID_OPEN 0
#define LCD_LID_CLOSE 1
#define LCD_LID_STATUS_UNKNOWN 2
/*
* Following define copied from CMDLIST.H from BIOSDLL file.
*
* BIOSDLL call Command definition
*/
#define CLOSE_ALL_DEVICE 20400
#define OPEN_ALL_DEVICE 20401
/*
* The following command list is defined for Digital TV
* and used by all of BIOSDLL & UTILITY & DRIVER
*/
#define INIT_TV_SCREEN 30000
#define ENABLE_TV_DISPLAY 30014
#define DISABLE_TV_DISPLAY 30015
#define DTV_TVEXPRESS_XP4E 3
/*
*
*/
#define DEV_SUPPORT_LCD 0x0001
#define DEV_SUPPORT_CRT 0x0002
#define DEV_SUPPORT_TV 0x0004
#define DEV_SUPPORT_DVI 0x0008
#define DEV_SUPPORT_VIRTUAL 0x0010
/* Jong 09/12/2006; device attributes */
#define ZVMX_MASK_LCDCTRL 0x0000FF00 /* mask of LCD control bits. */
#define ZVMX_ATTRIB_TFT 0x00000100 /* TFT flat panel type. */
#define ZVMX_ATTRIB_DSTN 0x00000200 /* DSTN flat panel type. */
#define ZVMX_ATTRIB_EXPANSION 0x00000400 /* Expension. */
#define ZVMX_ATTRIB_CENTERING 0x00000800 /* Centering. */
#define ZVMX_ATTRIB_LCD_ALL 0x00000F00 /* LCD support all. */
#define ZVMX_ATTRIB_V_EXPANSION 0x00001000 /* 4:3 Expanded Centering. */
#define ZVMX_ATTRIB_OVERLAYFOCUS 0x00001000 /* LCD Overlay. */
#define ZVMX_MASK_TVCTRL 0x00FF0000 /* mask of TV control bits. */
#define ZVMX_ATTRIB_NTSC 0x00010000 /* TV standard is NTSC. */
#define ZVMX_ATTRIB_PAL 0x00020000 /* TV standard is PAL. */
#define ZVMX_ATTRIB_PALM 0x00400000 /* TV PAL_M */
#define ZVMX_ATTRIB_NTSCJ 0x00800000 /* TV NTSC-J */
#define ZVMX_ATTRIB_UNDER 0x00040000 /* TV is underscan. */
#define ZVMX_ATTRIB_OVER 0x00080000 /* TV is overscan. */
#define ZVMX_ATTRIB_NATIVE 0x00100000 /* TV is native. */
#define ZVMX_ATTRIB_TV_ALL 0x000F0000 /* TV support all. */
#define TMOD_SUPPORT_NTSCU 0x10 /* MODE SUPPORT NTSC UNDERSCAN. */
#define TMOD_SUPPORT_NTSCO 0x20 /* MODE SUPPORT NTSC OVERSCAN. */
#define TMOD_SUPPORT_PALU 0x40 /* MODE SUPPORT PAL UNDERSCAN. */
#define TMOD_SUPPORT_PALO 0x80 /* MODE SUPPORT PAL OVERSCAN. */
/*
* 3CF.5D.[6:4,0]
*/
#define TEXT_EXPANSION 0x0001
#define TEXT_V_EXPANSION 0x0010
#define GRAF_EXPANSION 0x0020
#define GRAF_V_EXPANSION 0x0040
#define EXPANSION_MASK GRAF_EXPANSION+TEXT_EXPANSION
#define V_EXPANSION_MASK GRAF_V_EXPANSION+TEXT_V_EXPANSION
/* BIOS setmode */
#define BIOS_EXPANSION 0x0010
#define BIOS_V_EXPANSION 0x0020
/*
* mode refresh defines
*/
#define VMODE_REF_MASK 0x0000FFFF
#define VMODE_REF_RESERVED 0x00000000
#define VMODE_REF_44Hz 0x00000001
#define VMODE_REF_48Hz 0x00000002
#define VMODE_REF_50iHz 0x00000004
#define VMODE_REF_50rHz 0x00000008
#define VMODE_REF_50Hz 0x00000010
#define VMODE_REF_60iHz 0x00000020
#define VMODE_REF_60rHz 0x00000040
#define VMODE_REF_60Hz 0x00000080
#define VMODE_REF_70Hz 0x00000100
#define VMODE_REF_72Hz 0x00000200
#define VMODE_REF_75Hz 0x00000400
#define VMODE_REF_85Hz 0x00000800
#define VMODE_REF_100Hz 0x00001000
#define VMODE_REF_120Hz 0x00002000
#define VREF_MAX_NUMBER 15
#define VREF_RESERVED (-1)
#define VREF_44Hz 44
#define VREF_48Hz 48
#define VREF_50iHz 0xb2
#define VREF_50rHz 0x132
#define VREF_50Hz 50
#define VREF_60iHz 0xbc
#define VREF_60rHz 0x13c
#define VREF_60Hz 60
#define VREF_70Hz 70
#define VREF_72Hz 72
#define VREF_75Hz 75
#define VREF_85Hz 85
#define VREF_100Hz 100
#define VREF_120Hz 120
#define ZVMX_MASK_REFINDEX 0x000F0000 /* mask of refresh rate index. */
#define ZVMX_INDEX_DEFAULT 0x00000000 /* vido BIOS default value. */
#define ZVMX_INDEX_REF44 0x00010000 /* 87 interlaced. */
#define ZVMX_INDEX_REF48 0x00020000 /* 96 interlaced. */
#define ZVMX_INDEX_REF50i 0x00030000 /* 50 interlaced. */
#define ZVMX_INDEX_REF50r 0x00040000 /* 50 reduced blank. */
#define ZVMX_INDEX_REF50 0x00050000 /* 50 Hz. */
#define ZVMX_INDEX_REF60i 0x00060000 /* 60 interlaced. */
#define ZVMX_INDEX_REF60r 0x00070000 /* 60 reduced blank. */
#define ZVMX_INDEX_REF60 0x00080000 /* 60 Hz. */
#define ZVMX_INDEX_REF70 0x00090000 /* 70 Hz. */
#define ZVMX_INDEX_REF72 0x000A0000 /* 72 Hz. */
#define ZVMX_INDEX_REF75 0x000B0000 /* 75 Hz. */
#define ZVMX_INDEX_REF85 0x000C0000 /* 85 Hz. */
#define ZVMX_INDEX_REF100 0x000D0000 /* 100 Hz. */
#define ZVMX_INDEX_REF120 0x000E0000 /* 120 Hz. */
/*
* monitor defines
*/
#define MONITOR_X320 320
#define MONITOR_Y200 200
#define MONITOR_Y240 240
#define MONITOR_X400 400
#define MONITOR_Y300 300
#define MONITOR_X512 512
#define MONITOR_Y384 384
#define MONITOR_X640 640
#define MONITOR_Y400 400
#define MONITOR_Y420 420
#define MONITOR_Y432 432
#define MONITOR_Y480 480
#define MONITOR_X720 720
#define MONITOR_Y514 514
#define MONITOR_Y576 576
#define MONITOR_Y720 720
#define MONITOR_X800 800
#define MONITOR_Y800 800
#define MONITOR_X848 848
#define MONITOR_X864 864
#define MONITOR_Y600 600
#define MONITOR_X1024 1024
#define MONITOR_Y768 768
#define MONITOR_X1152 1152
#define MONITOR_Y864 864
#define MONITOR_X1280 1280
#define MONITOR_Y1024 1024
#define MONITOR_X1400 1400
#define MONITOR_Y1050 1050
#define MONITOR_Y1080 1080
#define MONITOR_X1440 1440
#define MONITOR_Y900 900
#define MONITOR_Y960 960
#define MONITOR_X1600 1600
#define MONITOR_X1680 1680
#define MONITOR_Y1200 1200
#define MONITOR_X1920 1920
#define MONITOR_Y1440 1440
#define MONITOR_X2048 2048
#define MONITOR_Y1536 1536
/*
* bpp defines
*/
#define BITSPIXEL_08 8
#define BITSPIXEL_16 16
#define BITSPIXEL_24 24
#define BITSPIXEL_32 32
/*
* for BiosDllOperationFlag
*/
#define NEED_3CF33_ON_DELAY 0x00000001
#define DEVICE_CLOSED 0x00000002
#endif
|