📄 i810_reg.h
字号:
#define INTR_RESERVED (0x6000 | \ DPY_1_FLIP_PENDING | \ OVL_1_FLIP_PENDING | \ DPY_1_VBLANK | \ DPY_1_EVENT | \ HOST_PORT_EVENT | \ CAPTURE_EVENT )/* FIFO Watermark and Burst Length Control Register * * - different offset and contents on i810 (p299) (fewer bits per field) * - some overlay fields added * - what does it all mean? */#define FWATER_BLC 0x20d8#define FWATER_BLC2 0x20dc#define MM_BURST_LENGTH 0x00700000#define MM_FIFO_WATERMARK 0x0001F000#define LM_BURST_LENGTH 0x00000700#define LM_FIFO_WATERMARK 0x0000001F/* Fence/Tiling ranges [0..7] */#define FENCE 0x2000#define FENCE_NR 8#define I915G_FENCE_START_MASK 0x0ff00000#define I830_FENCE_START_MASK 0x07f80000#define FENCE_START_MASK 0x03F80000#define FENCE_X_MAJOR 0x00000000#define FENCE_Y_MAJOR 0x00001000#define FENCE_SIZE_MASK 0x00000700#define FENCE_SIZE_512K 0x00000000#define FENCE_SIZE_1M 0x00000100#define FENCE_SIZE_2M 0x00000200#define FENCE_SIZE_4M 0x00000300#define FENCE_SIZE_8M 0x00000400#define FENCE_SIZE_16M 0x00000500#define FENCE_SIZE_32M 0x00000600#define FENCE_SIZE_64M 0x00000700#define I915G_FENCE_SIZE_1M 0x00000000#define I915G_FENCE_SIZE_2M 0x00000100#define I915G_FENCE_SIZE_4M 0x00000200#define I915G_FENCE_SIZE_8M 0x00000300#define I915G_FENCE_SIZE_16M 0x00000400#define I915G_FENCE_SIZE_32M 0x00000500#define I915G_FENCE_SIZE_64M 0x00000600#define I915G_FENCE_SIZE_128M 0x00000700#define FENCE_PITCH_1 0x00000000#define FENCE_PITCH_2 0x00000010#define FENCE_PITCH_4 0x00000020#define FENCE_PITCH_8 0x00000030#define FENCE_PITCH_16 0x00000040#define FENCE_PITCH_32 0x00000050#define FENCE_PITCH_64 0x00000060#define FENCE_VALID 0x00000001/* Registers to control page table, p274 */#define PGETBL_CTL 0x2020#define PGETBL_ADDR_MASK 0xFFFFF000#define PGETBL_ENABLE_MASK 0x00000001#define PGETBL_ENABLED 0x00000001/* Register containing pge table error results, p276 */#define PGE_ERR 0x2024#define PGE_ERR_ADDR_MASK 0xFFFFF000#define PGE_ERR_ID_MASK 0x00000038#define PGE_ERR_CAPTURE 0x00000000#define PGE_ERR_OVERLAY 0x00000008#define PGE_ERR_DISPLAY 0x00000010#define PGE_ERR_HOST 0x00000018#define PGE_ERR_RENDER 0x00000020#define PGE_ERR_BLITTER 0x00000028#define PGE_ERR_MAPPING 0x00000030#define PGE_ERR_CMD_PARSER 0x00000038#define PGE_ERR_TYPE_MASK 0x00000007#define PGE_ERR_INV_TABLE 0x00000000#define PGE_ERR_INV_PTE 0x00000001#define PGE_ERR_MIXED_TYPES 0x00000002#define PGE_ERR_PAGE_MISS 0x00000003#define PGE_ERR_ILLEGAL_TRX 0x00000004#define PGE_ERR_LOCAL_MEM 0x00000005#define PGE_ERR_TILED 0x00000006/* Page table entries loaded via mmio region, p323 */#define PTE_BASE 0x10000#define PTE_ADDR_MASK 0x3FFFF000#define PTE_TYPE_MASK 0x00000006#define PTE_LOCAL 0x00000002#define PTE_MAIN_UNCACHED 0x00000000#define PTE_MAIN_CACHED 0x00000006#define PTE_VALID_MASK 0x00000001#define PTE_VALID 0x00000001/* Ring buffer registers, p277, overview p19 */#define LP_RING 0x2030#define HP_RING 0x2040#define RING_TAIL 0x00#define TAIL_ADDR 0x000FFFF8#define I830_TAIL_MASK 0x001FFFF8#define RING_HEAD 0x04#define HEAD_WRAP_COUNT 0xFFE00000#define HEAD_WRAP_ONE 0x00200000#define HEAD_ADDR 0x001FFFFC#define I830_HEAD_MASK 0x001FFFFC#define RING_START 0x08#define START_ADDR 0x03FFFFF8#define I830_RING_START_MASK 0xFFFFF000#define RING_LEN 0x0C#define RING_NR_PAGES 0x001FF000 #define I830_RING_NR_PAGES 0x001FF000#define RING_REPORT_MASK 0x00000006#define RING_REPORT_64K 0x00000002#define RING_REPORT_128K 0x00000004#define RING_NO_REPORT 0x00000000#define RING_VALID_MASK 0x00000001#define RING_VALID 0x00000001#define RING_INVALID 0x00000000/* BitBlt Instructions * * There are many more masks & ranges yet to add. */#define BR00_BITBLT_CLIENT 0x40000000#define BR00_OP_COLOR_BLT 0x10000000#define BR00_OP_SRC_COPY_BLT 0x10C00000#define BR00_OP_FULL_BLT 0x11400000#define BR00_OP_MONO_SRC_BLT 0x11800000#define BR00_OP_MONO_SRC_COPY_BLT 0x11000000#define BR00_OP_MONO_PAT_BLT 0x11C00000#define BR00_OP_MONO_SRC_COPY_IMMEDIATE_BLT (0x61 << 22)#define BR00_OP_TEXT_IMMEDIATE_BLT 0xc000000#define BR00_TPCY_DISABLE 0x00000000#define BR00_TPCY_ENABLE 0x00000010#define BR00_TPCY_ROP 0x00000000#define BR00_TPCY_NO_ROP 0x00000020#define BR00_TPCY_EQ 0x00000000#define BR00_TPCY_NOT_EQ 0x00000040#define BR00_PAT_MSB_FIRST 0x00000000 /* ? */#define BR00_PAT_VERT_ALIGN 0x000000e0#define BR00_LENGTH 0x0000000F#define BR09_DEST_ADDR 0x03FFFFFF#define BR11_SOURCE_PITCH 0x00003FFF#define BR12_SOURCE_ADDR 0x03FFFFFF#define BR13_SOLID_PATTERN 0x80000000#define BR13_RIGHT_TO_LEFT 0x40000000#define BR13_LEFT_TO_RIGHT 0x00000000#define BR13_MONO_TRANSPCY 0x20000000#define BR13_MONO_PATN_TRANS 0x10000000#define BR13_USE_DYN_DEPTH 0x04000000#define BR13_DYN_8BPP 0x00000000#define BR13_DYN_16BPP 0x01000000#define BR13_DYN_24BPP 0x02000000#define BR13_ROP_MASK 0x00FF0000#define BR13_DEST_PITCH 0x0000FFFF#define BR13_PITCH_SIGN_BIT 0x00008000#define BR14_DEST_HEIGHT 0xFFFF0000#define BR14_DEST_WIDTH 0x0000FFFF#define BR15_PATTERN_ADDR 0x03FFFFFF#define BR16_SOLID_PAT_COLOR 0x00FFFFFF#define BR16_BACKGND_PAT_CLR 0x00FFFFFF#define BR17_FGND_PAT_CLR 0x00FFFFFF#define BR18_SRC_BGND_CLR 0x00FFFFFF#define BR19_SRC_FGND_CLR 0x00FFFFFF/* Instruction parser instructions */#define INST_PARSER_CLIENT 0x00000000#define INST_OP_FLUSH 0x02000000#define INST_FLUSH_MAP_CACHE 0x00000001#define GFX_OP_USER_INTERRUPT ((0<<29)|(2<<23))/* Registers in the i810 host-pci bridge pci config space which affect * the i810 graphics operations. */#define SMRAM_MISCC 0x70#define GMS 0x000000c0#define GMS_DISABLE 0x00000000#define GMS_ENABLE_BARE 0x00000040#define GMS_ENABLE_512K 0x00000080#define GMS_ENABLE_1M 0x000000c0#define USMM 0x00000030 #define USMM_DISABLE 0x00000000#define USMM_TSEG_ZERO 0x00000010#define USMM_TSEG_512K 0x00000020#define USMM_TSEG_1M 0x00000030 #define GFX_MEM_WIN_SIZE 0x00010000#define GFX_MEM_WIN_32M 0x00010000#define GFX_MEM_WIN_64M 0x00000000/* Overkill? I don't know. Need to figure out top of mem to make the * SMRAM calculations come out. Linux seems to have problems * detecting it all on its own, so this seems a reasonable double * check to any user supplied 'mem=...' boot param. * * ... unfortunately this reg doesn't work according to spec on the * test hardware. */#define WHTCFG_PAMR_DRP 0x50#define SYS_DRAM_ROW_0_SHIFT 16#define SYS_DRAM_ROW_1_SHIFT 20#define DRAM_MASK 0x0f#define DRAM_VALUE_0 0#define DRAM_VALUE_1 8/* No 2 value defined */#define DRAM_VALUE_3 16#define DRAM_VALUE_4 16#define DRAM_VALUE_5 24#define DRAM_VALUE_6 32#define DRAM_VALUE_7 32#define DRAM_VALUE_8 48#define DRAM_VALUE_9 64#define DRAM_VALUE_A 64#define DRAM_VALUE_B 96#define DRAM_VALUE_C 128#define DRAM_VALUE_D 128#define DRAM_VALUE_E 192#define DRAM_VALUE_F 256 /* nice one, geezer */#define LM_FREQ_MASK 0x10#define LM_FREQ_133 0x10#define LM_FREQ_100 0x00/* These are 3d state registers, but the state is invarient, so we let * the X server handle it: *//* GFXRENDERSTATE_COLOR_CHROMA_KEY, p135 */#define GFX_OP_COLOR_CHROMA_KEY ((0x3<<29)|(0x1d<<24)|(0x2<<16)|0x1)#define CC1_UPDATE_KILL_WRITE (1<<28)#define CC1_ENABLE_KILL_WRITE (1<<27)#define CC1_DISABLE_KILL_WRITE 0#define CC1_UPDATE_COLOR_IDX (1<<26)#define CC1_UPDATE_CHROMA_LOW (1<<25)#define CC1_UPDATE_CHROMA_HI (1<<24)#define CC1_CHROMA_LOW_MASK ((1<<24)-1)#define CC2_COLOR_IDX_SHIFT 24#define CC2_COLOR_IDX_MASK (0xff<<24)#define CC2_CHROMA_HI_MASK ((1<<24)-1)#define GFX_CMD_CONTEXT_SEL ((0<<29)|(0x5<<23))#define CS_UPDATE_LOAD (1<<17)#define CS_UPDATE_USE (1<<16)#define CS_UPDATE_LOAD (1<<17)#define CS_LOAD_CTX0 0#define CS_LOAD_CTX1 (1<<8)#define CS_USE_CTX0 0#define CS_USE_CTX1 (1<<0)/* I810 LCD/TV registers */#define LCD_TV_HTOTAL 0x60000#define LCD_TV_C 0x60018#define LCD_TV_OVRACT 0x6001C#define LCD_TV_ENABLE (1 << 31)#define LCD_TV_VGAMOD (1 << 28)/* I830 CRTC registers */#define HTOTAL_A 0x60000#define HBLANK_A 0x60004#define HSYNC_A 0x60008#define VTOTAL_A 0x6000c#define VBLANK_A 0x60010#define VSYNC_A 0x60014#define PIPEASRC 0x6001c#define BCLRPAT_A 0x60020#define HTOTAL_B 0x61000#define HBLANK_B 0x61004#define HSYNC_B 0x61008#define VTOTAL_B 0x6100c#define VBLANK_B 0x61010#define VSYNC_B 0x61014#define PIPEBSRC 0x6101c#define BCLRPAT_B 0x61020#define DPLL_A 0x06014#define DPLL_B 0x06018#define FPA0 0x06040#define FPA1 0x06044#define I830_HTOTAL_MASK 0xfff0000#define I830_HACTIVE_MASK 0x7ff#define I830_HBLANKEND_MASK 0xfff0000#define I830_HBLANKSTART_MASK 0xfff#define I830_HSYNCEND_MASK 0xfff0000#define I830_HSYNCSTART_MASK 0xfff#define I830_VTOTAL_MASK 0xfff0000#define I830_VACTIVE_MASK 0x7ff#define I830_VBLANKEND_MASK 0xfff0000#define I830_VBLANKSTART_MASK 0xfff
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -