ng1hw.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:7k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /* $Id: ng1hw.h,v 1.4 1999/08/04 06:01:51 ulfc Exp $
  2.  * 
  3.  * ng1hw.h: Tweaks the newport.h structures and definations to be compatible
  4.  *      with IRIX.  Quite ugly, but it works.
  5.  *
  6.  * Copyright (C) 1999 Ulf Carlsson (ulfc@thepuffingroup.com)
  7.  *
  8.  */
  9. #ifndef _SGI_NG1HW_H
  10. #define _SGI_NG1HW_H
  11. #include <video/newport.h>
  12. #define rex3regs newport_rexregs
  13. #define configregs newport_cregs
  14. #define float_long npfreg_t
  15. typedef struct newport_rexregs Rex3regs;
  16. typedef struct newport_cregs Configregs;
  17. typedef union np_dcb DCB_reg;
  18. /* It looks like I can't do a simple tweak with this structure because the IRIX
  19.  * version is just *too* stupid.  Ok, here's a new version of it..
  20.  */
  21. struct rex3chip {
  22. struct newport_rexregs set;
  23. unsigned long _unused0[0x16e];
  24. struct newport_rexregs go;
  25. unsigned long _unused1[0x22e];
  26. struct {
  27. struct newport_cregs set;
  28. unsigned long _unused2[0x1ef];
  29. struct newport_cregs go;
  30. } p1;
  31. };
  32. typedef struct rex3chip rex3Chip;
  33. typedef struct rex3chip Rex3chip;
  34. /* Tweak the defines .. */
  35. #define DM0_OPCODE NPORT_DMODE0_OPMASK
  36. #define DM0_NOP NPORT_DMODE0_NOP
  37. #define DM0_READ NPORT_DMODE0_RD
  38. #define DM0_DRAW NPORT_DMODE0_DRAW
  39. #define DM0_SCR2SCR NPORT_DMODE0_S2S
  40. #define DM0_ADRMODE_SHIFT 2
  41. #define DM0_ADRMODE NPORT_DMODE0_AMMASK
  42. #define DM0_SPAN NPORT_DMODE0_SPAN
  43. #define DM0_BLOCK NPORT_DMODE0_BLOCK
  44. #define DM0_ILINE NPORT_DMODE0_ILINE
  45. #define DM0_FLINE NPORT_DMODE0_FLINE
  46. #define DM0_ALINE NPORT_DMODE0_ALINE
  47. #define DM0_TLINE NPORT_DMODE0_TLINE
  48. #define DM0_BLINE               NPORT_DMODE0_BLINE
  49. #define DM0_DOSETUP NPORT_DMODE0_DOSETUP
  50. #define DM0_COLORHOST NPORT_DMODE0_CHOST
  51. #define DM0_ALPHAHOST NPORT_DMODE0_AHOST
  52. #define DM0_STOPONX NPORT_DMODE0_STOPX
  53. #define DM0_STOPONY NPORT_DMODE0_STOPY
  54. #define DM0_STOPONXY (NPORT_DMODE0_STOPX | NPORT_DMODE0_STOPY)
  55. #define DM0_SKIPFIRST NPORT_DMODE0_SK1ST
  56. #define DM0_SKIPLAST NPORT_DMODE0_SKLST
  57. #define DM0_ENZPATTERN NPORT_DMODE0_ZPENAB
  58. #define DM0_ENLSPATTERN NPORT_DMODE0_LISPENAB
  59. #define DM0_LSADVLAST NPORT_DMODE0_LISLST
  60. #define DM0_LENGTH32 NPORT_DMODE0_L32
  61. #define DM0_ZOPAQUE NPORT_DMODE0_ZOPQ
  62. #define DM0_LSOPAQUE NPORT_DMODE0_LISOPQ
  63. #define DM0_SHADE NPORT_DMODE0_SHADE
  64. #define DM0_LRONLY NPORT_DMODE0_LRONLY
  65. #define DM0_XYOFFSET NPORT_DMODE0_XYOFF
  66. #define DM0_CICLAMP NPORT_DMODE0_CLAMP
  67. #define DM0_ENDPTFILTER NPORT_DMODE0_ENDPF
  68. #define DM0_YSTRIDE NPORT_DMODE0_YSTR 
  69. #define DM1_PLANES_SHIFT 0
  70. /* The rest of the DM1 planes defines are in newport.h */
  71. #define DM1_DRAWDEPTH_SHIFT 3
  72. #define DM1_DRAWDEPTH_MASK NPORT_DMODE1_DDMASK
  73. #define DM1_DRAWDEPTH NPORT_DMODE1_DD24 /* An alias? */
  74. #define DM1_DRAWDEPTH4 NPORT_DMODE1_DD4
  75. #define DM1_DRAWDEPTH8 NPORT_DMODE1_DD8
  76. #define DM1_DRAWDEPTH12 NPORT_DMODE1_DD12
  77. #define DM1_DRAWDEPTH24 NPORT_DMODE1_DD24
  78. #define DM1_DBLSRC NPORT_DMODE1_DSRC
  79. #define DM1_YFLIP NPORT_DMODE1_YFLIP
  80. #define DM1_RWPACKED NPORT_DMODE1_RWPCKD
  81. #define DM1_HOSTDEPTH_SHIFT  8
  82. #define DM1_HOSTDEPTH_MASK NPORT_DMODE1_HDMASK
  83. #define DM1_HOSTDEPTH NPORT_DMODE1_HD32 /* An alias? */
  84. #define DM1_HOSTDEPTH4 NPORT_DMODE1_HD4
  85. #define DM1_HOSTDEPTH8 NPORT_DMODE1_HD8
  86. #define DM1_HOSTDEPTH12 NPORT_DMODE1_HD12
  87. #define DM1_HOSTDEPTH32 NPORT_DMODE1_HD32
  88. #define DM1_RWDOUBLE NPORT_DMODE1_RWDBL
  89. #define DM1_SWAPENDIAN NPORT_DMODE1_ESWAP
  90. #define DM1_COLORCOMPARE_SHIFT 12
  91. #define DM1_COLORCOMPARE_MASK NPORT_DMODE1_CCMASK
  92. #define DM1_COLORCOMPARE NPORT_DMODE1_CCMASK
  93. #define DM1_COLORCOMPLT NPORT_DMODE1_CCLT
  94. #define DM1_COLORCOMPEQ NPORT_DMODE1_CCEQ
  95. #define DM1_COLORCOMPGT NPORT_DMODE1_CCGT
  96. #define DM1_RGBMODE NPORT_DMODE1_RGBMD
  97. #define DM1_ENDITHER NPORT_DMODE1_DENAB
  98. #define DM1_FASTCLEAR NPORT_DMODE1_FCLR
  99. #define DM1_ENBLEND NPORT_DMODE1_BENAB
  100. #define DM1_SF_SHIFT 19
  101. #define DM1_SF_MASK    NPORT_DMODE1_SFMASK
  102. #define DM1_SF NPORT_DMODE1_SFMASK 
  103. #define DM1_SF_ZERO NPORT_DMODE1_SF0
  104. #define DM1_SF_ONE NPORT_DMODE1_SF1
  105. #define DM1_SF_DC NPORT_DMODE1_SFDC
  106. #define DM1_SF_MDC NPORT_DMODE1_SFMDC
  107. #define DM1_SF_SA NPORT_DMODE1_SFSA
  108. #define DM1_SF_MSA NPORT_DMODE1_SFMSA
  109. #define DM1_DF_SHIFT 22 /* dfactor(2:0) */
  110. #define DM1_DF_MASK NPORT_DMODE1_DFMASK 
  111. #define DM1_DF NPORT_DMODE1_DFMASK 
  112. #define DM1_DF_ZERO NPORT_DMODE1_DF0
  113. #define DM1_DF_ONE NPORT_DMODE1_DF1
  114. #define DM1_DF_SC NPORT_DMODE1_DFSC
  115. #define DM1_DF_MSC NPORT_DMODE1_DFMSC
  116. #define DM1_DF_SA NPORT_DMODE1_DFSA
  117. #define DM1_DF_MSA NPORT_DMODE1_DFMSA
  118. #define DM1_ENBACKBLEND NPORT_DMODE1_BBENAB
  119. #define DM1_ENPREFETCH NPORT_DMODE1_PFENAB
  120. #define DM1_BLENDALPHA NPORT_DMODE1_ABLEND
  121. #define DM1_LO_SHIFT 28
  122. #define DM1_LO NPORT_DMODE1_LOMASK
  123. #define DM1_LO_MASK       NPORT_DMODE1_LOMASK
  124. #define DM1_LO_ZERO NPORT_DMODE1_LOZERO
  125. #define DM1_LO_AND NPORT_DMODE1_LOAND
  126. #define DM1_LO_ANDR NPORT_DMODE1_LOANDR
  127. #define DM1_LO_SRC NPORT_DMODE1_LOSRC
  128. #define DM1_LO_ANDI NPORT_DMODE1_LOANDI
  129. #define DM1_LO_DST NPORT_DMODE1_LODST
  130. #define DM1_LO_XOR NPORT_DMODE1_LOXOR
  131. #define DM1_LO_OR NPORT_DMODE1_LOOR
  132. #define DM1_LO_NOR NPORT_DMODE1_LONOR
  133. #define DM1_LO_XNOR NPORT_DMODE1_LOXNOR
  134. #define DM1_LO_NDST NPORT_DMODE1_LONDST
  135. #define DM1_LO_ORR NPORT_DMODE1_LOORR
  136. #define DM1_LO_NSRC NPORT_DMODE1_LONSRC
  137. #define DM1_LO_ORI NPORT_DMODE1_LOORI
  138. #define DM1_LO_NAND NPORT_DMODE1_LONAND
  139. #define DM1_LO_ONE NPORT_DMODE1_LOONE
  140. #define SMASK0 NPORT_CMODE_SM0
  141. #define SMASK1 NPORT_CMODE_SM1
  142. #define SMASK2 NPORT_CMODE_SM2
  143. #define SMASK3 NPORT_CMODE_SM3
  144. #define SMASK4 NPORT_CMODE_SM4
  145. #define ALL_SMASKS 0x1f
  146. #define CM_CIDMATCH_SHIFT       9
  147. #define CM_CIDMATCH_MASK        NPORT_CMODE_CMSK
  148. #define REX3VERSION_MASK NPORT_STAT_VERS
  149. #define GFXBUSY         NPORT_STAT_GBUSY
  150. #define BACKBUSY         NPORT_STAT_BBUSY
  151. #define VRINT            NPORT_STAT_VRINT
  152. #define VIDEOINT         NPORT_STAT_VIDINT
  153. #define GFIFO_LEVEL_SHIFT       7
  154. #define GFIFO_LEVEL_MASK        NPORT_STAT_GLMSK 
  155. #define BFIFO_LEVEL_SHIFT       13
  156. #define BFIFO_LEVEL_MASK        NPORT_STAT_BLMSK 
  157. #define BFIFO_INT         NPORT_STAT_BFIRQ
  158. #define GFIFO_INT         NPORT_STAT_GFIRQ
  159. #define GIO32MODE NPORT_CFG_G32MD 
  160. #define BUSWIDTH NPORT_CFG_BWIDTH
  161. #define EXTREGXCVR NPORT_CFG_ERCVR 
  162. #define BFIFODEPTH_SHIFT 3
  163. #define BFIFODEPTH_MASK NPORT_CFG_BDMSK
  164. #define BFIFOABOVEINT NPORT_CFG_BFAINT
  165. #define GFIFODEPTH_SHIFT        8
  166. #define GFIFODEPTH_MASK NPORT_CFG_GDMSK 
  167. #define GFIFOABOVEINT NPORT_CFG_GFAINT
  168. #define TIMEOUT_SHIFT 14
  169. #define TIMEOUT_MASK NPORT_CFG_TOMSK 
  170. #define VREFRESH_SHIFT 17
  171. #define VREFRESH_MASK NPORT_CFG_VRMSK
  172. #define FB_TYPE NPORT_CFG_FBTYP
  173. #define DCB_DATAWIDTH_MASK (0x3)
  174. #define DCB_CRS_MASK (0x7 << DCB_CRS_SHIFT)
  175. #define DCB_ADDR_MASK (0xf << DCB_ADDR_SHIFT)
  176. #define DCB_CSWIDTH_MASK (0x1f << DCB_CSWIDTH_SHIFT)
  177. #define DCB_CSHOLD_MASK (0x1f << DCB_CSHOLD_SHIFT)
  178. #define DCB_CSSETUP_MASK (0x1f << DCB_CSSETUP_SHIFT)
  179. #define DCB_SWAPENDIAN (1 << 28)
  180. #define REX3WAIT(rex3)  while ((rex3)->p1.set.status & GFXBUSY)
  181. #define BFIFOWAIT(rex3)  while ((rex3)->p1.set.status & BACKBUSY)
  182. #define REX3_GIO_ADDR_0         0x1f0f0000
  183. #define REX3_GIO_ADDR_1         0x1f4f0000
  184. #define REX3_GIO_ADDR_2         0x1f8f0000
  185. #define REX3_GIO_ADDR_3         0x1fcf0000
  186. #define NG1_XSIZE 1280
  187. #define NG1_YSIZE 1024
  188. #endif