Back to home page

OSCL-LXR

 
 

    


0001 /**************************************************************************
0002 
0003 Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
0004 All Rights Reserved.
0005 
0006 Permission is hereby granted, free of charge, to any person obtaining a
0007 copy of this software and associated documentation files (the
0008 "Software"), to deal in the Software without restriction, including
0009 without limitation the rights to use, copy, modify, merge, publish,
0010 distribute, sub license, and/or sell copies of the Software, and to
0011 permit persons to whom the Software is furnished to do so, subject to
0012 the following conditions:
0013 
0014 The above copyright notice and this permission notice (including the
0015 next paragraph) shall be included in all copies or substantial portions
0016 of the Software.
0017 
0018 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
0019 OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
0020 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
0021 IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
0022 ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
0023 TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
0024 SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
0025 
0026 **************************************************************************/
0027 
0028 /*
0029  * Authors:
0030  *   Kevin E. Martin <kevin@precisioninsight.com>
0031  */
0032 
0033 /* I/O register offsets */
0034 #define SRX VGA_SEQ_I
0035 #define GRX VGA_GFX_I
0036 #define ARX VGA_ATT_IW
0037 #define XRX 0x3D6
0038 #define MRX 0x3D2
0039 
0040 /* VGA Color Palette Registers */
0041 #define DACMASK     0x3C6
0042 #define DACSTATE    0x3C7
0043 #define DACRX       0x3C7
0044 #define DACWX       0x3C8
0045 #define DACDATA     0x3C9
0046 
0047 /* CRT Controller Registers (CRX) */
0048 #define START_ADDR_HI       0x0C
0049 #define START_ADDR_LO       0x0D
0050 #define VERT_SYNC_END       0x11
0051 #define EXT_VERT_TOTAL      0x30
0052 #define EXT_VERT_DISPLAY    0x31
0053 #define EXT_VERT_SYNC_START 0x32
0054 #define EXT_VERT_BLANK_START    0x33
0055 #define EXT_HORIZ_TOTAL     0x35
0056 #define EXT_HORIZ_BLANK     0x39
0057 #define EXT_START_ADDR      0x40
0058 #define EXT_START_ADDR_ENABLE   0x80
0059 #define EXT_OFFSET      0x41
0060 #define EXT_START_ADDR_HI   0x42
0061 #define INTERLACE_CNTL      0x70
0062 #define INTERLACE_ENABLE    0x80
0063 #define INTERLACE_DISABLE   0x00
0064 
0065 /* Miscellaneous Output Register */
0066 #define MSR_R       0x3CC
0067 #define MSR_W       0x3C2
0068 #define IO_ADDR_SELECT  0x01
0069 
0070 #define MDA_BASE    0x3B0
0071 #define CGA_BASE    0x3D0
0072 
0073 /* System Configuration Extension Registers (XRX) */
0074 #define IO_CTNL     0x09
0075 #define EXTENDED_ATTR_CNTL  0x02
0076 #define EXTENDED_CRTC_CNTL  0x01
0077 
0078 #define ADDRESS_MAPPING 0x0A
0079 #define PACKED_MODE_ENABLE  0x04
0080 #define LINEAR_MODE_ENABLE  0x02
0081 #define PAGE_MAPPING_ENABLE 0x01
0082 
0083 #define BITBLT_CNTL 0x20
0084 #define COLEXP_MODE     0x30
0085 #define COLEXP_8BPP     0x00
0086 #define COLEXP_16BPP        0x10
0087 #define COLEXP_24BPP        0x20
0088 #define COLEXP_RESERVED     0x30
0089 #define CHIP_RESET      0x02
0090 #define BITBLT_STATUS       0x01
0091 
0092 #define DISPLAY_CNTL    0x40
0093 #define VGA_WRAP_MODE       0x02
0094 #define VGA_WRAP_AT_256KB   0x00
0095 #define VGA_NO_WRAP     0x02
0096 #define GUI_MODE        0x01
0097 #define STANDARD_VGA_MODE   0x00
0098 #define HIRES_MODE      0x01
0099 
0100 #define DRAM_ROW_TYPE   0x50
0101 #define DRAM_ROW_0      0x07
0102 #define DRAM_ROW_0_SDRAM    0x00
0103 #define DRAM_ROW_0_EMPTY    0x07
0104 #define DRAM_ROW_1      0x38
0105 #define DRAM_ROW_1_SDRAM    0x00
0106 #define DRAM_ROW_1_EMPTY    0x38
0107 #define DRAM_ROW_CNTL_LO 0x51
0108 #define DRAM_CAS_LATENCY    0x10
0109 #define DRAM_RAS_TIMING     0x08
0110 #define DRAM_RAS_PRECHARGE  0x04
0111 #define DRAM_ROW_CNTL_HI 0x52
0112 #define DRAM_EXT_CNTL   0x53
0113 #define DRAM_REFRESH_RATE   0x03
0114 #define DRAM_REFRESH_DISABLE    0x00
0115 #define DRAM_REFRESH_60HZ   0x01
0116 #define DRAM_REFRESH_FAST_TEST  0x02
0117 #define DRAM_REFRESH_RESERVED   0x03
0118 #define DRAM_TIMING 0x54
0119 #define DRAM_ROW_BNDRY_0 0x55
0120 #define DRAM_ROW_BNDRY_1 0x56
0121 
0122 #define DPMS_SYNC_SELECT 0x61
0123 #define VSYNC_CNTL      0x08
0124 #define VSYNC_ON        0x00
0125 #define VSYNC_OFF       0x08
0126 #define HSYNC_CNTL      0x02
0127 #define HSYNC_ON        0x00
0128 #define HSYNC_OFF       0x02
0129 
0130 #define PIXPIPE_CONFIG_0 0x80
0131 #define DAC_8_BIT       0x80
0132 #define DAC_6_BIT       0x00
0133 #define HW_CURSOR_ENABLE    0x10
0134 #define EXTENDED_PALETTE    0x01
0135 
0136 #define PIXPIPE_CONFIG_1 0x81
0137 #define DISPLAY_COLOR_MODE  0x0F
0138 #define DISPLAY_VGA_MODE    0x00
0139 #define DISPLAY_8BPP_MODE   0x02
0140 #define DISPLAY_15BPP_MODE  0x04
0141 #define DISPLAY_16BPP_MODE  0x05
0142 #define DISPLAY_24BPP_MODE  0x06
0143 #define DISPLAY_32BPP_MODE  0x07
0144 
0145 #define PIXPIPE_CONFIG_2 0x82
0146 #define DISPLAY_GAMMA_ENABLE    0x08
0147 #define DISPLAY_GAMMA_DISABLE   0x00
0148 #define OVERLAY_GAMMA_ENABLE    0x04
0149 #define OVERLAY_GAMMA_DISABLE   0x00
0150 
0151 #define CURSOR_CONTROL  0xA0
0152 #define CURSOR_ORIGIN_SCREEN    0x00
0153 #define CURSOR_ORIGIN_DISPLAY   0x10
0154 #define CURSOR_MODE     0x07
0155 #define CURSOR_MODE_DISABLE 0x00
0156 #define CURSOR_MODE_32_4C_AX    0x01
0157 #define CURSOR_MODE_128_2C  0x02
0158 #define CURSOR_MODE_128_1C  0x03
0159 #define CURSOR_MODE_64_3C   0x04
0160 #define CURSOR_MODE_64_4C_AX    0x05
0161 #define CURSOR_MODE_64_4C   0x06
0162 #define CURSOR_MODE_RESERVED    0x07
0163 #define CURSOR_BASEADDR_LO 0xA2
0164 #define CURSOR_BASEADDR_HI 0xA3
0165 #define CURSOR_X_LO 0xA4
0166 #define CURSOR_X_HI 0xA5
0167 #define CURSOR_X_POS        0x00
0168 #define CURSOR_X_NEG        0x80
0169 #define CURSOR_Y_LO 0xA6
0170 #define CURSOR_Y_HI 0xA7
0171 #define CURSOR_Y_POS        0x00
0172 #define CURSOR_Y_NEG        0x80
0173 
0174 #define VCLK2_VCO_M 0xC8
0175 #define VCLK2_VCO_N 0xC9
0176 #define VCLK2_VCO_MN_MSBS 0xCA
0177 #define VCO_N_MSBS      0x30
0178 #define VCO_M_MSBS      0x03
0179 #define VCLK2_VCO_DIV_SEL 0xCB
0180 #define POST_DIV_SELECT     0x70
0181 #define POST_DIV_1      0x00
0182 #define POST_DIV_2      0x10
0183 #define POST_DIV_4      0x20
0184 #define POST_DIV_8      0x30
0185 #define POST_DIV_16     0x40
0186 #define POST_DIV_32     0x50
0187 #define VCO_LOOP_DIV_BY_4M  0x00
0188 #define VCO_LOOP_DIV_BY_16M 0x04
0189 #define REF_CLK_DIV_BY_5    0x02
0190 #define REF_DIV_4       0x00
0191 #define REF_DIV_1       0x01
0192 
0193 #define PLL_CNTL    0xCE
0194 #define PLL_MEMCLK_SEL      0x03
0195 #define PLL_MEMCLK__66667KHZ    0x00
0196 #define PLL_MEMCLK__75000KHZ    0x01
0197 #define PLL_MEMCLK__88889KHZ    0x02
0198 #define PLL_MEMCLK_100000KHZ    0x03
0199 
0200 /* Multimedia Extension Registers (MRX) */
0201 #define ACQ_CNTL_1  0x02
0202 #define ACQ_CNTL_2  0x03
0203 #define FRAME_CAP_MODE      0x01
0204 #define CONT_CAP_MODE       0x00
0205 #define SINGLE_CAP_MODE     0x01
0206 #define ACQ_CNTL_3  0x04
0207 #define COL_KEY_CNTL_1      0x3C
0208 #define BLANK_DISP_OVERLAY  0x20
0209 
0210 /* FIFOs */
0211 #define LP_FIFO     0x1000
0212 #define HP_FIFO     0x2000
0213 #define INSTPNT     0x3040
0214 #define LP_FIFO_COUNT   0x3040
0215 #define HP_FIFO_COUNT   0x3041
0216 
0217 /* FIFO Commands */
0218 #define CLIENT      0xE0000000
0219 #define CLIENT_2D   0x60000000
0220 
0221 /* Command Parser Mode Register */
0222 #define COMPARS     0x3038
0223 #define TWO_D_INST_DISABLE      0x08
0224 #define THREE_D_INST_DISABLE        0x04
0225 #define STATE_VAR_UPDATE_DISABLE    0x02
0226 #define PAL_STIP_DISABLE        0x01
0227 
0228 /* Interrupt Control Registers */
0229 #define IER     0x3030
0230 #define IIR     0x3032
0231 #define IMR     0x3034
0232 #define ISR     0x3036
0233 #define VMIINTB_EVENT       0x2000
0234 #define GPIO4_INT       0x1000
0235 #define DISP_FLIP_EVENT     0x0800
0236 #define DVD_PORT_DMA        0x0400
0237 #define DISP_VBLANK     0x0200
0238 #define FIFO_EMPTY_DMA_DONE 0x0100
0239 #define INST_PARSER_ERROR   0x0080
0240 #define USER_DEFINED        0x0040
0241 #define BREAKPOINT      0x0020
0242 #define DISP_HORIZ_COUNT    0x0010
0243 #define DISP_VSYNC      0x0008
0244 #define CAPTURE_HORIZ_COUNT 0x0004
0245 #define CAPTURE_VSYNC       0x0002
0246 #define THREE_D_PIPE_FLUSHED    0x0001
0247 
0248 /* FIFO Watermark and Burst Length Control Register */
0249 #define FWATER_BLC  0x00006000
0250 #define LMI_BURST_LENGTH    0x7F000000
0251 #define LMI_FIFO_WATERMARK  0x003F0000
0252 #define AGP_BURST_LENGTH    0x00007F00
0253 #define AGP_FIFO_WATERMARK  0x0000003F
0254 
0255 /* BitBLT Registers */
0256 #define SRC_DST_PITCH   0x00040000
0257 #define DST_PITCH       0x1FFF0000
0258 #define SRC_PITCH       0x00001FFF
0259 #define COLEXP_BG_COLOR 0x00040004
0260 #define COLEXP_FG_COLOR 0x00040008
0261 #define MONO_SRC_CNTL   0x0004000C
0262 #define MONO_USE_COLEXP     0x00000000
0263 #define MONO_USE_SRCEXP     0x08000000
0264 #define MONO_DATA_ALIGN     0x07000000
0265 #define MONO_BIT_ALIGN      0x01000000
0266 #define MONO_BYTE_ALIGN     0x02000000
0267 #define MONO_WORD_ALIGN     0x03000000
0268 #define MONO_DWORD_ALIGN    0x04000000
0269 #define MONO_QWORD_ALIGN    0x05000000
0270 #define MONO_SRC_INIT_DSCRD 0x003F0000
0271 #define MONO_SRC_RIGHT_CLIP 0x00003F00
0272 #define MONO_SRC_LEFT_CLIP  0x0000003F
0273 #define BITBLT_CONTROL  0x00040010
0274 #define BLTR_STATUS     0x80000000
0275 #define DYN_DEPTH       0x03000000
0276 #define DYN_DEPTH_8BPP      0x00000000
0277 #define DYN_DEPTH_16BPP     0x01000000
0278 #define DYN_DEPTH_24BPP     0x02000000
0279 #define DYN_DEPTH_32BPP     0x03000000  /* Unimplemented on the i740 */
0280 #define DYN_DEPTH_ENABLE    0x00800000
0281 #define PAT_VERT_ALIGN      0x00700000
0282 #define SOLID_PAT_SELECT    0x00080000
0283 #define PAT_IS_IN_COLOR     0x00000000
0284 #define PAT_IS_MONO     0x00040000
0285 #define MONO_PAT_TRANSP     0x00020000
0286 #define COLOR_TRANSP_ROP    0x00000000
0287 #define COLOR_TRANSP_DST    0x00008000
0288 #define COLOR_TRANSP_EQ     0x00000000
0289 #define COLOR_TRANSP_NOT_EQ 0x00010000
0290 #define COLOR_TRANSP_ENABLE 0x00004000
0291 #define MONO_SRC_TRANSP     0x00002000
0292 #define SRC_IS_IN_COLOR     0x00000000
0293 #define SRC_IS_MONO     0x00001000
0294 #define SRC_USE_SRC_ADDR    0x00000000
0295 #define SRC_USE_BLTDATA     0x00000400
0296 #define BLT_TOP_TO_BOT      0x00000000
0297 #define BLT_BOT_TO_TOP      0x00000200
0298 #define BLT_LEFT_TO_RIGHT   0x00000000
0299 #define BLT_RIGHT_TO_LEFT   0x00000100
0300 #define BLT_ROP         0x000000FF
0301 #define BLT_PAT_ADDR    0x00040014
0302 #define BLT_SRC_ADDR    0x00040018
0303 #define BLT_DST_ADDR    0x0004001C
0304 #define BLT_DST_H_W 0x00040020
0305 #define BLT_DST_HEIGHT      0x1FFF0000
0306 #define BLT_DST_WIDTH       0x00001FFF
0307 #define SRCEXP_BG_COLOR 0x00040024
0308 #define SRCEXP_FG_COLOR 0x00040028
0309 #define BLTDATA     0x00050000