From 7fe60435bce6595a9c58a9bfd8244d74b5320e96 Mon Sep 17 00:00:00 2001 From: Benjamin Franzke Date: Tue, 15 Jan 2013 08:46:13 +0100 Subject: Import DirectFB141_2k11R3_beta5 --- Source/DirectFB/gfxdrivers/cyber5k/regs.h | 387 ++++++++++++++++++++++++++++++ 1 file changed, 387 insertions(+) create mode 100755 Source/DirectFB/gfxdrivers/cyber5k/regs.h (limited to 'Source/DirectFB/gfxdrivers/cyber5k/regs.h') diff --git a/Source/DirectFB/gfxdrivers/cyber5k/regs.h b/Source/DirectFB/gfxdrivers/cyber5k/regs.h new file mode 100755 index 0000000..7ae038a --- /dev/null +++ b/Source/DirectFB/gfxdrivers/cyber5k/regs.h @@ -0,0 +1,387 @@ +#ifndef REGS_H +#define REGS_H + +/* + * COP MMIO definition + * + */ + +#define OPAQUE 0 +#define TRANSPARENT 1 + +#define TRANSPARENT_SRC 1 +#define TRANSPARENT_DST 2 +#define SRC_FROM_SYS 4 +#define PAT_IS_MONO 8 + +#define R2_ZERO 0x00 +#define R2_S_AND_D 0x01 +#define R2_S_AND_ND 0x02 +#define R2_S 0x03 +#define R2_NS_AND_D 0x04 +#define R2_D 0x05 +#define R2_S_XOR_D 0x06 +#define R2_S_OR_D 0x07 +#define R2_NS_AND_ND 0x08 +#define R2_S_XOR_ND 0x09 +#define R2_ND 0x0A +#define R2_S_OR_ND 0x0B +#define R2_NS 0x0C +#define R2_NS_OR_D 0x0D +#define R2_NS_OR_ND 0x0E +#define R2_ONE 0x0F + +#define R3_S 0xF0 +#define R3_P 0xCC + + +#define COP_BASE 0xBF000 +#define COP_STAT 0x11 + COP_BASE + #define HBLTW_NOTREADY 0x01 + #define HOSTFF_NOTEMPTY 0x02 + #define CMDFF_FULL 0x04 + #define SUSPEND_COP 0x08 + #define COP_STOPPED 0x10 + #define TERMINATE_COP 0x20 + #define HBLT_NOTACKZ 0x40 + #define COP_BUSY 0x80 + +#define SRC1WIDTH 0x18 + COP_BASE +#define COPFMT 0x1C + COP_BASE +#define ERRORTERM 0x20 + COP_BASE +#define K1 0x24 + COP_BASE +#define K2 0x28 + COP_BASE +#define FMIX 0x48 + COP_BASE +#define BMIX 0x49 + COP_BASE +#define FCOLOR 0x58 + COP_BASE +#define BCOLOR 0x5C + COP_BASE +#define HEIGHTWIDTH 0x60 + COP_BASE +#define DIMW 0x60 + COP_BASE +#define DIMH 0x62 + COP_BASE +#define SRC1BASE 0x70 + COP_BASE +#define DSTXROT 0x78 + COP_BASE +#define DSTYROT 0x7A + COP_BASE +#define PATYROT 0x7A + COP_BASE +#define PIXOP 0x7C + COP_BASE +#define PIXOP_LO 0x7C + COP_BASE +#define PIXOP_HI 0x7E + COP_BASE + + /* Direction */ + #define YMAJOR 0x1 + #define DEC_Y 0x2 + #define DY_NEG 0x2 + #define DEC_X 0x4 + #define DX_NEG 0x4 + #define ERRORTERM_POS 0x8 + + /* Draw mode */ + #define DRAW_1ST_PIXEL_NULL 0x10 + #define DRAW_LAST_PIXEL_NULL 0x20 + #define DRAW_AREA_BOUND 0x30 + + /* transparent mode */ + #define TRANS_IS_SRC1 0x0000 + #define TRANS_IS_SRC2 0x0100 + #define TRANS_IS_DST 0x0200 + #define TRANS_INVERT 0x0400 + #define TRANS_ENABLE 0x0800 + + /* Cop Operation */ + #define PAT_OPAQUE_TEXTOUT 0x1000 + #define PAT_OPAQUE_TILE 0x2000 + #define PAT_OPAQUE_LINE 0x3000 + #define PAT_TRANS_TEXTOUT 0x5000 + #define PAT_TRANS_TILE 0x6000 + #define PAT_TRANS_LINE 0x7000 + #define PAT_FIXFGD 0x8000 + #define PAT_COLOR_TILE 0x9000 + + /* Host-Mem Direction */ + #define HOST_READ_SRC1 0x10000 + #define HOST_WRITE_SRC1 0x20000 + #define HOST_WRITE_SRC2 0x30000 + + /* Source2 Select */ + #define SRC2_IS_COLOR 0x000000 + #define SRC2_IS_OPAQUE_MONO 0x100000 + #define SRC2_IS_FGDCOLOR 0x200000 + #define SRC2_IS_TRANS_MONO 0x500000 + + /* Cop Command */ + #define COP_STEP_DRAW 0x4000000 + #define COP_LINE_DRAW 0x5000000 + #define COP_PXBLT 0x8000000 + #define COP_INVERT_PXBLT 0x9000000 + #define COP_PXBLT256 0xB000000 + + /* Fore&Back */ + #define FGD_IS_SRC1 0x20000000 + #define FGD_IS_COLOR 0x00000000 + #define BGD_IS_SRC1 0x80000000 + #define BGD_IS_COLOR 0x00000000 + +#define SRC2WIDTH 0x118 + COP_BASE +#define COPFLAGS 0x130 + COP_BASE + #define FMONO_ENABLE 0x10 + #define FMONO_DISABLE 0xEF + #define COP_1WS 0x4 + +#define FASTMONOSIZE 0x13C + COP_BASE +#define PATXROT 0x150 + COP_BASE +#define SRC1PTR 0x170 + COP_BASE +#define SRC2PTR 0x174 + COP_BASE +#define DSTPTR 0x178 + COP_BASE +#define DSTWIDTH 0x218 + COP_BASE + +/* ---------------------------------------------------------------------- */ + +#define PORT46E8 0x46E8 /* R */ +#define PORT102 0x102 /* R/W */ +#define MISCREAD 0x3CC /* R */ +#define MISCWRITE 0x3C2 /* W */ +#define SEQINDEX 0x3C4 /* R/W */ +#define SEQDATA 0x3C5 /* R/W */ +#define CRTINDEX 0x3D4 /* R/W */ +#define CRTDATA 0x3D5 /* R/W */ +#define ATTRRESET 0x3DA /* R/W */ +#define ATTRINDEX 0x3C0 /* R/W */ +#define ATTRDATAW 0x3C0 /* W, Attrib write data port */ +#define ATTRDATAR 0x3C1 /* R, Attrib read data port */ +#define GRAINDEX 0x3CE /* R/W */ +#define GRADATA 0x3CF /* R/W */ +#define RAMDACMASK 0x3C6 /* R/W, Mask register */ +#define RAMDACINDEXR 0x3C7 /* R/W, RAM read index port */ +#define RAMDACINDEXW 0x3C8 /* R/W, RAM write index port */ +#define RAMDACDATA 0x3C9 /* R/W, RAM Date port */ +#define IGS3CEINDEX 0x3CE /* R/W */ +#define IGS3CFDATA 0x3CF /* R/W */ +#define IGS3D4INDEX 0x3D4 /* R/W */ +#define IGS3D5DATA 0x3D5 /* R/W */ +#define IGS3C4INDEX 0x3C4 /* R/W */ +#define IGS3C5DATA 0x3C5 /* R/W */ + +#define SEQCOUNT 0x05 +#define MISCCOUNT 0x01 +#define CRTCOUNT 0x19 +#define ATTRCOUNT 0x15 +#define GRACOUNT 0x09 +#define EXTPARTIALCOUNT 8 /* define 8 extended regs for color depth change */ + +#define SREGCOUNT SEQCOUNT+MISCCOUNT+CRTCOUNT+ATTRCOUNT+GRACOUNT +#define EREGCOUNT EXTPARTIALCOUNT * 2 + 1 + + +#define PIXFORMAT_8BPP 0 +#define PIXFORMAT_16BPP 1 +#define PIXFORMAT_24BPP 2 + +#define VISUALID_256 1 +#define VISUALID_64K 2 +#define VISUALID_16M 4 +#define VISUALID_32K 6 + +#define FUNC_CTL 0x3c +#define FUNC_CTL_EXTREGENBL 0x80 /* enable access to 0xbcxxx */ + +#define BIU_BM_CONTROL 0x3e +#define BIU_BM_CONTROL_ENABLE 0x01 /* enable bus-master */ +#define BIU_BM_CONTROL_BURST 0x02 /* enable burst */ +#define BIU_BM_CONTROL_BACK2BACK 0x04 /* enable back to back */ + +#define X_V2_VID_MEM_START 0x40 +#define X_V2_VID_SRC_WIDTH 0x43 +#define X_V2_X_START 0x45 +#define X_V2_X_END 0x47 +#define X_V2_Y_START 0x49 +#define X_V2_Y_END 0x4b +#define X_V2_VID_SRC_WIN_WIDTH 0x4d + +#define Y_V2_DDA_X_INC 0x43 +#define Y_V2_DDA_Y_INC 0x47 +#define Y_V2_VID_FIFO_CTL 0x49 +#define Y_V2_VID_FMT 0x4b +#define Y_V2_VID_DISP_CTL1 0x4c +#define Y_V2_VID_FIFO_CTL1 0x4d + +#define J_X2_VID_MEM_START 0x40 +#define J_X2_VID_SRC_WIDTH 0x43 +#define J_X2_X_START 0x47 +#define J_X2_X_END 0x49 +#define J_X2_Y_START 0x4b +#define J_X2_Y_END 0x4d +#define J_X2_VID_SRC_WIN_WIDTH 0x4f + +#define K_X2_DDA_X_INIT 0x40 +#define K_X2_DDA_X_INC 0x42 +#define K_X2_DDA_Y_INIT 0x44 +#define K_X2_DDA_Y_INC 0x46 +#define K_X2_VID_FMT 0x48 +#define K_X2_VID_DISP_CTL1 0x49 + +#define K_CAP_X2_CTL1 0x49 + +#define CAP_X_START 0x60 +#define CAP_X_END 0x62 +#define CAP_Y_START 0x64 +#define CAP_Y_END 0x66 +#define CAP_DDA_X_INIT 0x68 +#define CAP_DDA_X_INC 0x6a +#define CAP_DDA_Y_INIT 0x6c +#define CAP_DDA_Y_INC 0x6e + +#define MEM_CTL2 0x72 +#define MEM_CTL2_SIZE_2MB 0x01 +#define MEM_CTL2_SIZE_4MB 0x02 +#define MEM_CTL2_SIZE_MASK 0x03 +#define MEM_CTL2_64BIT 0x04 + +#define EXT_FIFO_CTL 0x74 + +#define CAP_PIP_X_START 0x80 +#define CAP_PIP_X_END 0x82 +#define CAP_PIP_Y_START 0x84 +#define CAP_PIP_Y_END 0x86 + +#define CAP_NEW_CTL1 0x88 + +#define CAP_NEW_CTL2 0x89 + +#define BM_CTRL0 0x9c +#define BM_CTRL1 0x9d + +#define CAP_MODE1 0xa4 +#define CAP_MODE1_8BIT 0x01 /* enable 8bit capture mode */ +#define CAP_MODE1_CCIR656 0x02 /* CCIR656 mode */ +#define CAP_MODE1_IGNOREVGT 0x04 /* ignore VGT */ +#define CAP_MODE1_ALTFIFO 0x10 /* use alternate FIFO for capture */ +#define CAP_MODE1_SWAPUV 0x20 /* swap UV bytes */ +#define CAP_MODE1_MIRRORY 0x40 /* mirror vertically */ +#define CAP_MODE1_MIRRORX 0x80 /* mirror horizontally */ + +#define CAP_MODE2 0xa5 + +#define Y_TV_CTL 0xae + +#define EXT_MEM_START 0xc0 /* ext start address 21 bits */ +#define HOR_PHASE_SHIFT 0xc2 /* high 3 bits */ +#define EXT_SRC_WIDTH 0xc3 /* ext offset phase 10 bits */ +#define EXT_SRC_HEIGHT 0xc4 /* high 6 bits */ +#define EXT_X_START 0xc5 /* ext->screen, 16 bits */ +#define EXT_X_END 0xc7 /* ext->screen, 16 bits */ +#define EXT_Y_START 0xc9 /* ext->screen, 16 bits */ +#define EXT_Y_END 0xcb /* ext->screen, 16 bits */ +#define EXT_SRC_WIN_WIDTH 0xcd /* 8 bits */ +#define EXT_COLOUR_COMPARE 0xce /* 24 bits */ +#define EXT_DDA_X_INIT 0xd1 /* ext->screen 16 bits */ +#define EXT_DDA_X_INC 0xd3 /* ext->screen 16 bits */ +#define EXT_DDA_Y_INIT 0xd5 /* ext->screen 16 bits */ +#define EXT_DDA_Y_INC 0xd7 /* ext->screen 16 bits */ + +#define EXT_VID_FIFO_CTL 0xd9 + +#define EXT_VID_FMT 0xdb +#define EXT_VID_FMT_YUV422 0x00 /* formats - does this cause conversion? */ +#define EXT_VID_FMT_RGB555 0x01 +#define EXT_VID_FMT_RGB565 0x02 +#define EXT_VID_FMT_RGB888_24 0x03 +#define EXT_VID_FMT_RGB888_32 0x04 +#define EXT_VID_FMT_DUP_PIX_ZOON 0x08 /* duplicate pixel zoom */ +#define EXT_VID_FMT_MOD_3RD_PIX 0x20 /* modify 3rd duplicated pixel */ +#define EXT_VID_FMT_DBL_H_PIX 0x40 /* double horiz pixels */ +#define EXT_VID_FMT_UV128 0x80 /* UV data offset by 128 */ + +#define EXT_VID_DISP_CTL1 0xdc +#define EXT_VID_DISP_CTL1_INTRAM 0x01 /* video pixels go to internal RAM */ +#define EXT_VID_DISP_CTL1_IGNORE_CCOMP 0x02 /* ignore colour compare registers */ +#define EXT_VID_DISP_CTL1_NOCLIP 0x04 /* do not clip to 16235,16240 */ +#define EXT_VID_DISP_CTL1_UV_AVG 0x08 /* U/V data is averaged */ +#define EXT_VID_DISP_CTL1_Y128 0x10 /* Y data offset by 128 */ +#define EXT_VID_DISP_CTL1_VINTERPOL_OFF 0x20 /* vertical interpolation off */ +#define EXT_VID_DISP_CTL1_FULL_WIN 0x40 /* video out window full */ +#define EXT_VID_DISP_CTL1_ENABLE_WINDOW 0x80 /* enable video window */ + +#define EXT_VID_FIFO_CTL1 0xdd + +#define VFAC_CTL1 0xe8 +#define VFAC_CTL1_CAPTURE 0x01 /* capture enable */ +#define VFAC_CTL1_VFAC_ENABLE 0x02 /* vfac enable */ +#define VFAC_CTL1_FREEZE_CAPTURE 0x04 /* freeze capture */ +#define VFAC_CTL1_FREEZE_CAPTURE_SYNC 0x08 /* sync freeze capture */ +#define VFAC_CTL1_VALIDFRAME_SRC 0x10 /* select valid frame source */ +#define VFAC_CTL1_PHILIPS 0x40 /* select Philips mode */ +#define VFAC_CTL1_MODVINTERPOLCLK 0x80 /* modify vertical interpolation clocl */ + +#define VFAC_CTL2 0xe9 +#define VFAC_CTL2_INVERT_VIDDATAVALID 0x01 /* invert video data valid */ +#define VFAC_CTL2_INVERT_GRAPHREADY 0x02 /* invert graphic ready output sig */ +#define VFAC_CTL2_INVERT_DATACLK 0x04 /* invert data clock signal */ +#define VFAC_CTL2_INVERT_HSYNC 0x08 /* invert hsync input */ +#define VFAC_CTL2_INVERT_VSYNC 0x10 /* invert vsync input */ +#define VFAC_CTL2_INVERT_FRAME 0x20 /* invert frame odd/even input */ +#define VFAC_CTL2_INVERT_BLANK 0x40 /* invert blank output */ +#define VFAC_CTL2_INVERT_OVSYNC 0x80 /* invert other vsync input */ + +#define VFAC_CTL3 0xea +#define VFAC_CTL3_CAP_IRQ 0x40 /* enable capture interrupt */ + +#define CAP_MEM_START 0xeb /* 18 bits */ +#define CAP_MAP_WIDTH 0xed /* high 6 bits */ +#define CAP_PITCH 0xee /* 8 bits */ + +#define CAP_CTL_MISC 0xef +#define CAP_CTL_MISC_HDIV 0x01 +#define CAP_CTL_MISC_HDIV4 0x02 +#define CAP_CTL_MISC_ODDEVEN 0x04 +#define CAP_CTL_MISC_HSYNCDIV2 0x08 +#define CAP_CTL_MISC_SYNCTZHIGH 0x10 +#define CAP_CTL_MISC_SYNCTZOR 0x20 +#define CAP_CTL_MISC_DISPUSED 0x80 + +#define REG_BANK 0xfa +#define REG_BANK_X 0x00 +#define REG_BANK_Y 0x01 +#define REG_BANK_W 0x02 +#define REG_BANK_T 0x03 +#define REG_BANK_J 0x04 +#define REG_BANK_K 0x05 + +/* + * Bus-master + */ +#define BM_VID_ADDR_LOW 0xbc040 +#define BM_VID_ADDR_HIGH 0xbc044 +#define BM_ADDRESS_LOW 0xbc080 +#define BM_ADDRESS_HIGH 0xbc084 +#define BM_LENGTH 0xbc088 +#define BM_CONTROL 0xbc08c +#define BM_CONTROL_ENABLE 0x01 /* enable transfer */ +#define BM_CONTROL_IRQEN 0x02 /* enable IRQ at end of transfer */ +#define BM_CONTROL_INIT 0x04 /* initialise status & count */ +#define BM_COUNT 0xbc090 /* read-only */ + +/* + * Graphics Co-processor + */ +#define CO_CMD_L_PATTERN_FGCOL 0x8000 +#define CO_CMD_L_INC_LEFT 0x0004 +#define CO_CMD_L_INC_UP 0x0002 + +#define CO_CMD_H_SRC_PIXMAP 0x2000 +#define CO_CMD_H_BLITTER 0x0800 + +#define CO_REG_CONTROL 0xbf011 +#define CO_REG_SRC_WIDTH 0xbf018 +#define CO_REG_PIX_FORMAT 0xbf01c +#define CO_REG_FORE_MIX 0xbf048 +#define CO_REG_FOREGROUND 0xbf058 +#define CO_REG_WIDTH 0xbf060 +#define CO_REG_HEIGHT 0xbf062 +#define CO_REG_X_PHASE 0xbf078 +#define CO_REG_CMD_L 0xbf07c +#define CO_REG_CMD_H 0xbf07e +#define CO_REG_SRC_PTR 0xbf170 +#define CO_REG_DEST_PTR 0xbf178 +#define CO_REG_DEST_WIDTH 0xbf218 + +#endif + -- cgit