⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 newport.h

📁 linux和2410结合开发 用他可以生成2410所需的zImage文件
💻 H
📖 第 1 页 / 共 2 页
字号:
	unsigned int lsmode;   	unsigned int lspattern;	unsigned int lspatsave;	unsigned int zpattern; 	unsigned int colorback;	unsigned int colorvram;	unsigned int alpharef; 	unsigned int smask0x;  	unsigned int smask0y;  	unsigned int _xstart;  	unsigned int _ystart;  	unsigned int _xend;    	unsigned int _yend;    	unsigned int xsave;    	unsigned int xymove;   	unsigned int bresd;    	unsigned int bress1;   	unsigned int bresoctinc1;	unsigned int bresrndinc2;	unsigned int brese1;     	unsigned int bress2;     		unsigned int aweight0;    	unsigned int aweight1;    	unsigned int colorred;    	unsigned int coloralpha;  	unsigned int colorgrn;    	unsigned int colorblue;   	unsigned int slopered;    	unsigned int slopealpha;  	unsigned int slopegrn;    	unsigned int slopeblue;   	unsigned int wrmask;      	unsigned int hostrw0;     	unsigned int hostrw1;     	        /* configregs */		unsigned int smask1x;    	unsigned int smask1y;    	unsigned int smask2x;    	unsigned int smask2y;    	unsigned int smask3x;    	unsigned int smask3y;    	unsigned int smask4x;    	unsigned int smask4y;    	unsigned int topscan;    	unsigned int xywin;      	unsigned int clipmode;   	unsigned int config;     	        /* dcb registers */	unsigned int dcbmode;   	unsigned int dcbdata0;  	unsigned int dcbdata1;} newport_ctx;/* Reading/writing VC2 registers. */#define VC2_REGADDR_INDEX      0x00000000#define VC2_REGADDR_IREG       0x00000010#define VC2_REGADDR_RAM        0x00000030#define VC2_PROTOCOL           (NPORT_DMODE_EASACK | 0x00800000 | 0x00040000)#define VC2_VLINET_ADDR        0x000#define VC2_VFRAMET_ADDR       0x400#define VC2_CGLYPH_ADDR        0x500/* Now the Indexed registers of the VC2. */#define VC2_IREG_VENTRY        0x00#define VC2_IREG_CENTRY        0x01#define VC2_IREG_CURSX         0x02#define VC2_IREG_CURSY         0x03#define VC2_IREG_CCURSX        0x04#define VC2_IREG_DENTRY        0x05#define VC2_IREG_SLEN          0x06#define VC2_IREG_RADDR         0x07#define VC2_IREG_VFPTR         0x08#define VC2_IREG_VLSPTR        0x09#define VC2_IREG_VLIR          0x0a#define VC2_IREG_VLCTR         0x0b#define VC2_IREG_CTPTR         0x0c#define VC2_IREG_WCURSY        0x0d#define VC2_IREG_DFPTR         0x0e#define VC2_IREG_DLTPTR        0x0f#define VC2_IREG_CONTROL       0x10#define VC2_IREG_CONFIG        0x20extern __inline__ void newport_vc2_set(struct newport_regs *regs, unsigned char vc2ireg,				   unsigned short val){	regs->set.dcbmode = (NPORT_DMODE_AVC2 | VC2_REGADDR_INDEX | NPORT_DMODE_W3 |			   NPORT_DMODE_ECINC | VC2_PROTOCOL);	regs->set.dcbdata0.byword = (vc2ireg << 24) | (val << 8);}extern __inline__ unsigned short newport_vc2_get(struct newport_regs *regs,					     unsigned char vc2ireg){	regs->set.dcbmode = (NPORT_DMODE_AVC2 | VC2_REGADDR_INDEX | NPORT_DMODE_W1 |			   NPORT_DMODE_ECINC | VC2_PROTOCOL);	regs->set.dcbdata0.bybytes.b3 = vc2ireg;	regs->set.dcbmode = (NPORT_DMODE_AVC2 | VC2_REGADDR_IREG | NPORT_DMODE_W2 |			   NPORT_DMODE_ECINC | VC2_PROTOCOL);	return regs->set.dcbdata0.byshort.s1;}/* VC2 Control register bits */#define VC2_CTRL_EVIRQ     0x0001#define VC2_CTRL_EDISP     0x0002#define VC2_CTRL_EVIDEO    0x0004#define VC2_CTRL_EDIDS     0x0008#define VC2_CTRL_ECURS     0x0010#define VC2_CTRL_EGSYNC    0x0020#define VC2_CTRL_EILACE    0x0040#define VC2_CTRL_ECDISP    0x0080#define VC2_CTRL_ECCURS    0x0100#define VC2_CTRL_ECG64     0x0200#define VC2_CTRL_GLSEL     0x0400/* Controlling the color map on NEWPORT. */#define NCMAP_REGADDR_AREG   0x00000000#define NCMAP_REGADDR_ALO    0x00000000#define NCMAP_REGADDR_AHI    0x00000010#define NCMAP_REGADDR_PBUF   0x00000020#define NCMAP_REGADDR_CREG   0x00000030#define NCMAP_REGADDR_SREG   0x00000040#define NCMAP_REGADDR_RREG   0x00000060#define NCMAP_PROTOCOL       (0x00008000 | 0x00040000 | 0x00800000)static __inline__ void newport_cmap_setaddr(struct newport_regs *regs,					unsigned short addr){	regs->set.dcbmode = (NPORT_DMODE_ACMALL | NCMAP_PROTOCOL |			   NPORT_DMODE_SENDIAN | NPORT_DMODE_ECINC |			   NCMAP_REGADDR_AREG | NPORT_DMODE_W2);	regs->set.dcbdata0.byshort.s1 = addr;	regs->set.dcbmode = (NPORT_DMODE_ACMALL | NCMAP_PROTOCOL |			   NCMAP_REGADDR_PBUF | NPORT_DMODE_W3);}static __inline__ void newport_cmap_setrgb(struct newport_regs *regs,				       unsigned char red,				       unsigned char green,				       unsigned char blue){	regs->set.dcbdata0.byword =		(red << 24) |		(green << 16) |		(blue << 8);}/* Miscellaneous NEWPORT routines. */#define BUSY_TIMEOUT 100000static __inline__ int newport_wait(void){	int i = 0;	while(i < BUSY_TIMEOUT)		if(!(npregs->cset.status & NPORT_STAT_GBUSY))			break;	if(i == BUSY_TIMEOUT)		return 1;	return 0;}static __inline__ int newport_bfwait(void){	int i = 0;	while(i < BUSY_TIMEOUT)		if(!(npregs->cset.status & NPORT_STAT_BBUSY))			break;	if(i == BUSY_TIMEOUT)		return 1;	return 0;}/* newport.c and cons_newport.c routines */extern struct graphics_ops *newport_probe (int, const char **);void newport_save    (void *);void newport_restore (void *);void newport_reset   (void);int  newport_ioctl   (int card, int cmd, unsigned long arg);/* * DCBMODE register defines: *//* Width of the data being transferred for each DCBDATA[01] word */#define DCB_DATAWIDTH_4 0x0#define DCB_DATAWIDTH_1 0x1#define DCB_DATAWIDTH_2 0x2#define DCB_DATAWIDTH_3 0x3/* If set, all of DCBDATA will be moved, otherwise only DATAWIDTH bytes */#define DCB_ENDATAPACK   (1 << 2)/* Enables DCBCRS auto increment after each DCB transfer */#define DCB_ENCRSINC     (1 << 3)/* shift for accessing the control register select address (DBCCRS, 3 bits) */#define DCB_CRS_SHIFT    4/* DCBADDR (4 bits): display bus slave address */#define DCB_ADDR_SHIFT   7#define DCB_VC2          (0 <<  DCB_ADDR_SHIFT)#define DCB_CMAP_ALL     (1 <<  DCB_ADDR_SHIFT)#define DCB_CMAP0        (2 <<  DCB_ADDR_SHIFT)#define DCB_CMAP1        (3 <<  DCB_ADDR_SHIFT)#define DCB_XMAP_ALL     (4 <<  DCB_ADDR_SHIFT)#define DCB_XMAP0        (5 <<  DCB_ADDR_SHIFT)#define DCB_XMAP1        (6 <<  DCB_ADDR_SHIFT)#define DCB_BT445        (7 <<  DCB_ADDR_SHIFT)#define DCB_VCC1         (8 <<  DCB_ADDR_SHIFT)#define DCB_VAB1         (9 <<  DCB_ADDR_SHIFT)#define DCB_LG3_BDVERS0  (10 << DCB_ADDR_SHIFT)#define DCB_LG3_ICS1562  (11 << DCB_ADDR_SHIFT)#define DCB_RESERVED     (15 << DCB_ADDR_SHIFT)/* DCB protocol ack types */#define DCB_ENSYNCACK    (1 << 11)#define DCB_ENASYNCACK   (1 << 12)#define DCB_CSWIDTH_SHIFT 13#define DCB_CSHOLD_SHIFT  18#define DCB_CSSETUP_SHIFT 23/* XMAP9 specific defines *//*   XMAP9 -- registers as seen on the DCBMODE register*/#   define XM9_CRS_CONFIG            (0 << DCB_CRS_SHIFT)#       define XM9_PUPMODE           (1 << 0)#       define XM9_ODD_PIXEL         (1 << 1)#       define XM9_8_BITPLANES       (1 << 2)#       define XM9_SLOW_DCB          (1 << 3)#       define XM9_VIDEO_RGBMAP_MASK (3 << 4)#       define XM9_EXPRESS_VIDEO     (1 << 6)#       define XM9_VIDEO_OPTION      (1 << 7)#   define XM9_CRS_REVISION          (1 << DCB_CRS_SHIFT)#   define XM9_CRS_FIFO_AVAIL        (2 << DCB_CRS_SHIFT)#       define XM9_FIFO_0_AVAIL      0#       define XM9_FIFO_1_AVAIL      1#       define XM9_FIFO_2_AVAIL      3#       define XM9_FIFO_3_AVAIL      2#       define XM9_FIFO_FULL         XM9_FIFO_0_AVAIL#       define XM9_FIFO_EMPTY        XM9_FIFO_3_AVAIL#   define XM9_CRS_CURS_CMAP_MSB     (3 << DCB_CRS_SHIFT)#   define XM9_CRS_PUP_CMAP_MSB      (4 << DCB_CRS_SHIFT)#   define XM9_CRS_MODE_REG_DATA     (5 << DCB_CRS_SHIFT)#   define XM9_CRS_MODE_REG_INDEX    (7 << DCB_CRS_SHIFT)#define DCB_CYCLES(setup,hold,width)                \                  ((hold << DCB_CSHOLD_SHIFT)  |    \		   (setup << DCB_CSSETUP_SHIFT)|    \		   (width << DCB_CSWIDTH_SHIFT))#define W_DCB_XMAP9_PROTOCOL       DCB_CYCLES (2, 1, 0)#define WSLOW_DCB_XMAP9_PROTOCOL   DCB_CYCLES (5, 5, 0)#define WAYSLOW_DCB_XMAP9_PROTOCOL DCB_CYCLES (12, 12, 0)#define R_DCB_XMAP9_PROTOCOL       DCB_CYCLES (2, 1, 3)static __inline__ voidxmap9FIFOWait (struct newport_regs *rex){        rex->set.dcbmode = DCB_XMAP0 | XM9_CRS_FIFO_AVAIL |		DCB_DATAWIDTH_1 | R_DCB_XMAP9_PROTOCOL;        newport_bfwait ();	        while ((rex->set.dcbdata0.bybytes.b3 & 3) != XM9_FIFO_EMPTY)		;}static __inline__ voidxmap9SetModeReg (struct newport_regs *rex, unsigned int modereg, unsigned int data24, int cfreq){        if (cfreq > 119)            rex->set.dcbmode = DCB_XMAP_ALL | XM9_CRS_MODE_REG_DATA |                        DCB_DATAWIDTH_4 | W_DCB_XMAP9_PROTOCOL;        else if (cfreq > 59)            rex->set.dcbmode = DCB_XMAP_ALL | XM9_CRS_MODE_REG_DATA |		    DCB_DATAWIDTH_4 | WSLOW_DCB_XMAP9_PROTOCOL;            else            rex->set.dcbmode = DCB_XMAP_ALL | XM9_CRS_MODE_REG_DATA |                        DCB_DATAWIDTH_4 | WAYSLOW_DCB_XMAP9_PROTOCOL;         rex->set.dcbdata0.byword = ((modereg) << 24) | (data24 & 0xffffff);}#define BT445_PROTOCOL		DCB_CYCLES(1,1,3)#define BT445_CSR_ADDR_REG	(0 << DCB_CRS_SHIFT)#define BT445_CSR_REVISION	(2 << DCB_CRS_SHIFT)#define BT445_REVISION_REG	0x01#endif /* !(_SGI_NEWPORT_H) */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -