940 lines
32 KiB
C
940 lines
32 KiB
C
|
//*************************************************************************
|
||
|
//** **
|
||
|
//** AMACHCX.H **
|
||
|
//** **
|
||
|
//** Copyright (c) 1993, ATI Technologies Inc. **
|
||
|
//*************************************************************************
|
||
|
//
|
||
|
// Created from the CH0.H 68800CX header file to get CX and standard
|
||
|
// register definitions in the same format.
|
||
|
//
|
||
|
// Created from the 68800.H and 68801.H in the Windows NT Group
|
||
|
// as a simple merging of the files so ALL Mach8 and Mach32 defines
|
||
|
// are located in one H file.
|
||
|
//
|
||
|
// Created the 68800.inc file which includes equates, macros, etc
|
||
|
// from the following include files:
|
||
|
// 8514vesa.inc, vga1regs.inc, m32regs.inc, 8514.inc
|
||
|
//
|
||
|
// supplement Defines and values to the 68800 Family.
|
||
|
//
|
||
|
// This is a "C" only file and is NOT derived from any Assembler INC files.
|
||
|
|
||
|
|
||
|
/********************** PolyTron RCS Utilities
|
||
|
|
||
|
$Revision: 1.17 $
|
||
|
$Date: 15 Apr 1996 16:57:28 $
|
||
|
$Author: RWolff $
|
||
|
$Log: S:/source/wnt/ms11/miniport/archive/amachcx.h_v $
|
||
|
*
|
||
|
* Rev 1.17 15 Apr 1996 16:57:28 RWolff
|
||
|
* Added definitions for various revisions of the GX and CX ASICs
|
||
|
*
|
||
|
* Rev 1.16 01 Mar 1996 12:09:48 RWolff
|
||
|
* VGA Graphics Index and Graphics Data are now handled as separate
|
||
|
* registers rather than as offsets into the block of VGA registers.
|
||
|
*
|
||
|
* Rev 1.15 22 Sep 1995 16:47:08 RWolff
|
||
|
* Added definitions for AL values of accelerator BIOS functions to
|
||
|
* allow switching on the low byte of the function.
|
||
|
*
|
||
|
* Rev 1.14 24 Aug 1995 15:41:12 RWolff
|
||
|
* Changed detection of block I/O cards to match Microsoft's
|
||
|
* standard for plug-and-play.
|
||
|
*
|
||
|
* Rev 1.13 24 Feb 1995 12:28:36 RWOLFF
|
||
|
* Added definitions used for relocatable I/O and 24BPP text banding
|
||
|
*
|
||
|
* Rev 1.12 20 Feb 1995 18:00:34 RWOLFF
|
||
|
* Added definition for GX rev. E ASIC.
|
||
|
*
|
||
|
* Rev 1.11 23 Dec 1994 10:48:02 ASHANMUG
|
||
|
* ALPHA/Chrontel-DAC
|
||
|
*
|
||
|
* Rev 1.10 18 Nov 1994 11:52:12 RWOLFF
|
||
|
* Register name change to CLOCK_CNTL to match latest documents, added
|
||
|
* some new bitfield definitions for registers.
|
||
|
*
|
||
|
* Rev 1.9 14 Sep 1994 15:20:58 RWOLFF
|
||
|
* Added definitions for all 32BPP colour orderings.
|
||
|
*
|
||
|
* Rev 1.8 31 Aug 1994 16:11:08 RWOLFF
|
||
|
* Removed VGA_SLEEP from enumeration of registers used on Mach 64
|
||
|
* (we don't access it, and it conflicts with DigiBoard), added
|
||
|
* support for BGRx in 32BPP (used by TVP3026 DAC).
|
||
|
*
|
||
|
* Rev 1.7 20 Jul 1994 12:59:38 RWOLFF
|
||
|
* Added support for multiple I/O base addresses for accelerator registers.
|
||
|
*
|
||
|
* Rev 1.6 12 May 1994 11:21:22 RWOLFF
|
||
|
* Added masks for pitch and pixel depth fields of ECX for BIOS_LOAD_CRTC
|
||
|
* call.
|
||
|
*
|
||
|
* Rev 1.5 05 May 1994 13:40:40 RWOLFF
|
||
|
* Added definitions for chip identification register fields.
|
||
|
*
|
||
|
* Rev 1.4 04 May 1994 10:58:48 RWOLFF
|
||
|
* Added definitions for MEM_SIZE field in MEM_CNTL register.
|
||
|
*
|
||
|
* Rev 1.3 27 Apr 1994 13:57:28 RWOLFF
|
||
|
* Added definitions for offsets of graphics index and graphics data
|
||
|
* registers from start of block of VGA registers.
|
||
|
*
|
||
|
* Rev 1.2 14 Mar 1994 16:31:58 RWOLFF
|
||
|
* Added offset and pitch masks for SRC_OFF_PITCH register.
|
||
|
*
|
||
|
* Rev 1.1 03 Mar 1994 12:36:40 ASHANMUG
|
||
|
* Correct GAMMA bit
|
||
|
*
|
||
|
* Rev 1.0 31 Jan 1994 11:26:34 RWOLFF
|
||
|
* Initial revision.
|
||
|
*
|
||
|
* Rev 1.4 24 Jan 1994 18:00:52 RWOLFF
|
||
|
* Added new definitions for fields introduced in 94/01/19 BIOS document.
|
||
|
*
|
||
|
* Rev 1.3 14 Jan 1994 15:17:18 RWOLFF
|
||
|
* Added definition for bit in GEN_TEST_CNTL to enable block write,
|
||
|
* BIOS function codes now take AH value from a single definition
|
||
|
* to allow single-point change of all codes, updated function codes
|
||
|
* to match BIOS version 0.13.
|
||
|
*
|
||
|
* Rev 1.2 30 Nov 1993 18:09:14 RWOLFF
|
||
|
* Fixed enumeration of register names, added definitions for more fields in
|
||
|
* more registers, removed redundant definitions.
|
||
|
*
|
||
|
* Rev 1.1 05 Nov 1993 13:21:24 RWOLFF
|
||
|
* Defined and enumerated values now use same naming conventions as AMACH.H
|
||
|
*
|
||
|
* Rev 1.0 03 Sep 1993 14:26:46 RWOLFF
|
||
|
* Initial revision.
|
||
|
|
||
|
|
||
|
End of PolyTron RCS section *****************/
|
||
|
|
||
|
|
||
|
#define REVISION 0x0002 // No one should use this
|
||
|
|
||
|
/*
|
||
|
* Offsets from start of linear aperture to start of memory-mapped
|
||
|
* registers on 4M and 8M cards, and offset from start of address
|
||
|
* space to start of memory-mapped registers when VGA is enabled.
|
||
|
*/
|
||
|
#define OFFSET_4M 0x3FFC00
|
||
|
#define OFFSET_8M 0x7FFC00
|
||
|
#define OFFSET_VGA 0x0BFC00
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Base addresses for Mach 64 accelerator registers.
|
||
|
*/
|
||
|
#define M64_STD_BASE_ADDR 0x02EC
|
||
|
#define M64_ALT_BASE_ADDR_1 0x01C8
|
||
|
#define M64_ALT_BASE_ADDR_2 0x01CC
|
||
|
#define NUM_BASE_ADDRESSES 3
|
||
|
|
||
|
/*
|
||
|
* CRTC I/O registers. Only the variable portion
|
||
|
* of the register is given here. To get the full
|
||
|
* register, add the base address.
|
||
|
*/
|
||
|
|
||
|
#define IO_CRTC_H_TOTAL_DISP 0x0000
|
||
|
#define IO_CRTC_H_SYNC_STRT_WID 0x0400
|
||
|
#define IO_CRTC_V_TOTAL_DISP 0x0800
|
||
|
#define IO_CRTC_V_SYNC_STRT_WID 0x0C00
|
||
|
#define IO_CRTC_CRNT_VLINE 0x1000
|
||
|
#define IO_CRTC_OFF_PITCH 0x1400
|
||
|
#define IO_CRTC_INT_CNTL 0x1800
|
||
|
#define IO_CRTC_GEN_CNTL 0x1C00
|
||
|
|
||
|
#define IO_OVR_CLR 0x2000
|
||
|
#define IO_OVR_WID_LEFT_RIGHT 0x2400
|
||
|
#define IO_OVR_WID_TOP_BOTTOM 0x2800
|
||
|
|
||
|
#define IO_CUR_CLR0 0x2C00
|
||
|
#define IO_CUR_CLR1 0x3000
|
||
|
#define IO_CUR_OFFSET 0x3400
|
||
|
#define IO_CUR_HORZ_VERT_POSN 0x3800
|
||
|
#define IO_CUR_HORZ_VERT_OFF 0x3C00
|
||
|
|
||
|
#define IO_SCRATCH_REG0 0x4000
|
||
|
#define IO_SCRATCH_REG1 0x4400
|
||
|
|
||
|
#define IO_CLOCK_CNTL 0x4800
|
||
|
|
||
|
#define IO_BUS_CNTL 0x4C00
|
||
|
|
||
|
#define IO_MEM_CNTL 0x5000
|
||
|
#define IO_MEM_VGA_WP_SEL 0x5400
|
||
|
#define IO_MEM_VGA_RP_SEL 0x5800
|
||
|
|
||
|
#define IO_DAC_REGS 0x5C00
|
||
|
#define IO_DAC_CNTL 0x6000
|
||
|
|
||
|
#define IO_GEN_TEST_CNTL 0x6400
|
||
|
|
||
|
#define IO_CONFIG_CNTL 0x6800
|
||
|
#define IO_CONFIG_CHIP_ID 0x6C00
|
||
|
#define IO_CONFIG_STAT0 0x7000
|
||
|
#define IO_CONFIG_STAT1 0x7400
|
||
|
|
||
|
|
||
|
// CRTC MEM Registers
|
||
|
|
||
|
|
||
|
#define MM_CRTC_H_TOTAL_DISP 0x0000
|
||
|
#define MM_CRTC_H_SYNC_STRT_WID 0x0001
|
||
|
#define MM_CRTC_V_TOTAL_DISP 0x0002
|
||
|
#define MM_CRTC_V_SYNC_STRT_WID 0x0003
|
||
|
#define MM_CRTC_CRNT_VLINE 0x0004
|
||
|
#define MM_CRTC_OFF_PITCH 0x0005
|
||
|
#define MM_CRTC_INT_CNTL 0x0006
|
||
|
#define MM_CRTC_GEN_CNTL 0x0007
|
||
|
|
||
|
#define MM_OVR_CLR 0x0010
|
||
|
#define MM_OVR_WID_LEFT_RIGHT 0x0011
|
||
|
#define MM_OVR_WID_TOP_BOTTOM 0x0012
|
||
|
|
||
|
#define MM_CUR_CLR0 0x0018
|
||
|
#define MM_CUR_CLR1 0x0019
|
||
|
#define MM_CUR_OFFSET 0x001A
|
||
|
#define MM_CUR_HORZ_VERT_POSN 0x001B
|
||
|
#define MM_CUR_HORZ_VERT_OFF 0x001C
|
||
|
|
||
|
#define MM_SCRATCH_REG0 0x0020
|
||
|
#define MM_SCRATCH_REG1 0x0021
|
||
|
|
||
|
#define MM_CLOCK_CNTL 0x0024
|
||
|
|
||
|
#define MM_BUS_CNTL 0x0028
|
||
|
|
||
|
#define MM_MEM_CNTL 0x002C
|
||
|
#define MM_MEM_VGA_WP_SEL 0x002D
|
||
|
#define MM_MEM_VGA_RP_SEL 0x002E
|
||
|
|
||
|
#define MM_DAC_REGS 0x0030
|
||
|
#define MM_DAC_CNTL 0x0031
|
||
|
|
||
|
#define MM_GEN_TEST_CNTL 0x0034
|
||
|
|
||
|
/*
|
||
|
* This register does not exist in memory-mapped form,
|
||
|
* but on cards with relocatable I/O, the I/O index of
|
||
|
* each register matches its memory-mapped index. This
|
||
|
* register was assigned an otherwise unused index for
|
||
|
* this purpose.
|
||
|
*/
|
||
|
#define MM_CONFIG_CNTL 0x0037
|
||
|
|
||
|
#define MM_CONFIG_CHIP_ID 0x0038
|
||
|
#define MM_CONFIG_STAT0 0x0039
|
||
|
#define MM_CONFIG_STAT1 0x003A
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
#define MM_DST_OFF_PITCH 0x0040
|
||
|
#define MM_DST_X 0x0041
|
||
|
#define MM_DST_Y 0x0042
|
||
|
#define MM_DST_Y_X 0x0043
|
||
|
#define MM_DST_WIDTH 0x0044
|
||
|
#define MM_DST_HEIGHT 0x0045
|
||
|
#define MM_DST_HEIGHT_WIDTH 0x0046
|
||
|
#define MM_DST_X_WIDTH 0x0047
|
||
|
#define MM_DST_BRES_LNTH 0x0048
|
||
|
#define MM_DST_BRES_ERR 0x0049
|
||
|
#define MM_DST_BRES_INC 0x004A
|
||
|
#define MM_DST_BRES_DEC 0x004B
|
||
|
#define MM_DST_CNTL 0x004C
|
||
|
|
||
|
#define MM_SRC_OFF_PITCH 0x0060
|
||
|
#define MM_SRC_X 0x0061
|
||
|
#define MM_SRC_Y 0x0062
|
||
|
#define MM_SRC_Y_X 0x0063
|
||
|
#define MM_SRC_WIDTH1 0x0064
|
||
|
#define MM_SRC_HEIGHT1 0x0065
|
||
|
#define MM_SRC_HEIGHT1_WIDTH1 0x0066
|
||
|
#define MM_SRC_X_START 0x0067
|
||
|
#define MM_SRC_Y_START 0x0068
|
||
|
#define MM_SRC_Y_X_START 0x0069
|
||
|
#define MM_SRC_WIDTH2 0x006A
|
||
|
#define MM_SRC_HEIGHT2 0x006B
|
||
|
#define MM_SRC_HEIGHT2_WIDTH2 0x006C
|
||
|
#define MM_SRC_CNTL 0x006D
|
||
|
|
||
|
#define MM_HOST_DATA0 0x0080
|
||
|
#define MM_HOST_DATA1 0x0081
|
||
|
#define MM_HOST_DATA2 0x0082
|
||
|
#define MM_HOST_DATA3 0x0083
|
||
|
#define MM_HOST_DATA4 0x0084
|
||
|
#define MM_HOST_DATA5 0x0085
|
||
|
#define MM_HOST_DATA6 0x0086
|
||
|
#define MM_HOST_DATA7 0x0087
|
||
|
#define MM_HOST_DATA8 0x0088
|
||
|
#define MM_HOST_DATA9 0x0089
|
||
|
#define MM_HOST_DATA10 0x008A
|
||
|
#define MM_HOST_DATA11 0x008B
|
||
|
#define MM_HOST_DATA12 0x008C
|
||
|
#define MM_HOST_DATA13 0x008D
|
||
|
#define MM_HOST_DATA14 0x008E
|
||
|
#define MM_HOST_DATA15 0x008F
|
||
|
#define MM_HOST_CNTL 0x0090
|
||
|
|
||
|
#define MM_PAT_REG0 0x00A0
|
||
|
#define MM_PAT_REG1 0x00A1
|
||
|
#define MM_PAT_CNTL 0x00A2
|
||
|
|
||
|
#define MM_SC_LEFT 0x00A8
|
||
|
#define MM_SC_RIGHT 0x00A9
|
||
|
#define MM_SC_LEFT_RIGHT 0x00AA
|
||
|
#define MM_SC_TOP 0x00AB
|
||
|
#define MM_SC_BOTTOM 0x00AC
|
||
|
#define MM_SC_TOP_BOTTOM 0x00AD
|
||
|
|
||
|
#define MM_DP_BKGD_CLR 0x00B0
|
||
|
#define MM_DP_FRGD_CLR 0x00B1
|
||
|
#define MM_DP_WRITE_MASK 0x00B2
|
||
|
#define MM_DP_CHAIN_MASK 0x00B3
|
||
|
#define MM_DP_PIX_WIDTH 0x00B4
|
||
|
#define MM_DP_MIX 0x00B5
|
||
|
#define MM_DP_SRC 0x00B6
|
||
|
|
||
|
#define MM_CLR_CMP_CLR 0x00C0
|
||
|
#define MM_CLR_CMP_MSK 0x00C1
|
||
|
#define MM_CLR_CMP_CNTL 0x00C2
|
||
|
|
||
|
#define MM_FIFO_STAT 0x00C4
|
||
|
|
||
|
#define MM_CONTEXT_MASK 0x00C8
|
||
|
#define MM_CONTEXT_SAVE_CNTL 0x00CA
|
||
|
#define MM_CONTEXT_LOAD_CNTL 0x00CB
|
||
|
|
||
|
#define MM_GUI_TRAJ_CNTL 0x00CC
|
||
|
#define MM_GUI_STAT 0x00CE
|
||
|
|
||
|
/*
|
||
|
* VGAWonder-compatible registers (all in I/O space).
|
||
|
*/
|
||
|
#define IO_VGA_SLEEP 0x0102
|
||
|
#define IO_VGA_BASE_IO_PORT 0x03B0
|
||
|
#define IO_VGA_START_BREAK_PORT 0x03BB
|
||
|
#define IO_VGA_END_BREAK_PORT 0x03C0
|
||
|
#define IO_VGA_MAX_IO_PORT 0x03DF
|
||
|
|
||
|
/*
|
||
|
* VGA Sequencer index/data registers (most frequently used
|
||
|
* of VGAWonder-compatible registers).
|
||
|
*/
|
||
|
#define IO_VGA_SEQ_IND 0x03C4
|
||
|
#define IO_VGA_SEQ_DATA 0x03C5
|
||
|
|
||
|
/*
|
||
|
* VGA Graphics index/data registers (another frequently used
|
||
|
* VGA register pair)
|
||
|
*/
|
||
|
#define IO_VGA_GRAX_IND 0x03CE
|
||
|
#define IO_VGA_GRAX_DATA 0x03CF
|
||
|
|
||
|
/*
|
||
|
* ATI extended registers
|
||
|
*/
|
||
|
#define IO_reg1CE 0x01CE
|
||
|
#define IO_reg1CF 0x01CF
|
||
|
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Define the registers as subscripts to an array
|
||
|
*/
|
||
|
enum {
|
||
|
VGA_BASE_IO_PORT=0 ,
|
||
|
VGA_END_BREAK_PORT ,
|
||
|
VGA_SEQ_IND ,
|
||
|
VGA_SEQ_DATA ,
|
||
|
VGA_GRAX_IND ,
|
||
|
VGA_GRAX_DATA ,
|
||
|
reg1CE ,
|
||
|
reg1CF ,
|
||
|
CRTC_H_TOTAL_DISP ,
|
||
|
CRTC_H_SYNC_STRT_WID ,
|
||
|
CRTC_V_TOTAL_DISP ,
|
||
|
CRTC_V_SYNC_STRT_WID ,
|
||
|
CRTC_CRNT_VLINE ,
|
||
|
CRTC_OFF_PITCH ,
|
||
|
CRTC_INT_CNTL ,
|
||
|
CRTC_GEN_CNTL ,
|
||
|
OVR_CLR ,
|
||
|
OVR_WID_LEFT_RIGHT ,
|
||
|
OVR_WID_TOP_BOTTOM ,
|
||
|
CUR_CLR0 ,
|
||
|
CUR_CLR1 ,
|
||
|
CUR_OFFSET ,
|
||
|
CUR_HORZ_VERT_POSN ,
|
||
|
CUR_HORZ_VERT_OFF ,
|
||
|
SCRATCH_REG0 ,
|
||
|
SCRATCH_REG1 ,
|
||
|
CLOCK_CNTL ,
|
||
|
BUS_CNTL ,
|
||
|
MEM_CNTL ,
|
||
|
MEM_VGA_WP_SEL ,
|
||
|
MEM_VGA_RP_SEL ,
|
||
|
DAC_REGS ,
|
||
|
DAC_CNTL ,
|
||
|
GEN_TEST_CNTL ,
|
||
|
CONFIG_CNTL ,
|
||
|
CONFIG_CHIP_ID ,
|
||
|
CONFIG_STAT0 ,
|
||
|
CONFIG_STAT1 ,
|
||
|
DST_OFF_PITCH ,
|
||
|
DST_X ,
|
||
|
DST_Y ,
|
||
|
DST_Y_X ,
|
||
|
DST_WIDTH ,
|
||
|
DST_HEIGHT ,
|
||
|
DST_HEIGHT_WIDTH ,
|
||
|
DST_X_WIDTH ,
|
||
|
DST_BRES_LNTH ,
|
||
|
DST_BRES_ERR ,
|
||
|
DST_BRES_INC ,
|
||
|
DST_BRES_DEC ,
|
||
|
DST_CNTL ,
|
||
|
SRC_OFF_PITCH ,
|
||
|
SRC_X ,
|
||
|
SRC_Y ,
|
||
|
SRC_Y_X ,
|
||
|
SRC_WIDTH1 ,
|
||
|
SRC_HEIGHT1 ,
|
||
|
SRC_HEIGHT1_WIDTH1 ,
|
||
|
SRC_X_START ,
|
||
|
SRC_Y_START ,
|
||
|
SRC_Y_X_START ,
|
||
|
SRC_WIDTH2 ,
|
||
|
SRC_HEIGHT2 ,
|
||
|
SRC_HEIGHT2_WIDTH2 ,
|
||
|
SRC_CNTL ,
|
||
|
HOST_DATA0 ,
|
||
|
HOST_DATA1 ,
|
||
|
HOST_DATA2 ,
|
||
|
HOST_DATA3 ,
|
||
|
HOST_DATA4 ,
|
||
|
HOST_DATA5 ,
|
||
|
HOST_DATA6 ,
|
||
|
HOST_DATA7 ,
|
||
|
HOST_DATA8 ,
|
||
|
HOST_DATA9 ,
|
||
|
HOST_DATA10 ,
|
||
|
HOST_DATA11 ,
|
||
|
HOST_DATA12 ,
|
||
|
HOST_DATA13 ,
|
||
|
HOST_DATA14 ,
|
||
|
HOST_DATA15 ,
|
||
|
HOST_CNTL ,
|
||
|
PAT_REG0 ,
|
||
|
PAT_REG1 ,
|
||
|
PAT_CNTL ,
|
||
|
SC_LEFT ,
|
||
|
SC_RIGHT ,
|
||
|
SC_LEFT_RIGHT ,
|
||
|
SC_TOP ,
|
||
|
SC_BOTTOM ,
|
||
|
SC_TOP_BOTTOM ,
|
||
|
DP_BKGD_CLR ,
|
||
|
DP_FRGD_CLR ,
|
||
|
DP_WRITE_MASK ,
|
||
|
DP_CHAIN_MASK ,
|
||
|
DP_PIX_WIDTH ,
|
||
|
DP_MIX ,
|
||
|
DP_SRC ,
|
||
|
CLR_CMP_CLR ,
|
||
|
CLR_CMP_MSK ,
|
||
|
CLR_CMP_CNTL ,
|
||
|
FIFO_STAT ,
|
||
|
CONTEXT_MASK ,
|
||
|
CONTEXT_SAVE_CNTL ,
|
||
|
CONTEXT_LOAD_CNTL ,
|
||
|
GUI_TRAJ_CNTL ,
|
||
|
GUI_STAT
|
||
|
};
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Bit fields used in the registers.
|
||
|
*
|
||
|
* CRT Offset and Pitch
|
||
|
*/
|
||
|
#define CRTC_OFF_PITCH_Offset 0x000FFFFF
|
||
|
#define CRTC_OFF_PITCH_Pitch 0xFFC00000
|
||
|
|
||
|
/*
|
||
|
* CRT General Control
|
||
|
*/
|
||
|
#define CRTC_GEN_CNTL_DblScan 0x00000001
|
||
|
#define CRTC_GEN_CNTL_Interlace 0x00000002
|
||
|
#define CRTC_GEN_CNTL_HSynDisab 0x00000004
|
||
|
#define CRTC_GEN_CNTL_VSynDisab 0x00000008
|
||
|
#define CRTC_GEN_CNTL_CompSync 0x00000010
|
||
|
#define CRTC_GEN_CNTL_MuxMode 0x00000020
|
||
|
#define CRTC_GEN_CNTL_DispDisab 0x00000040
|
||
|
#define CRTC_GEN_CNTL_DepthMask 0x00000700
|
||
|
#define CRTC_GEN_CNTL_Dep4 0x00000100
|
||
|
#define CRTC_GEN_CNTL_Dep8 0x00000200
|
||
|
#define CRTC_GEN_CNTL_Dep15_555 0x00000300
|
||
|
#define CRTC_GEN_CNTL_Dep16_565 0x00000400
|
||
|
#define CRTC_GEN_CNTL_Dep24 0x00000500
|
||
|
#define CRTC_GEN_CNTL_Dep32 0x00000600
|
||
|
#define CRTC_GEN_CNTL_ShowVga 0x00000000
|
||
|
#define CRTC_GEN_CNTL_ShowAcc 0x01000000
|
||
|
#define CRTC_GEN_CNTL_CrtcEna 0x02000000
|
||
|
|
||
|
/*
|
||
|
* Clock control
|
||
|
*/
|
||
|
#define CLOCK_CNTL_ClockStrobe 0x00000040
|
||
|
|
||
|
/*
|
||
|
* Memory Control
|
||
|
*/
|
||
|
#define MEM_CNTL_MemSizeMsk 0x00000007
|
||
|
#define MEM_CNTL_MemSize512k 0x00000000
|
||
|
#define MEM_CNTL_MemSize1Mb 0x00000001
|
||
|
#define MEM_CNTL_MemSize2Mb 0x00000002
|
||
|
#define MEM_CNTL_MemSize4Mb 0x00000003
|
||
|
#define MEM_CNTL_MemSize6Mb 0x00000004
|
||
|
#define MEM_CNTL_MemSize8Mb 0x00000005
|
||
|
#define MEM_CNTL_MemBndryMsk 0x00070000
|
||
|
#define MEM_CNTL_MemBndryEn 0x00040000
|
||
|
#define MEM_CNTL_MemBndry0k 0x00000000
|
||
|
#define MEM_CNTL_MemBndry256k 0x00010000
|
||
|
#define MEM_CNTL_MemBndry512k 0x00020000
|
||
|
#define MEM_CNTL_MemBndry1Mb 0x00030000
|
||
|
|
||
|
/*
|
||
|
* DAC control
|
||
|
*/
|
||
|
#define DAC_CNTL_ExtSelMask 0x00000003
|
||
|
#define DAC_CNTL_ExtSelStrip ~DAC_CNTL_ExtSelMask
|
||
|
#define DAC_CNTL_ExtSelRS2 0x00000001
|
||
|
#define DAC_CNTL_ExtSelRS3 0x00000002
|
||
|
#define DAC_CNTL_VgaAddrEna 0x00002000
|
||
|
|
||
|
/*
|
||
|
* General and Test control
|
||
|
*/
|
||
|
#define GEN_TEST_CNTL_CursorEna 0x00000080
|
||
|
#define GEN_TEST_CNTL_GuiEna 0x00000100
|
||
|
#define GEN_TEST_CNTL_BlkWrtEna 0x00000200
|
||
|
#define GEN_TEST_CNTL_GuiRegEna 0x00020000
|
||
|
#define GEN_TEST_CNTL_TestMode 0x00700000
|
||
|
#define GEN_TEST_CNTL_TestMode0 0x00000000
|
||
|
#define GEN_TEST_CNTL_TestMode1 0x00100000
|
||
|
#define GEN_TEST_CNTL_TestMode2 0x00200000
|
||
|
#define GEN_TEST_CNTL_TestMode3 0x00300000
|
||
|
#define GEN_TEST_CNTL_TestMode4 0x00400000
|
||
|
#define GEN_TEST_CNTL_MemWR 0x01000000
|
||
|
#define GEN_TEST_CNTL_MemStrobe 0x02000000
|
||
|
#define GEN_TEST_CNTL_DstSSEna 0x04000000
|
||
|
#define GEN_TEST_CNTL_DstSSStrobe 0x08000000
|
||
|
#define GEN_TEST_CNTL_SrcSSEna 0x10000000
|
||
|
#define GEN_TEST_CNTL_SrcSSStrobe 0x20000000
|
||
|
|
||
|
/*
|
||
|
* Configuration Control
|
||
|
*/
|
||
|
#define CONFIG_CNTL_LinApDisab 0x00000000
|
||
|
#define CONFIG_CNTL_LinAp4M 0x00000001
|
||
|
#define CONFIG_CNTL_LinAp8M 0x00000002
|
||
|
#define CONFIG_CNTL_LinApMask 0x00000003
|
||
|
#define CONFIG_CNTL_VgaApDisab 0x00000000
|
||
|
#define CONFIG_CNTL_VgaApEnab 0x00000004
|
||
|
#define CONFIG_CNTL_LinApLocMask 0x00003FF0
|
||
|
#define CONFIG_CNTL_LinApLocShift 4
|
||
|
#define CONFIG_CNTL_CardIDMask 0x00070000
|
||
|
#define CONFIG_CNTL_VgaEnabled 0x00000000
|
||
|
#define CONFIG_CNTL_VgaDisabled 0x00080000
|
||
|
|
||
|
/*
|
||
|
* Chip identification
|
||
|
*/
|
||
|
#define CONFIG_CHIP_ID_TypeMask 0x0000FFFF
|
||
|
#define CONFIG_CHIP_ID_ClassMask 0x00FF0000
|
||
|
#define CONFIG_CHIP_ID_RevMask 0xFF000000
|
||
|
#define CONFIG_CHIP_ID_TypeGX 0x000000D7
|
||
|
#define CONFIG_CHIP_ID_TypeCX 0x00000057
|
||
|
#define CONFIG_CHIP_ID_RevC 0x00000000
|
||
|
#define CONFIG_CHIP_ID_RevD 0x01000000
|
||
|
#define CONFIG_CHIP_ID_RevE 0x02000000
|
||
|
#define CONFIG_CHIP_ID_RevF 0x03000000
|
||
|
#define CONFIG_CHIP_ID_GXRevC CONFIG_CHIP_ID_TypeGX | CONFIG_CHIP_ID_RevC
|
||
|
#define CONFIG_CHIP_ID_GXRevD CONFIG_CHIP_ID_TypeGX | CONFIG_CHIP_ID_RevD
|
||
|
#define CONFIG_CHIP_ID_GXRevE CONFIG_CHIP_ID_TypeGX | CONFIG_CHIP_ID_RevE
|
||
|
#define CONFIG_CHIP_ID_GXRevF CONFIG_CHIP_ID_TypeGX | CONFIG_CHIP_ID_RevF
|
||
|
|
||
|
|
||
|
//
|
||
|
// ASIC IDs (upper byte of CONFIG_CHIP_ID)
|
||
|
//
|
||
|
#define ASIC_ID_NEC_VT_A3 0x08000000
|
||
|
#define ASIC_ID_NEC_VT_A4 0x48000000
|
||
|
#define ASIC_ID_SGS_VT_A4 0x40000000
|
||
|
|
||
|
/*
|
||
|
* Configuration status register 0
|
||
|
*/
|
||
|
#define CONFIG_STAT0_BusMask 0x00000007
|
||
|
#define CONFIG_STAT0_MemTypeMask 0x00000038
|
||
|
#define CONFIG_STAT0_DRAM256x4 0x00000000
|
||
|
#define CONFIG_STAT0_VRAM256xAny 0x00000008
|
||
|
#define CONFIG_STAT0_VRAM256x16ssr 0x00000010
|
||
|
#define CONFIG_STAT0_DRAM256x16 0x00000018
|
||
|
#define CONFIG_STAT0_GDRAM256x16 0x00000020
|
||
|
#define CONFIG_STAT0_EVRAM256xAny 0x00000028
|
||
|
#define CONFIG_STAT0_EVRAM256x16ssr 0x00000030
|
||
|
#define CONFIG_STAT0_MemTypeShift 3
|
||
|
#define CONFIG_STAT0_DualCasEna 0x00000040
|
||
|
#define CONFIG_STAT0_LocalBusOpt 0x00000180
|
||
|
#define CONFIG_STAT0_DacTypeMask 0x00000E00
|
||
|
#define CONFIG_STAT0_DacTypeShift 9
|
||
|
#define CONFIG_STAT0_CardId 0x00007000
|
||
|
#define CONFIG_STAT0_NoTristate 0x00008000
|
||
|
#define CONFIG_STAT0_ExtRomAddr 0x003F0000
|
||
|
#define CONFIG_STAT0_RomDisab 0x00400000
|
||
|
#define CONFIG_STAT0_VgaEna 0x00800000
|
||
|
#define CONFIG_STAT0_VlbCfg 0x01000000
|
||
|
#define CONFIG_STAT0_ChipEna 0x02000000
|
||
|
#define CONFIG_STAT0_NoReadDelay 0x04000000
|
||
|
#define CONFIG_STAT0_RomOption 0x08000000
|
||
|
#define CONFIG_STAT0_BusOption 0x10000000
|
||
|
#define CONFIG_STAT0_LBDacWriteEna 0x20000000
|
||
|
#define CONFIG_STAT0_VlbRdyDisab 0x40000000
|
||
|
#define CONFIG_STAT0_Ap4GigRange 0x80000000
|
||
|
|
||
|
/*
|
||
|
* Destination width
|
||
|
*/
|
||
|
#define DST_WIDTH_Disable 0x80000000
|
||
|
|
||
|
/*
|
||
|
* Destination control
|
||
|
*/
|
||
|
#define DST_CNTL_XDir 0x00000001
|
||
|
#define DST_CNTL_YDir 0x00000002
|
||
|
#define DST_CNTL_YMajor 0x00000004
|
||
|
#define DST_CNTL_XTile 0x00000008
|
||
|
#define DST_CNTL_YTile 0x00000010
|
||
|
#define DST_CNTL_LastPel 0x00000020
|
||
|
#define DST_CNTL_PolyEna 0x00000040
|
||
|
#define DST_CNTL_24_RotEna 0x00000080
|
||
|
#define DST_CNTL_24_Rot 0x00000700
|
||
|
|
||
|
/*
|
||
|
* Source offset and pitch
|
||
|
*/
|
||
|
#define SRC_OFF_PITCH_Offset 0x000FFFFF
|
||
|
#define SRC_OFF_PITCH_Pitch 0xFFC00000
|
||
|
|
||
|
/*
|
||
|
* Source control
|
||
|
*/
|
||
|
#define SRC_CNTL_PatEna 0x0001
|
||
|
#define SRC_CNTL_PatRotEna 0x0002
|
||
|
#define SRC_CNTL_LinearEna 0x0004
|
||
|
#define SRC_CNTL_ByteAlign 0x0008
|
||
|
#define SRC_CNTL_LineXDir 0x0010
|
||
|
|
||
|
/*
|
||
|
* Host control
|
||
|
*/
|
||
|
#define HOST_CNTL_ByteAlign 0x0001
|
||
|
|
||
|
/*
|
||
|
* Pattern control
|
||
|
*/
|
||
|
#define PAT_CNTL_MonoEna 0x0001
|
||
|
#define PAT_CNTL_Clr4x2Ena 0x0002
|
||
|
#define PAT_CNTL_Clr8x1Ena 0x0004
|
||
|
|
||
|
/*
|
||
|
* Datapath Source selections
|
||
|
*/
|
||
|
#define DP_SRC_BkgdClr 0x0000
|
||
|
#define DP_SRC_FrgdClr 0x0001
|
||
|
#define DP_SRC_Host 0x0002
|
||
|
#define DP_SRC_Blit 0x0003
|
||
|
#define DP_SRC_Pattern 0x0004
|
||
|
#define DP_SRC_Always1 0x00000000
|
||
|
#define DP_SRC_MonoPattern 0x00010000
|
||
|
#define DP_SRC_MonoHost 0x00020000
|
||
|
#define DP_SRC_MonoBlit 0x00030000
|
||
|
|
||
|
/*
|
||
|
* Colour Comparison control
|
||
|
*/
|
||
|
#define CLR_CMP_CNTL_Source 0x00010000
|
||
|
|
||
|
/*
|
||
|
* Context load and store pointers
|
||
|
*/
|
||
|
#define CONTEXT_LOAD_Cmd 0x00030000
|
||
|
#define CONTEXT_LOAD_CmdLoad 0x00010000
|
||
|
#define CONTEXT_LOAD_CmdBlt 0x00020000
|
||
|
#define CONTEXT_LOAD_CmdLine 0x00030000
|
||
|
#define CONTEXT_LOAD_Disable 0x80000000
|
||
|
|
||
|
//---------------------------------------------------------
|
||
|
//---------------------------------------------------------
|
||
|
// Define the ASIC revisions into something Useful
|
||
|
|
||
|
#define MACH32_REV3 0
|
||
|
#define MACH32_REV5 1 // not in production
|
||
|
#define MACH32_REV6 2
|
||
|
#define MACH32_CX 4
|
||
|
|
||
|
|
||
|
//---------------------------------------------------------
|
||
|
// Mix functions
|
||
|
|
||
|
#define MIX_FN_NOT_D 0x0000 //NOT dest
|
||
|
#define MIX_FN_ZERO 0x0001 //dest = 0
|
||
|
#define MIX_FN_ONE 0x0002 //dest = 1
|
||
|
#define MIX_FN_LEAVE_ALONE 0x0003 //dest
|
||
|
#define MIX_FN_NOT_S 0x0004 //NOT source
|
||
|
#define MIX_FN_XOR 0x0005 //source XOR dest
|
||
|
#define MIX_FN_XNOR 0x0006 //source XOR NOT dest
|
||
|
#define MIX_FN_PAINT 0x0007 //source
|
||
|
#define MIX_FN_NAND 0x0008 //NOT source OR NOT dest
|
||
|
#define MIX_FN_D_OR_NOT_S 0x0009 //NOT source OR dest
|
||
|
#define MIX_FN_NOT_D_OR_S 0x000A //source OR NOT dest
|
||
|
#define MIX_FN_OR 0x000B //source OR dest
|
||
|
#define MIX_FN_AND 0x000C //dest AND source
|
||
|
#define MIX_FN_NOT_D_AND_S 0x000D //NOT dest AND source
|
||
|
#define MIX_FN_D_AND_NOT_S 0x000E //dest AND NOT source
|
||
|
#define MIX_FN_NOR 0x000F //NOT dest AND NOT source
|
||
|
#define MIX_FN_AVG 0x0017 // (dest+source)/2
|
||
|
|
||
|
//
|
||
|
//
|
||
|
//---------------------------------------------------------
|
||
|
//
|
||
|
|
||
|
/*
|
||
|
* Values for DP_PIX_WIDTH register
|
||
|
*/
|
||
|
#define DP_PIX_WIDTH_Mono 0x00000000
|
||
|
#define DP_PIX_WIDTH_4bpp 0x00000001
|
||
|
#define DP_PIX_WIDTH_8bpp 0x00000002
|
||
|
#define DP_PIX_WIDTH_15bpp 0x00000003
|
||
|
#define DP_PIX_WIDTH_16bpp 0x00000004
|
||
|
#define DP_PIX_WIDTH_32bpp 0x00000006
|
||
|
#define DP_PIX_WIDTH_NibbleSwap 0x01000000
|
||
|
|
||
|
/*
|
||
|
* Values for DP_SRC register
|
||
|
*/
|
||
|
#define DP_BKGD_SRC_BG 0x00000000 // Background Color Reg
|
||
|
#define DP_BKGD_SRC_FG 0x00000001 // Foreground Color Reg
|
||
|
#define DP_BKGD_SRC_HOST 0x00000002 // Host data
|
||
|
#define DP_BKGD_SRC_BLIT 0x00000003 // VRAM blit source
|
||
|
#define DP_BKGD_SRC_PATT 0x00000004 // Pattern registers
|
||
|
//
|
||
|
#define DP_FRGD_SRC_BG 0x00000000 // Background Color Register
|
||
|
#define DP_FRGD_SRC_FG 0x00000100 // Foreground Color Register
|
||
|
#define DP_FRGD_SRC_HOST 0x00000200 // Host data
|
||
|
#define DP_FRGD_SRC_BLIT 0x00000300 // VRAM blit source
|
||
|
#define DP_FRGD_SRC_PATT 0x00000400 // Pattern registers
|
||
|
//
|
||
|
#define DP_MONO_SRC_ONE 0x00000000 // Always '1'
|
||
|
#define DP_MONO_SRC_PATT 0x00010000 // Pattern registers
|
||
|
#define DP_MONO_SRC_HOST 0x00020000 // Host data
|
||
|
#define DP_MONO_SRC_BLIT 0x00030000 // Blit source
|
||
|
|
||
|
/*
|
||
|
* Values for FIFO_STAT register
|
||
|
*/
|
||
|
#define ONE_WORD 0x00008000 /* One free FIFO entry */
|
||
|
#define TWO_WORDS 0x0000C000
|
||
|
#define THREE_WORDS 0x0000E000
|
||
|
#define FOUR_WORDS 0x0000F000
|
||
|
#define FIVE_WORDS 0x0000F800
|
||
|
#define SIX_WORDS 0x0000FC00
|
||
|
#define SEVEN_WORDS 0x0000FE00
|
||
|
#define EIGHT_WORDS 0x0000FF00
|
||
|
#define NINE_WORDS 0x0000FF80
|
||
|
#define TEN_WORDS 0x0000FFC0
|
||
|
#define ELEVEN_WORDS 0x0000FFE0
|
||
|
#define TWELVE_WORDS 0x0000FFF0
|
||
|
#define THIRTEEN_WORDS 0x0000FFF8
|
||
|
#define FOURTEEN_WORDS 0x0000FFFC
|
||
|
#define FIFTEEN_WORDS 0x0000FFFE
|
||
|
#define SIXTEEN_WORDS 0x0000FFFF /* Sixteen free FIFO entries */
|
||
|
#define FIFO_ERR 0x80000000 /* FIFO overrun error */
|
||
|
|
||
|
/*
|
||
|
* Fields in GUI_TRAJ_CNTL register
|
||
|
*/
|
||
|
#define GUI_TRAJ_CNTL_DxtXDir 0x00000001 // 1=left to right
|
||
|
#define GUI_TRAJ_CNTL_DstYDir 0x00000002 // 1=top to bottom
|
||
|
#define GUI_TRAJ_CNTL_DstYMajor 0x00000004 // 1=Y-major line
|
||
|
#define GUI_TRAJ_CNTL_DstXTile 0x00000008 // Enable tiling in X direction
|
||
|
#define GUI_TRAJ_CNTL_DstYTile 0x00000010 // Enable tiling in Y direction
|
||
|
#define GUI_TRAJ_CNTL_DstLastPel 0x00000020 // Draw last pixel
|
||
|
#define GUI_TRAJ_CNTL_DstPolygonEna 0x00000040 // Polygon outline/fill enable
|
||
|
#define GUI_TRAJ_CNTL_SrcPattEna 0x00010000 // Enable pattern source
|
||
|
#define GUI_TRAJ_CNTL_SrcPattRotEna 0x00020000 // Enable pattern source rotation
|
||
|
#define GUI_TRAJ_CNTL_SrcLinearEna 0x00040000 // Source advanced linearly in memory
|
||
|
#define GUI_TRAJ_CNTL_SrcByteAlign 0x00080000 // Source is byte aligned
|
||
|
#define GUI_TRAJ_CNTL_SrcLineXDir 0x00100000 // Source X direction during Bresenham linedraw
|
||
|
#define GUI_TRAJ_CNTL_PattMonoEna 0x01000000 // Monochrome 8x8 pattern enable
|
||
|
#define GUI_TRAJ_CNTL_PattClr4x2Ena 0x02000000 // Colour 4x2 pattern enable
|
||
|
#define GUI_TRAJ_CNTL_PattClr8x1Ena 0x04000000 // Colour 8x1 pattern enable
|
||
|
#define GUI_TRAJ_CNTL_HostByteAlign 0x10000000 // Host data is byte aligned
|
||
|
|
||
|
/*
|
||
|
* Fields in GUI_STAT register
|
||
|
*/
|
||
|
#define GUI_STAT_GuiActive 0x00000001 /* Engine busy */
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Extended BIOS services. Word values are function selectors, doubleword
|
||
|
* values are bit flags which may be ORed with each other for "write"
|
||
|
* calls or extracted for "read" calls.
|
||
|
*/
|
||
|
#define BIOS_PREFIX_VGA_ENAB 0xA000 /* Accelerator BIOS prefix with VGA enabled */
|
||
|
#define BIOS_PREFIX_MAX_DISAB 0xAF00 /* Highest allowed BIOS prefix with VGA disabled */
|
||
|
#define BIOS_PREFIX_INCREMENT 0x0100 /* Step between BIOS prefixes */
|
||
|
#define BIOS_PREFIX_UNASSIGNED 0xFF00 /* Flag to show this card's BIOS prefix is not yet known */
|
||
|
|
||
|
|
||
|
#define BIOS_LOAD_CRTC_LB 0x00
|
||
|
#define BIOS_LOAD_CRTC phwDeviceExtension->BiosPrefix | BIOS_LOAD_CRTC_LB
|
||
|
|
||
|
#define BIOS_DEPTH_MASK 0x00000007
|
||
|
#define BIOS_DEPTH_4BPP 0x00000001
|
||
|
#define BIOS_DEPTH_8BPP 0x00000002
|
||
|
#define BIOS_DEPTH_15BPP_555 0x00000003
|
||
|
#define BIOS_DEPTH_16BPP_565 0x00000004
|
||
|
#define BIOS_DEPTH_24BPP 0x00000005
|
||
|
#define BIOS_DEPTH_32BPP 0x00000006
|
||
|
#define BIOS_ORDER_32BPP_MASK 0x00000028
|
||
|
#define BIOS_DEPTH_ORDER_MASK BIOS_DEPTH_MASK | BIOS_ORDER_32BPP_MASK
|
||
|
#define BIOS_ORDER_32BPP_RGBx 0x00000000
|
||
|
#define BIOS_ORDER_32BPP_xRGB 0x00000008
|
||
|
#define BIOS_ORDER_32BPP_BGRx 0x00000020
|
||
|
#define BIOS_ORDER_32BPP_xBGR 0x00000028
|
||
|
#define BIOS_DEPTH_32BPP_RGBx BIOS_DEPTH_32BPP | BIOS_ORDER_32BPP_RGBx
|
||
|
#define BIOS_DEPTH_32BPP_xRGB BIOS_DEPTH_32BPP | BIOS_ORDER_32BPP_xRGB
|
||
|
#define BIOS_DEPTH_32BPP_BGRx BIOS_DEPTH_32BPP | BIOS_ORDER_32BPP_BGRx
|
||
|
#define BIOS_DEPTH_32BPP_xBGR BIOS_DEPTH_32BPP | BIOS_ORDER_32BPP_xBGR
|
||
|
#define BIOS_ENABLE_GAMMA 0x00000010 /* Enable gamma correction */
|
||
|
#define BIOS_PITCH_MASK 0x000000C0
|
||
|
#define BIOS_PITCH_1024 0x00000000 /* Screen pitch 1024 pixels */
|
||
|
#define BIOS_PITCH_UNCHANGED 0x00000040 /* Don't change screen pitch */
|
||
|
#define BIOS_PITCH_HOR_RES 0x00000080 /* Screen pitch is horizontal resolution */
|
||
|
#define BIOS_RES_MASK 0x0000FF00
|
||
|
#define BIOS_RES_640x480 0x00001200
|
||
|
#define BIOS_RES_800x600 0x00006A00
|
||
|
#define BIOS_RES_1024x768 0x00005500
|
||
|
#define BIOS_RES_EEPROM 0x00008000 /* Load table from EEPROM */
|
||
|
#define BIOS_RES_BUFFER 0x00008100 /* Load table from buffer in first 1M */
|
||
|
#define BIOS_RES_HIGH_BUFFER 0x00009100 /* Load table from unrestricted buffer */
|
||
|
#define BIOS_RES_OEM 0x00008200 /* OEM-specific mode */
|
||
|
#define BIOS_RES_1280x1024 0x00008300
|
||
|
#define BIOS_RES_1600x1200 0x00008400
|
||
|
|
||
|
#define BIOS_SET_MODE_LB 0x01
|
||
|
#define BIOS_SET_MODE phwDeviceExtension->BiosPrefix | BIOS_SET_MODE_LB
|
||
|
|
||
|
#define BIOS_MODE_VGA 0x00000000
|
||
|
#define BIOS_MODE_COPROCESSOR 0x00000001
|
||
|
|
||
|
#define BIOS_LOAD_SET_LB 0x02
|
||
|
#define BIOS_LOAD_SET phwDeviceExtension->BiosPrefix | BIOS_LOAD_SET_LB
|
||
|
#define BIOS_READ_EEPROM_LB 0x03
|
||
|
#define BIOS_READ_EEPROM phwDeviceExtension->BiosPrefix | BIOS_READ_EEPROM_LB
|
||
|
#define BIOS_WRITE_EEPROM_LB 0x04
|
||
|
#define BIOS_WRITE_EEPROM phwDeviceExtension->BiosPrefix | BIOS_WRITE_EEPROM_LB
|
||
|
#define BIOS_APERTURE_LB 0x05
|
||
|
#define BIOS_APERTURE phwDeviceExtension->BiosPrefix | BIOS_APERTURE_LB
|
||
|
|
||
|
#define BIOS_DISABLE_APERTURE 0x00000000
|
||
|
#define BIOS_LINEAR_APERTURE 0x00000001
|
||
|
#define BIOS_VGA_APERTURE 0x00000004
|
||
|
|
||
|
#define BIOS_SHORT_QUERY_LB 0x06
|
||
|
#define BIOS_SHORT_QUERY phwDeviceExtension->BiosPrefix | BIOS_SHORT_QUERY_LB
|
||
|
|
||
|
#define BIOS_AP_DISABLED 0x00000000
|
||
|
#define BIOS_AP_4M 0x00000001
|
||
|
#define BIOS_AP_8M 0x00000002
|
||
|
#define BIOS_AP_16M 0x00000003
|
||
|
#define BIOS_AP_SIZEMASK 0x00000003
|
||
|
#define BIOS_AP_SETTABLE 0x00000000 /* User can set aperture */
|
||
|
#define BIOS_AP_FIXED 0x00000040 /* Aperture location is fixed */
|
||
|
#define BIOS_AP_RNG_128M 0x00000000 /* Aperture must be below 128M */
|
||
|
#define BIOS_AP_RNG_4G 0x00000080 /* Aperture can be anywhere */
|
||
|
|
||
|
#define BIOS_CAP_LIST_LB 0x07
|
||
|
#define BIOS_CAP_LIST phwDeviceExtension->BiosPrefix | BIOS_CAP_LIST_LB
|
||
|
#define BIOS_GET_QUERY_SIZE_LB 0x08
|
||
|
#define BIOS_GET_QUERY_SIZE phwDeviceExtension->BiosPrefix | BIOS_GET_QUERY_SIZE_LB
|
||
|
#define BIOS_QUERY_LB 0x09
|
||
|
#define BIOS_QUERY phwDeviceExtension->BiosPrefix | BIOS_QUERY_LB
|
||
|
|
||
|
/*
|
||
|
* The following values are used for both BIOS_GET_QUERY_SIZE
|
||
|
* and BIOS_QUERY
|
||
|
*/
|
||
|
#define BIOS_QUERY_HEADER 0x00000000 /* Get header information only */
|
||
|
#define BIOS_QUERY_FULL 0x00000001 /* Also get mode tables */
|
||
|
|
||
|
#define BIOS_GET_CLOCK_LB 0x0A
|
||
|
#define BIOS_GET_CLOCK phwDeviceExtension->BiosPrefix | BIOS_GET_CLOCK_LB
|
||
|
#define BIOS_SET_CLOCK_LB 0x0B
|
||
|
#define BIOS_SET_CLOCK phwDeviceExtension->BiosPrefix | BIOS_SET_CLOCK_LB
|
||
|
#define BIOS_SET_DPMS_LB 0x0C
|
||
|
#define BIOS_SET_DPMS phwDeviceExtension->BiosPrefix | BIOS_SET_DPMS_LB
|
||
|
#define BIOS_GET_DPMS_LB 0x0D
|
||
|
#define BIOS_GET_DPMS phwDeviceExtension->BiosPrefix | BIOS_GET_DPMS_LB
|
||
|
|
||
|
#define BIOS_DPMS_ACTIVE 0x00000000
|
||
|
#define BIOS_DPMS_STANDBY 0x00000001
|
||
|
#define BIOS_DPMS_SUSPEND 0x00000002
|
||
|
#define BIOS_DPMS_OFF 0x00000003
|
||
|
#define BIOS_DPMS_BLANK_SCREEN 0x00000004
|
||
|
|
||
|
/*
|
||
|
* Set and return Graphics Controller's power management state.
|
||
|
*/
|
||
|
#define BIOS_SET_PM_LB 0x0E
|
||
|
#define BIOS_SET_PM phwDeviceExtension->BiosPrefix | BIOS_SET_PM_LB
|
||
|
#define BIOS_GET_PM_LB 0x0F
|
||
|
#define BIOS_GET_PM phwDeviceExtension->BiosPrefix | BIOS_GET_PM_LB
|
||
|
#define BIOS_RAMDAC_STATE_LB 0x10
|
||
|
#define BIOS_RAMDAC_STATE phwDeviceExtension->BiosPrefix | BIOS_RAMDAC_STATE_LB
|
||
|
|
||
|
#define BIOS_RAMDAC_NORMAL 0x00000000
|
||
|
#define BIOS_RAMDAC_SLEEP 0x00000001
|
||
|
|
||
|
#define BIOS_STORAGE_INFO_LB 0x11 /* Get external storage device info */
|
||
|
#define BIOS_STORAGE_INFO phwDeviceExtension->BiosPrefix | BIOS_STORAGE_INFO_LB
|
||
|
|
||
|
#define BIOS_DEVICE_TYPE 0x0000000F
|
||
|
#define BIOS_READ_WRITE 0x00000000
|
||
|
#define BIOS_RDONLY 0x00000010
|
||
|
#define BIOS_NO_READ_WRITE 0x00000030
|
||
|
#define BIOS_READ_WRITE_APP 0x00000040
|
||
|
#define BIOS_NO_EXT_STORAGE 0x00000080
|
||
|
#define BIOS_NUM_16BIT_ENTRIES 0x0000FF00
|
||
|
#define BIOS_CRTC_TABLE_OFFSET 0x000000FF
|
||
|
#define BIOS_CRTC_TABLE_SIZE 0x0000FF00
|
||
|
|
||
|
#define BIOS_QUERY_IOBASE_LB 0x12 /* Get I/O base address */
|
||
|
#define BIOS_QUERY_IOBASE phwDeviceExtension->BiosPrefix | BIOS_QUERY_IOBASE_LB
|
||
|
#define BIOS_DDC_SUPPORT_LB 0x13 /* Get Display Data Channel support information */
|
||
|
#define BIOS_DDC_SUPPORT phwDeviceExtension->BiosPrefix | BIOS_DDC_SUPPORT_LB
|
||
|
|
||
|
|
||
|
#define REG_BLOCK_0 0x00000100
|
||
|
#define GP_IO (REG_BLOCK_0 | 0x1E)
|