i740_reg.h revision 301ea0f4
1301ea0f4Smrg 2301ea0f4Smrg/************************************************************************** 3301ea0f4Smrg 4301ea0f4SmrgCopyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. 5301ea0f4SmrgAll Rights Reserved. 6301ea0f4Smrg 7301ea0f4SmrgPermission is hereby granted, free of charge, to any person obtaining a 8301ea0f4Smrgcopy of this software and associated documentation files (the 9301ea0f4Smrg"Software"), to deal in the Software without restriction, including 10301ea0f4Smrgwithout limitation the rights to use, copy, modify, merge, publish, 11301ea0f4Smrgdistribute, sub license, and/or sell copies of the Software, and to 12301ea0f4Smrgpermit persons to whom the Software is furnished to do so, subject to 13301ea0f4Smrgthe following conditions: 14301ea0f4Smrg 15301ea0f4SmrgThe above copyright notice and this permission notice (including the 16301ea0f4Smrgnext paragraph) shall be included in all copies or substantial portions 17301ea0f4Smrgof the Software. 18301ea0f4Smrg 19301ea0f4SmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 20301ea0f4SmrgOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 21301ea0f4SmrgMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 22301ea0f4SmrgIN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR 23301ea0f4SmrgANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 24301ea0f4SmrgTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 25301ea0f4SmrgSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 26301ea0f4Smrg 27301ea0f4Smrg**************************************************************************/ 28301ea0f4Smrg/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/i740_reg.h,v 1.1 1999/08/29 12:20:59 dawes Exp $ */ 29301ea0f4Smrg 30301ea0f4Smrg/* 31301ea0f4Smrg * Authors: 32301ea0f4Smrg * Kevin E. Martin <kevin@precisioninsight.com> 33301ea0f4Smrg * 34301ea0f4Smrg */ 35301ea0f4Smrg 36301ea0f4Smrg/* I/O register offsets */ 37301ea0f4Smrg#define SRX 0x3C4 38301ea0f4Smrg#define GRX 0x3CE 39301ea0f4Smrg#define ARX 0x3C0 40301ea0f4Smrg#define XRX 0x3D6 41301ea0f4Smrg#define MRX 0x3D2 42301ea0f4Smrg 43301ea0f4Smrg/* VGA Color Palette Registers */ 44301ea0f4Smrg#define DACMASK 0x3C6 45301ea0f4Smrg#define DACSTATE 0x3C7 46301ea0f4Smrg#define DACRX 0x3C7 47301ea0f4Smrg#define DACWX 0x3C8 48301ea0f4Smrg#define DACDATA 0x3C9 49301ea0f4Smrg 50301ea0f4Smrg/* CRT Controller Registers (CRX) */ 51301ea0f4Smrg#define START_ADDR_HI 0x0C 52301ea0f4Smrg#define START_ADDR_LO 0x0D 53301ea0f4Smrg#define VERT_SYNC_END 0x11 54301ea0f4Smrg#define EXT_VERT_TOTAL 0x30 55301ea0f4Smrg#define EXT_VERT_DISPLAY 0x31 56301ea0f4Smrg#define EXT_VERT_SYNC_START 0x32 57301ea0f4Smrg#define EXT_VERT_BLANK_START 0x33 58301ea0f4Smrg#define EXT_HORIZ_TOTAL 0x35 59301ea0f4Smrg#define EXT_HORIZ_BLANK 0x39 60301ea0f4Smrg#define EXT_START_ADDR 0x40 61301ea0f4Smrg#define EXT_START_ADDR_ENABLE 0x80 62301ea0f4Smrg#define EXT_OFFSET 0x41 63301ea0f4Smrg#define EXT_START_ADDR_HI 0x42 64301ea0f4Smrg#define INTERLACE_CNTL 0x70 65301ea0f4Smrg#define INTERLACE_ENABLE 0x80 66301ea0f4Smrg#define INTERLACE_DISABLE 0x00 67301ea0f4Smrg 68301ea0f4Smrg/* Miscellaneous Output Register */ 69301ea0f4Smrg#define MSR_R 0x3CC 70301ea0f4Smrg#define MSR_W 0x3C2 71301ea0f4Smrg#define IO_ADDR_SELECT 0x01 72301ea0f4Smrg 73301ea0f4Smrg#define MDA_BASE 0x3B0 74301ea0f4Smrg#define CGA_BASE 0x3D0 75301ea0f4Smrg 76301ea0f4Smrg/* System Configuration Extension Registers (XRX) */ 77301ea0f4Smrg#define IO_CTNL 0x09 78301ea0f4Smrg#define EXTENDED_ATTR_CNTL 0x02 79301ea0f4Smrg#define EXTENDED_CRTC_CNTL 0x01 80301ea0f4Smrg 81301ea0f4Smrg#define ADDRESS_MAPPING 0x0A 82301ea0f4Smrg#define PACKED_MODE_ENABLE 0x04 83301ea0f4Smrg#define LINEAR_MODE_ENABLE 0x02 84301ea0f4Smrg#define PAGE_MAPPING_ENABLE 0x01 85301ea0f4Smrg 86301ea0f4Smrg#define BITBLT_CNTL 0x20 87301ea0f4Smrg#define COLEXP_MODE 0x30 88301ea0f4Smrg#define COLEXP_8BPP 0x00 89301ea0f4Smrg#define COLEXP_16BPP 0x10 90301ea0f4Smrg#define COLEXP_24BPP 0x20 91301ea0f4Smrg#define COLEXP_RESERVED 0x30 92301ea0f4Smrg#define CHIP_RESET 0x02 93301ea0f4Smrg#define BITBLT_STATUS 0x01 94301ea0f4Smrg 95301ea0f4Smrg#define DISPLAY_CNTL 0x40 96301ea0f4Smrg#define VGA_WRAP_MODE 0x02 97301ea0f4Smrg#define VGA_WRAP_AT_256KB 0x00 98301ea0f4Smrg#define VGA_NO_WRAP 0x02 99301ea0f4Smrg#define GUI_MODE 0x01 100301ea0f4Smrg#define STANDARD_VGA_MODE 0x00 101301ea0f4Smrg#define HIRES_MODE 0x01 102301ea0f4Smrg 103301ea0f4Smrg#define DRAM_ROW_TYPE 0x50 104301ea0f4Smrg#define DRAM_ROW_0 0x07 105301ea0f4Smrg#define DRAM_ROW_0_SDRAM 0x00 106301ea0f4Smrg#define DRAM_ROW_0_EMPTY 0x07 107301ea0f4Smrg#define DRAM_ROW_1 0x38 108301ea0f4Smrg#define DRAM_ROW_1_SDRAM 0x00 109301ea0f4Smrg#define DRAM_ROW_1_EMPTY 0x38 110301ea0f4Smrg#define DRAM_ROW_CNTL_LO 0x51 111301ea0f4Smrg#define DRAM_CAS_LATENCY 0x10 112301ea0f4Smrg#define DRAM_RAS_TIMING 0x08 113301ea0f4Smrg#define DRAM_RAS_PRECHARGE 0x04 114301ea0f4Smrg#define DRAM_ROW_CNTL_HI 0x52 115301ea0f4Smrg#define DRAM_EXT_CNTL 0x53 116301ea0f4Smrg#define DRAM_REFRESH_RATE 0x03 117301ea0f4Smrg#define DRAM_REFRESH_DISABLE 0x00 118301ea0f4Smrg#define DRAM_REFRESH_60HZ 0x01 119301ea0f4Smrg#define DRAM_REFRESH_FAST_TEST 0x02 120301ea0f4Smrg#define DRAM_REFRESH_RESERVED 0x03 121301ea0f4Smrg#define DRAM_TIMING 0x54 122301ea0f4Smrg#define DRAM_ROW_BNDRY_0 0x55 123301ea0f4Smrg#define DRAM_ROW_BNDRY_1 0x56 124301ea0f4Smrg 125301ea0f4Smrg#define DPMS_SYNC_SELECT 0x61 126301ea0f4Smrg#define VSYNC_CNTL 0x08 127301ea0f4Smrg#define VSYNC_ON 0x00 128301ea0f4Smrg#define VSYNC_OFF 0x08 129301ea0f4Smrg#define HSYNC_CNTL 0x02 130301ea0f4Smrg#define HSYNC_ON 0x00 131301ea0f4Smrg#define HSYNC_OFF 0x02 132301ea0f4Smrg 133301ea0f4Smrg#define PIXPIPE_CONFIG_0 0x80 134301ea0f4Smrg#define DAC_8_BIT 0x80 135301ea0f4Smrg#define DAC_6_BIT 0x00 136301ea0f4Smrg#define HW_CURSOR_ENABLE 0x10 137301ea0f4Smrg#define EXTENDED_PALETTE 0x01 138301ea0f4Smrg 139301ea0f4Smrg#define PIXPIPE_CONFIG_1 0x81 140301ea0f4Smrg#define DISPLAY_COLOR_MODE 0x0F 141301ea0f4Smrg#define DISPLAY_VGA_MODE 0x00 142301ea0f4Smrg#define DISPLAY_8BPP_MODE 0x02 143301ea0f4Smrg#define DISPLAY_15BPP_MODE 0x04 144301ea0f4Smrg#define DISPLAY_16BPP_MODE 0x05 145301ea0f4Smrg#define DISPLAY_24BPP_MODE 0x06 146301ea0f4Smrg#define DISPLAY_32BPP_MODE 0x07 147301ea0f4Smrg 148301ea0f4Smrg#define PIXPIPE_CONFIG_2 0x82 149301ea0f4Smrg#define DISPLAY_GAMMA_ENABLE 0x08 150301ea0f4Smrg#define DISPLAY_GAMMA_DISABLE 0x00 151301ea0f4Smrg#define OVERLAY_GAMMA_ENABLE 0x04 152301ea0f4Smrg#define OVERLAY_GAMMA_DISABLE 0x00 153301ea0f4Smrg 154301ea0f4Smrg#define CURSOR_CONTROL 0xA0 155301ea0f4Smrg#define CURSOR_ORIGIN_SCREEN 0x00 156301ea0f4Smrg#define CURSOR_ORIGIN_DISPLAY 0x10 157301ea0f4Smrg#define CURSOR_MODE 0x07 158301ea0f4Smrg#define CURSOR_MODE_DISABLE 0x00 159301ea0f4Smrg#define CURSOR_MODE_32_4C_AX 0x01 160301ea0f4Smrg#define CURSOR_MODE_128_2C 0x02 161301ea0f4Smrg#define CURSOR_MODE_128_1C 0x03 162301ea0f4Smrg#define CURSOR_MODE_64_3C 0x04 163301ea0f4Smrg#define CURSOR_MODE_64_4C_AX 0x05 164301ea0f4Smrg#define CURSOR_MODE_64_4C 0x06 165301ea0f4Smrg#define CURSOR_MODE_RESERVED 0x07 166301ea0f4Smrg#define CURSOR_BASEADDR_LO 0xA2 167301ea0f4Smrg#define CURSOR_BASEADDR_HI 0xA3 168301ea0f4Smrg#define CURSOR_X_LO 0xA4 169301ea0f4Smrg#define CURSOR_X_HI 0xA5 170301ea0f4Smrg#define CURSOR_X_POS 0x00 171301ea0f4Smrg#define CURSOR_X_NEG 0x80 172301ea0f4Smrg#define CURSOR_Y_LO 0xA6 173301ea0f4Smrg#define CURSOR_Y_HI 0xA7 174301ea0f4Smrg#define CURSOR_Y_POS 0x00 175301ea0f4Smrg#define CURSOR_Y_NEG 0x80 176301ea0f4Smrg 177301ea0f4Smrg#define VCLK2_VCO_M 0xC8 178301ea0f4Smrg#define VCLK2_VCO_N 0xC9 179301ea0f4Smrg#define VCLK2_VCO_MN_MSBS 0xCA 180301ea0f4Smrg#define VCO_N_MSBS 0x30 181301ea0f4Smrg#define VCO_M_MSBS 0x03 182301ea0f4Smrg#define VCLK2_VCO_DIV_SEL 0xCB 183301ea0f4Smrg#define POST_DIV_SELECT 0x70 184301ea0f4Smrg#define POST_DIV_1 0x00 185301ea0f4Smrg#define POST_DIV_2 0x10 186301ea0f4Smrg#define POST_DIV_4 0x20 187301ea0f4Smrg#define POST_DIV_8 0x30 188301ea0f4Smrg#define POST_DIV_16 0x40 189301ea0f4Smrg#define POST_DIV_32 0x50 190301ea0f4Smrg#define VCO_LOOP_DIV_BY_4M 0x00 191301ea0f4Smrg#define VCO_LOOP_DIV_BY_16M 0x04 192301ea0f4Smrg#define REF_CLK_DIV_BY_5 0x02 193301ea0f4Smrg#define REF_DIV_4 0x00 194301ea0f4Smrg#define REF_DIV_1 0x01 195301ea0f4Smrg 196301ea0f4Smrg#define PLL_CNTL 0xCE 197301ea0f4Smrg#define PLL_MEMCLK_SEL 0x03 198301ea0f4Smrg#define PLL_MEMCLK__66667KHZ 0x00 199301ea0f4Smrg#define PLL_MEMCLK__75000KHZ 0x01 200301ea0f4Smrg#define PLL_MEMCLK__88889KHZ 0x02 201301ea0f4Smrg#define PLL_MEMCLK_100000KHZ 0x03 202301ea0f4Smrg 203301ea0f4Smrg/* Multimedia Extension Registers (MRX) */ 204301ea0f4Smrg#define ACQ_CNTL_1 0x02 205301ea0f4Smrg#define ACQ_CNTL_2 0x03 206301ea0f4Smrg#define FRAME_CAP_MODE 0x01 207301ea0f4Smrg#define CONT_CAP_MODE 0x00 208301ea0f4Smrg#define SINGLE_CAP_MODE 0x01 209301ea0f4Smrg#define ACQ_CNTL_3 0x04 210301ea0f4Smrg#define COL_KEY_CNTL_1 0x3C 211301ea0f4Smrg#define BLANK_DISP_OVERLAY 0x20 212301ea0f4Smrg 213301ea0f4Smrg/* FIFOs */ 214301ea0f4Smrg#define LP_FIFO 0x1000 215301ea0f4Smrg#define HP_FIFO 0x2000 216301ea0f4Smrg#define INSTPNT 0x3040 217301ea0f4Smrg#define LP_FIFO_COUNT 0x3040 218301ea0f4Smrg#define HP_FIFO_COUNT 0x3041 219301ea0f4Smrg 220301ea0f4Smrg/* FIFO Commands */ 221301ea0f4Smrg#define CLIENT 0xE0000000 222301ea0f4Smrg#define CLIENT_2D 0x60000000 223301ea0f4Smrg 224301ea0f4Smrg/* Command Parser Mode Register */ 225301ea0f4Smrg#define COMPARS 0x3038 226301ea0f4Smrg#define TWO_D_INST_DISABLE 0x08 227301ea0f4Smrg#define THREE_D_INST_DISABLE 0x04 228301ea0f4Smrg#define STATE_VAR_UPDATE_DISABLE 0x02 229301ea0f4Smrg#define PAL_STIP_DISABLE 0x01 230301ea0f4Smrg 231301ea0f4Smrg/* Interrupt Control Registers */ 232301ea0f4Smrg#define IER 0x3030 233301ea0f4Smrg#define IIR 0x3032 234301ea0f4Smrg#define IMR 0x3034 235301ea0f4Smrg#define ISR 0x3036 236301ea0f4Smrg#define VMIINTB_EVENT 0x2000 237301ea0f4Smrg#define GPIO4_INT 0x1000 238301ea0f4Smrg#define DISP_FLIP_EVENT 0x0800 239301ea0f4Smrg#define DVD_PORT_DMA 0x0400 240301ea0f4Smrg#define DISP_VBLANK 0x0200 241301ea0f4Smrg#define FIFO_EMPTY_DMA_DONE 0x0100 242301ea0f4Smrg#define INST_PARSER_ERROR 0x0080 243301ea0f4Smrg#define USER_DEFINED 0x0040 244301ea0f4Smrg#define BREAKPOINT 0x0020 245301ea0f4Smrg#define DISP_HORIZ_COUNT 0x0010 246301ea0f4Smrg#define DISP_VSYNC 0x0008 247301ea0f4Smrg#define CAPTURE_HORIZ_COUNT 0x0004 248301ea0f4Smrg#define CAPTURE_VSYNC 0x0002 249301ea0f4Smrg#define THREE_D_PIPE_FLUSHED 0x0001 250301ea0f4Smrg 251301ea0f4Smrg/* FIFO Watermark and Burst Length Control Register */ 252301ea0f4Smrg#define FWATER_BLC 0x00006000 253301ea0f4Smrg#define LMI_BURST_LENGTH 0x7F000000 254301ea0f4Smrg#define LMI_FIFO_WATERMARK 0x003F0000 255301ea0f4Smrg#define AGP_BURST_LENGTH 0x00007F00 256301ea0f4Smrg#define AGP_FIFO_WATERMARK 0x0000003F 257301ea0f4Smrg 258301ea0f4Smrg/* BitBLT Registers */ 259301ea0f4Smrg#define SRC_DST_PITCH 0x00040000 260301ea0f4Smrg#define DST_PITCH 0x1FFF0000 261301ea0f4Smrg#define SRC_PITCH 0x00001FFF 262301ea0f4Smrg#define COLEXP_BG_COLOR 0x00040004 263301ea0f4Smrg#define COLEXP_FG_COLOR 0x00040008 264301ea0f4Smrg#define MONO_SRC_CNTL 0x0004000C 265301ea0f4Smrg#define MONO_USE_COLEXP 0x00000000 266301ea0f4Smrg#define MONO_USE_SRCEXP 0x08000000 267301ea0f4Smrg#define MONO_DATA_ALIGN 0x07000000 268301ea0f4Smrg#define MONO_BIT_ALIGN 0x01000000 269301ea0f4Smrg#define MONO_BYTE_ALIGN 0x02000000 270301ea0f4Smrg#define MONO_WORD_ALIGN 0x03000000 271301ea0f4Smrg#define MONO_DWORD_ALIGN 0x04000000 272301ea0f4Smrg#define MONO_QWORD_ALIGN 0x05000000 273301ea0f4Smrg#define MONO_SRC_INIT_DSCRD 0x003F0000 274301ea0f4Smrg#define MONO_SRC_RIGHT_CLIP 0x00003F00 275301ea0f4Smrg#define MONO_SRC_LEFT_CLIP 0x0000003F 276301ea0f4Smrg#define BITBLT_CONTROL 0x00040010 277301ea0f4Smrg#define BLTR_STATUS 0x80000000 278301ea0f4Smrg#define DYN_DEPTH 0x03000000 279301ea0f4Smrg#define DYN_DEPTH_8BPP 0x00000000 280301ea0f4Smrg#define DYN_DEPTH_16BPP 0x01000000 281301ea0f4Smrg#define DYN_DEPTH_24BPP 0x02000000 282301ea0f4Smrg#define DYN_DEPTH_32BPP 0x03000000 /* Not implemented on the i740 */ 283301ea0f4Smrg#define DYN_DEPTH_ENABLE 0x00800000 284301ea0f4Smrg#define PAT_VERT_ALIGN 0x00700000 285301ea0f4Smrg#define SOLID_PAT_SELECT 0x00080000 286301ea0f4Smrg#define PAT_IS_IN_COLOR 0x00000000 287301ea0f4Smrg#define PAT_IS_MONO 0x00040000 288301ea0f4Smrg#define MONO_PAT_TRANSP 0x00020000 289301ea0f4Smrg#define COLOR_TRANSP_ROP 0x00000000 290301ea0f4Smrg#define COLOR_TRANSP_DST 0x00008000 291301ea0f4Smrg#define COLOR_TRANSP_EQ 0x00000000 292301ea0f4Smrg#define COLOR_TRANSP_NOT_EQ 0x00010000 293301ea0f4Smrg#define COLOR_TRANSP_ENABLE 0x00004000 294301ea0f4Smrg#define MONO_SRC_TRANSP 0x00002000 295301ea0f4Smrg#define SRC_IS_IN_COLOR 0x00000000 296301ea0f4Smrg#define SRC_IS_MONO 0x00001000 297301ea0f4Smrg#define SRC_USE_SRC_ADDR 0x00000000 298301ea0f4Smrg#define SRC_USE_BLTDATA 0x00000400 299301ea0f4Smrg#define BLT_TOP_TO_BOT 0x00000000 300301ea0f4Smrg#define BLT_BOT_TO_TOP 0x00000200 301301ea0f4Smrg#define BLT_LEFT_TO_RIGHT 0x00000000 302301ea0f4Smrg#define BLT_RIGHT_TO_LEFT 0x00000100 303301ea0f4Smrg#define BLT_ROP 0x000000FF 304301ea0f4Smrg#define BLT_PAT_ADDR 0x00040014 305301ea0f4Smrg#define BLT_SRC_ADDR 0x00040018 306301ea0f4Smrg#define BLT_DST_ADDR 0x0004001C 307301ea0f4Smrg#define BLT_DST_H_W 0x00040020 308301ea0f4Smrg#define BLT_DST_HEIGHT 0x1FFF0000 309301ea0f4Smrg#define BLT_DST_WIDTH 0x00001FFF 310301ea0f4Smrg#define SRCEXP_BG_COLOR 0x00040024 311301ea0f4Smrg#define SRCEXP_FG_COLOR 0x00040028 312301ea0f4Smrg#define BLTDATA 0x00050000 313301ea0f4Smrg 314301ea0f4Smrgtypedef struct { 315301ea0f4Smrg unsigned int cmd; 316301ea0f4Smrg unsigned int BR00; 317301ea0f4Smrg unsigned int BR01; 318301ea0f4Smrg unsigned int BR02; 319301ea0f4Smrg unsigned int BR03; 320301ea0f4Smrg unsigned int BR04; 321301ea0f4Smrg unsigned int BR05; 322301ea0f4Smrg unsigned int BR06; 323301ea0f4Smrg unsigned int BR07; 324301ea0f4Smrg unsigned int BR09; 325301ea0f4Smrg unsigned int BR0A; 326301ea0f4Smrg unsigned int BR08; 327301ea0f4Smrg} GFX2DOPREG_BLTER_FULL_LOAD; 328