Home | History | Annotate | Line # | Download | only in src
      1 
      2 
      3 #ifndef _TDFX_FIFO_H_
      4 #define _TDFX_FIFO_H_
      5 
      6 typedef unsigned int   uint32;
      7 typedef unsigned short uint16;
      8 typedef unsigned char  uint8;
      9 typedef int   int32;
     10 typedef short int16;
     11 typedef char  int8;
     12 
     13 #define CMDFIFO_PAGES 64
     14 
     15 #define PROPSAREADATA \
     16   volatile int fifoPtr; \
     17   volatile int fifoRead;
     18 
     19 #define PROPDATASTD \
     20   volatile unsigned int *fifoPtr; \
     21   volatile unsigned int *fifoRead; \
     22   int fifoSlots; \
     23   unsigned int *fifoBase; \
     24   unsigned int *fifoEnd; \
     25   int fifoOffset; \
     26   int fifoSize
     27 
     28 #define PROPDATADBG \
     29   unsigned int *fifoMirrorBase; \
     30   unsigned int *fifoMirrorPtr;
     31 
     32 #ifdef FIFO_DEBUG
     33 #define PROPDATA PROPDATASTD; \
     34 	PROPDATADBG
     35 #else
     36 #define PROPDATA PROPDATASTD;
     37 #endif
     38 
     39 #ifdef TDFX_DEBUG_CMDS
     40 #define TDFXMakeRoom(p, n) \
     41   do { \
     42     if (fifoCnt) \
     43       ErrorF("Previous TDFXMakeRoom passed incorrect size\n"); \
     44     cmdCnt=n; \
     45     TDFXAllocateSlots(p, (n)+1); \
     46   while (0)
     47 #define TDFXWriteLong(p, a, v)
     48   do { \
     49     if (lastAddr & a<lastAddr) \
     50       ErrorF("TDFXWriteLong not ordered\n"); \
     51     cmdCnt--; \
     52     WRITE_FIFO(p, a, v); \
     53   while (0)
     54 #else
     55 #define TDFXMakeRoom(p, n) TDFXAllocateSlots(p, (n)+1)
     56 #define TDFXWriteLong(p, a, v) WRITE_FIFO(p, a, v)
     57 #endif
     58 #define DECLARE SET_PKT2_HEADER
     59 #define DECLARE_LAUNCH SET_PK1_HEADER_LAUNCH
     60 #define TDFXSendNOP TDFXSendNOPFifo
     61 
     62 /*
     63 ** Structures for Banshee AGP/CMD Transfer/MISC registers.
     64 */
     65 typedef volatile struct _H3CmdFifo
     66 {
     67 	uint32 baseAddrL;
     68 	uint32 baseSize;
     69 	uint32 bump;
     70 	uint32 readPtrL;
     71 	uint32 readPtrH;
     72 	uint32 aMin;
     73 	uint32 unusedA;
     74 	uint32 aMax;
     75 	uint32 unusedB;
     76 	uint32 depth;
     77 	uint32 holeCount;
     78 	uint32 reserved;
     79 } H3CmdFifo;
     80 
     81 Bool TDFXInitFifo(ScreenPtr pScreen);
     82 void TDFXShutdownFifo(ScreenPtr pScreen);
     83 void TDFXAllocateSlots(TDFXPtr pTDFX, int slots);
     84 void TDFXSendNOPFifo2D(ScrnInfoPtr pScreen);
     85 
     86 #define CHECK_FOR_ROOM(_n) \
     87 	if ((pTDFX->fifoSlots -= (_n)) < 0) \
     88 		cmdfifo_make_room(adapter, fifo_ptr, _n); \
     89 
     90 #if X_BYTE_ORDER == X_BIG_ENDIAN
     91 #define BE_BSWAP32(val) ((((val) & 0x000000ff) << 24) | \
     92                      (((val) & 0x0000ff00) << 8) |  \
     93                      (((val) & 0x00ff0000) >> 8) |  \
     94                      (((val) & 0xff000000) >> 24))
     95 
     96 #define BE_WSWAP32(val) ((((val) & 0x0000ffff) << 16) | \
     97                      (((val) & 0xffff0000) >> 16))
     98  void TDFXWriteFifo_24(TDFXPtr pTDFX, int val);
     99  void TDFXWriteFifo_16(TDFXPtr pTDFX, int val);
    100  void TDFXWriteFifo_8(TDFXPtr pTDFX, int val);
    101 #else
    102 /* Don't swap on little-endian platforms */
    103 #define BE_BSWAP32(val) val
    104 #define BE_WSWAP32(val) val
    105 #endif
    106 
    107 
    108 #ifdef DEBUG_FIFO
    109 #define WRITE_FIFO(ptr, loc, _val) \
    110   do { \
    111     *pTDFX->fifoMirrorPtr++ = _val; \
    112     *pTDFX->fifoPtr++ = _val; \
    113   } while(0)
    114 #else
    115 #if X_BYTE_ORDER == X_BIG_ENDIAN
    116 #define WRITE_FIFO(ptr, loc, _val) \
    117   do { \
    118     pTDFX->writeFifo(ptr, _val); \
    119   } while (0)
    120 #else
    121 #define WRITE_FIFO(ptr, loc, _val) \
    122   do { \
    123     *pTDFX->fifoPtr++ = _val; \
    124   } while(0)
    125 #endif /* X_BYTE_ORDER == X_BIG_ENDIAN */
    126 #endif /* DEBUG_FIFO */
    127 
    128 #if X_BYTE_ORDER == X_BIG_ENDIAN
    129 #define FLUSH_WCB()
    130 #else
    131 #define FLUSH_WCB() inb(0x80)
    132 #endif
    133 
    134 /*
    135 ** Send a packet header type 1 (2D) to the cmdfifo
    136 */
    137 #define SET_2DPK1_HEADER(_ndwords, _inc, _reg) \
    138 	WRITE_FIFO ( pTDFX, 0, (_ndwords) << SSTCP_PKT1_NWORDS_SHIFT | \
    139 	                ((_inc) ? SSTCP_PKT1_INC : SSTCP_PKT1_NOINC) | \
    140 	                SSTCP_PKT1_2D | \
    141 	                FIELD_OFFSET(H3_2D_REGISTERS, _reg)/4 << SSTCP_REGBASE_SHIFT | \
    142 	                SSTCP_PKT1 \
    143 	              )
    144 
    145 /*
    146 ** Send a packet header type 1 to begin at launchArea[0] to the cmdfifo
    147 */
    148 #define SET_PK1_HEADER_LAUNCH(_ndwords, _inc) \
    149 	WRITE_FIFO ( pTDFX, 0, (_ndwords) << SSTCP_PKT1_NWORDS_SHIFT | \
    150 	                ((_inc) ? SSTCP_PKT1_INC : SSTCP_PKT1_NOINC) | \
    151 	                SSTCP_PKT1_LAUNCH | SSTCP_PKT1 \
    152 	              )
    153 
    154 /*
    155 ** Send a packet header type 1 to begin at colorPattern[0] to the cmdfifo
    156 */
    157 #define SET_PK1_HEADER_COLORPATTERN(_ndwords, _inc) \
    158 	WRITE_FIFO ( pTDFX, 0, (_ndwords) << SSTCP_PKT1_NWORDS_SHIFT | \
    159 	                ((_inc) ? SSTCP_PKT1_INC : SSTCP_PKT1_NOINC) | \
    160 	                SSTCP_PKT1_COLORPATTERN | SSTCP_PKT1 \
    161 	              )
    162 
    163 /*
    164 ** Send a packet header type 2 to the cmdfifo
    165 */
    166 #define SET_PKT2_HEADER(_mask) \
    167     WRITE_FIFO (pTDFX, 0, ((_mask) << SSTCP_PKT2_MASK_SHIFT) | SSTCP_PKT2)
    168 
    169 /*
    170 ** These are used to select a register mask for use with
    171 ** command fifo packet type 4.  The defines represent an
    172 ** offset register from the base register.
    173 ** e.g. R5 = baseReg + 5, R0 = baseReg etc..
    174 */
    175 #define R0  (1 << 0)
    176 #define R1  (1 << 1)
    177 #define R2  (1 << 2)
    178 #define R3  (1 << 3)
    179 #define R4  (1 << 4)
    180 #define R5  (1 << 5)
    181 #define R6  (1 << 6)
    182 #define R7  (1 << 7)
    183 #define R8  (1 << 8)
    184 #define R9  (1 << 9)
    185 #define R10 (1 << 10)
    186 #define R11 (1 << 11)
    187 #define R12 (1 << 12)
    188 #define R13 (1 << 13)
    189 
    190 #define SET_2DPK4_HEADER(_mask, _reg0) \
    191 	WRITE_FIFO ( pTDFX, 0, ((_mask) << SSTCP_PKT4_MASK_SHIFT) | \
    192 	                SSTCP_PKT4_2D | \
    193 	                (_reg0) | \
    194 	                SSTCP_PKT4 \
    195 	              )
    196 
    197 #define SET_3DPK4_HEADER(_mask, _reg0) \
    198 	WRITE_FIFO ( pTDFX, 0, ((_mask) << SSTCP_PKT4_MASK_SHIFT) | \
    199 	                (_reg0) | \
    200 	                SSTCP_PKT4 \
    201 	              )
    202 
    203 /*----------------- SST cmdFifo*.baseSize bits --------------------------- */
    204 #define SST_CMDFIFO_SIZE		0xFF
    205 #define SST_EN_CMDFIFO			BIT(8)
    206 #define SST_CMDFIFO_AGP			BIT(9)
    207 #define SST_CMDFIFO_DISABLE_HOLES	BIT(10)
    208 
    209 /* SST COMMAND PACKET defines */
    210 #define SSTCP_PKT_SIZE	3
    211 #define SSTCP_PKT	SST_MASK(SSTCP_PKT_SIZE)
    212 #define SSTCP_PKT0	0
    213 #define SSTCP_PKT1	1
    214 #define SSTCP_PKT2	2
    215 #define SSTCP_PKT3	3
    216 #define SSTCP_PKT4	4
    217 #define SSTCP_PKT5	5
    218 #define SSTCP_PKT6	6
    219 #define SSTCP_PKT7	7
    220 
    221 #define SSTCP_BOGUS_WORDS_SHIFT	29
    222 #define SSTCP_BOGUS_WORDS	(7 << SSTCP_BOGUS_WORDS_SHIFT)
    223 
    224 /* packet 0 defines */
    225 #define SSTCP_PKT0_FUNC_SHIFT	3
    226 #define SSTCP_PKT0_FUNC		(7 << SSTCP_PKT0_FUNC_SHIFT)
    227 #define SSTCP_PKT0_NOP		((0<<SSTCP_PKT0_FUNC_SHIFT) | SSTCP_PKT0)
    228 #define SSTCP_PKT0_JSR		((1<<SSTCP_PKT0_FUNC_SHIFT) | SSTCP_PKT0)
    229 #define SSTCP_PKT0_RET		((2<<SSTCP_PKT0_FUNC_SHIFT) | SSTCP_PKT0)
    230 #define SSTCP_PKT0_JMP_LOCAL	((3<<SSTCP_PKT0_FUNC_SHIFT) | SSTCP_PKT0)
    231 #define SSTCP_PKT0_JMP_AGP	((4<<SSTCP_PKT0_FUNC_SHIFT) | SSTCP_PKT0)
    232 #define SSTCP_PKT0_ADDR_SHIFT	6
    233 #define SSTCP_PKT0_ADDR		(0x7FFFFF<<SSTCP_PKT0_ADDR_SHIFT)
    234 
    235 /* packet 1 defines */
    236 #define SSTCP_REGBASE_SHIFT	SSTCP_PKT_SIZE
    237 #ifdef H4
    238 #define SSTCP_REGBASE		(0x7FF<<SSTCP_REGBASE_SHIFT)
    239 #define SSTCP_REGBASE_FROM_ADDR(x) ( (((x)>>2) & 0x7FF) << SSTCP_REGBASE_SHIFT )
    240 #else
    241 #define SSTCP_REGBASE		((0x3FF)<<SSTCP_REGBASE_SHIFT)
    242 #define SSTCP_REGBASE_FROM_ADDR(x) ( (((x)>>2) & 0x3FF) << SSTCP_REGBASE_SHIFT )
    243 #endif
    244 #define SSTCP_PKT1_2D	BIT(14)
    245 #define SSTCP_INC           BIT(15)
    246 #define SSTCP_PKT1_NWORDS_SHIFT	16
    247 #define SSTCP_PKT1_NWORDS	(0xFFFFUL<<SSTCP_PKT1_NWORDS_SHIFT)
    248 
    249 #define SSTCP_PKT1_NOINC           0
    250 #define SSTCP_PKT1_INC             SSTCP_INC
    251 #define SSTCP_PKT1_CLIP0MIN        (SSTCP_PKT1_2D | (0x02 << SSTCP_REGBASE_SHIFT))
    252 #define SSTCP_PKT1_CLIP0MAX        (SSTCP_PKT1_2D | (0x03 << SSTCP_REGBASE_SHIFT))
    253 #define SSTCP_PKT1_DSTBASEADDR     (SSTCP_PKT1_2D | (0x04 << SSTCP_REGBASE_SHIFT))
    254 #define SSTCP_PKT1_DSTFORMAT       (SSTCP_PKT1_2D | (0x05 << SSTCP_REGBASE_SHIFT))
    255 #define SSTCP_PKT1_SRCCOLORKEYMIN  (SSTCP_PKT1_2D | (0x06 << SSTCP_REGBASE_SHIFT))
    256 #define SSTCP_PKT1_SRCCOLORKEYMAX  (SSTCP_PKT1_2D | (0x07 << SSTCP_REGBASE_SHIFT))
    257 #define SSTCP_PKT1_DSTCOLORKEYMIN  (SSTCP_PKT1_2D | (0x08 << SSTCP_REGBASE_SHIFT))
    258 #define SSTCP_PKT1_DSTCOLORKEYMAX  (SSTCP_PKT1_2D | (0x09 << SSTCP_REGBASE_SHIFT))
    259 #define SSTCP_PKT1_BRESERROR0      (SSTCP_PKT1_2D | (0x0a << SSTCP_REGBASE_SHIFT))
    260 #define SSTCP_PKT1_BRESERROR1      (SSTCP_PKT1_2D | (0x0b << SSTCP_REGBASE_SHIFT))
    261 #define SSTCP_PKT1_ROP             (SSTCP_PKT1_2D | (0x0c << SSTCP_REGBASE_SHIFT))
    262 #define SSTCP_PKT1_SRCBASEADDR     (SSTCP_PKT1_2D | (0x0d << SSTCP_REGBASE_SHIFT))
    263 #define SSTCP_PKT1_COMMANDEXTRA    (SSTCP_PKT1_2D | (0x0e << SSTCP_REGBASE_SHIFT))
    264 #define SSTCP_PKT1_LINESTIPPLE     (SSTCP_PKT1_2D | (0x0f << SSTCP_REGBASE_SHIFT))
    265 #define SSTCP_PKT1_LINESTYLE       (SSTCP_PKT1_2D | (0x10 << SSTCP_REGBASE_SHIFT))
    266 #define SSTCP_PKT1_PATTERN0ALIAS   (SSTCP_PKT1_2D | (0x11 << SSTCP_REGBASE_SHIFT))
    267 #define SSTCP_PKT1_PATTERN1ALIAS   (SSTCP_PKT1_2D | (0x12 << SSTCP_REGBASE_SHIFT))
    268 #define SSTCP_PKT1_CLIP1MIN        (SSTCP_PKT1_2D | (0x13 << SSTCP_REGBASE_SHIFT))
    269 #define SSTCP_PKT1_CLIP1MAX        (SSTCP_PKT1_2D | (0x14 << SSTCP_REGBASE_SHIFT))
    270 #define SSTCP_PKT1_SRCFORMAT       (SSTCP_PKT1_2D | (0x15 << SSTCP_REGBASE_SHIFT))
    271 #define SSTCP_PKT1_SRCSIZE         (SSTCP_PKT1_2D | (0x16 << SSTCP_REGBASE_SHIFT))
    272 #define SSTCP_PKT1_SRCXY           (SSTCP_PKT1_2D | (0x17 << SSTCP_REGBASE_SHIFT))
    273 #define SSTCP_PKT1_COLORBACK       (SSTCP_PKT1_2D | (0x18 << SSTCP_REGBASE_SHIFT))
    274 #define SSTCP_PKT1_COLORFORE       (SSTCP_PKT1_2D | (0x19 << SSTCP_REGBASE_SHIFT))
    275 #define SSTCP_PKT1_DSTSIZE         (SSTCP_PKT1_2D | (0x1a << SSTCP_REGBASE_SHIFT))
    276 #define SSTCP_PKT1_DSTXY           (SSTCP_PKT1_2D | (0x1b << SSTCP_REGBASE_SHIFT))
    277 #define SSTCP_PKT1_COMMAND         (SSTCP_PKT1_2D | (0x1c << SSTCP_REGBASE_SHIFT))
    278 #define SSTCP_PKT1_LAUNCH          (SSTCP_PKT1_2D | (0x20 << SSTCP_REGBASE_SHIFT))
    279 #define SSTCP_PKT1_COLORPATTERN    (SSTCP_PKT1_2D | (0x40 << SSTCP_REGBASE_SHIFT))
    280 
    281 /* packet 2 defines */
    282 #define SSTCP_PKT2_MASK_SHIFT	SSTCP_PKT_SIZE
    283 #define SSTCP_PKT2_MASK		(0x1FFFFFFFUL<<SSTCP_PKT2_MASK_SHIFT)
    284 
    285 #define SSTCP_CLIP0MIN         0x00000001L
    286 #define SSTCP_CLIP0MAX         0x00000002L
    287 #define SSTCP_DSTBASEADDR      0x00000004L
    288 #define SSTCP_DSTFORMAT        0x00000008L
    289 #define SSTCP_SRCCOLORKEYMIN   0x00000010L
    290 #define SSTCP_SRCCOLORKEYMAX   0x00000020L
    291 #define SSTCP_DSTCOLORKEYMIN   0x00000040L
    292 #define SSTCP_DSTCOLORKEYMAX   0x00000080L
    293 #define SSTCP_BRESERROR0       0x00000100L
    294 #define SSTCP_BRESERROR1       0x00000200L
    295 #define SSTCP_ROP              0x00000400L
    296 #define SSTCP_SRCBASEADDR      0x00000800L
    297 #define SSTCP_COMMANDEXTRA     0x00001000L
    298 #define SSTCP_LINESTIPPLE      0x00002000L
    299 #define SSTCP_LINESTYLE        0x00004000L
    300 #define SSTCP_PATTERN0ALIAS    0x00008000L
    301 #define SSTCP_PATTERN1ALIAS    0x00010000L
    302 #define SSTCP_CLIP1MIN         0x00020000L
    303 #define SSTCP_CLIP1MAX         0x00040000L
    304 #define SSTCP_SRCFORMAT        0x00080000L
    305 #define SSTCP_SRCSIZE          0x00100000L
    306 #define SSTCP_SRCXY            0x00200000L
    307 #define SSTCP_COLORBACK        0x00400000L
    308 #define SSTCP_COLORFORE        0x00800000L
    309 #define SSTCP_DSTSIZE          0x01000000L
    310 #define SSTCP_DSTXY            0x02000000L
    311 #define SSTCP_COMMAND          0x04000000L
    312 
    313 /* packet 3 defines */
    314 #define SSTCP_PKT3_CMD_SHIFT	SSTCP_PKT_SIZE
    315 #define SSTCP_PKT3_CMD		(0x7<<SSTCP_PKT3_CMD_SHIFT)
    316 #  define SSTCP_PKT3_BDDBDD	(0<<SSTCP_PKT3_CMD_SHIFT)
    317 #  define SSTCP_PKT3_BDDDDD	(1<<SSTCP_PKT3_CMD_SHIFT)
    318 #  define SSTCP_PKT3_DDDDDD	(2<<SSTCP_PKT3_CMD_SHIFT)
    319 #define SSTCP_PKT3_NUMVERTEX_SHIFT (SSTCP_PKT_SIZE+3)
    320 #define SSTCP_PKT3_NUMVERTEX	(0xF << SSTCP_PKT3_NUMVERTEX_SHIFT)
    321 #define SSTCP_PKT3_PMASK_SHIFT	(SSTCP_PKT_SIZE+3+4)
    322 #define SSTCP_PKT3_PMASK	(0xFFFUL<<SSTCP_PKT3_PMASK_SHIFT)
    323 #define SSTCP_PKT3_SMODE_SHIFT	(SSTCP_PKT3_PMASK_SHIFT+12)
    324 #define SSTCP_PKT3_SMODE	(0x3FUL<<SSTCP_PKT3_SMODE_SHIFT)
    325 #define SSTCP_PKT3_PACKEDCOLOR	BIT(28)
    326 
    327 /* packet 4 defines */
    328 #define SSTCP_REGBASE_SHIFT	SSTCP_PKT_SIZE
    329 #ifdef H4
    330 #define SSTCP_REGBASE		((0x7FF)<<SSTCP_REGBASE_SHIFT)
    331 #else
    332 #define SSTCP_REGBASE		((0x3FF)<<SSTCP_REGBASE_SHIFT)
    333 #endif
    334 #define SSTCP_PKT4_2D		BIT(14)
    335 #define SSTCP_PKT4_MASK_SHIFT	15
    336 #define SSTCP_PKT4_MASK		(0x3FFFUL<<SSTCP_PKT4_MASK_SHIFT)
    337 
    338 #define SSTCP_PKT4_CLIP0MIN        (SSTCP_PKT4_2D | (0x02 << SSTCP_REGBASE_SHIFT))
    339 #define SSTCP_PKT4_CLIP0MAX        (SSTCP_PKT4_2D | (0x03 << SSTCP_REGBASE_SHIFT))
    340 #define SSTCP_PKT4_DSTBASEADDR     (SSTCP_PKT4_2D | (0x04 << SSTCP_REGBASE_SHIFT))
    341 #define SSTCP_PKT4_DSTFORMAT       (SSTCP_PKT4_2D | (0x05 << SSTCP_REGBASE_SHIFT))
    342 #define SSTCP_PKT4_SRCCOLORKEYMIN  (SSTCP_PKT4_2D | (0x06 << SSTCP_REGBASE_SHIFT))
    343 #define SSTCP_PKT4_SRCCOLORKEYMAX  (SSTCP_PKT4_2D | (0x07 << SSTCP_REGBASE_SHIFT))
    344 #define SSTCP_PKT4_DSTCOLORKEYMIN  (SSTCP_PKT4_2D | (0x08 << SSTCP_REGBASE_SHIFT))
    345 #define SSTCP_PKT4_DSTCOLORKEYMAX  (SSTCP_PKT4_2D | (0x09 << SSTCP_REGBASE_SHIFT))
    346 #define SSTCP_PKT4_BRESERROR0      (SSTCP_PKT4_2D | (0x0a << SSTCP_REGBASE_SHIFT))
    347 #define SSTCP_PKT4_BRESERROR1      (SSTCP_PKT4_2D | (0x0b << SSTCP_REGBASE_SHIFT))
    348 #define SSTCP_PKT4_ROP             (SSTCP_PKT4_2D | (0x0c << SSTCP_REGBASE_SHIFT))
    349 #define SSTCP_PKT4_SRCBASEADDR     (SSTCP_PKT4_2D | (0x0d << SSTCP_REGBASE_SHIFT))
    350 #define SSTCP_PKT4_COMMANDEXTRA    (SSTCP_PKT4_2D | (0x0e << SSTCP_REGBASE_SHIFT))
    351 #define SSTCP_PKT4_LINESTIPPLE     (SSTCP_PKT4_2D | (0x0f << SSTCP_REGBASE_SHIFT))
    352 #define SSTCP_PKT4_LINESTYLE       (SSTCP_PKT4_2D | (0x10 << SSTCP_REGBASE_SHIFT))
    353 #define SSTCP_PKT4_PATTERN0ALIAS   (SSTCP_PKT4_2D | (0x11 << SSTCP_REGBASE_SHIFT))
    354 #define SSTCP_PKT4_PATTERN1ALIAS   (SSTCP_PKT4_2D | (0x12 << SSTCP_REGBASE_SHIFT))
    355 #define SSTCP_PKT4_CLIP1MIN        (SSTCP_PKT4_2D | (0x13 << SSTCP_REGBASE_SHIFT))
    356 #define SSTCP_PKT4_CLIP1MAX        (SSTCP_PKT4_2D | (0x14 << SSTCP_REGBASE_SHIFT))
    357 #define SSTCP_PKT4_SRCFORMAT       (SSTCP_PKT4_2D | (0x15 << SSTCP_REGBASE_SHIFT))
    358 #define SSTCP_PKT4_SRCSIZE         (SSTCP_PKT4_2D | (0x16 << SSTCP_REGBASE_SHIFT))
    359 #define SSTCP_PKT4_SRCXY           (SSTCP_PKT4_2D | (0x17 << SSTCP_REGBASE_SHIFT))
    360 #define SSTCP_PKT4_COLORBACK       (SSTCP_PKT4_2D | (0x18 << SSTCP_REGBASE_SHIFT))
    361 #define SSTCP_PKT4_COLORFORE       (SSTCP_PKT4_2D | (0x19 << SSTCP_REGBASE_SHIFT))
    362 #define SSTCP_PKT4_DSTSIZE         (SSTCP_PKT4_2D | (0x1a << SSTCP_REGBASE_SHIFT))
    363 #define SSTCP_PKT4_DSTXY           (SSTCP_PKT4_2D | (0x1b << SSTCP_REGBASE_SHIFT))
    364 #define SSTCP_PKT4_COMMAND         (SSTCP_PKT4_2D | (0x1c << SSTCP_REGBASE_SHIFT))
    365 
    366 /* packet 5 defines */
    367 #define SSTCP_PKT5_NWORDS_SHIFT	3
    368 #define SSTCP_PKT5_NWORDS	(0x7FFFFUL<<SSTCP_PKT5_NWORDS_SHIFT)
    369 #define SSTCP_PKT5_BYTEN_WN_SHIFT 22
    370 #define SSTCP_PKT5_BYTEN_WN	(0xFUL<<SSTCP_PKT5_BYTEN_WN_SHIFT)
    371 #define SSTCP_PKT5_BYTEN_W2_SHIFT 26
    372 #define SSTCP_PKT5_BYTEN_W2	(0xFUL<<SSTCP_PKT5_BYTEN_W2_SHIFT)
    373 #define SSTCP_PKT5_SPACE_SHIFT	30
    374 #define SSTCP_PKT5_SPACE	(0x3UL<<SSTCP_PKT5_SPACE_SHIFT)
    375 #define SSTCP_PKT5_LFB		(0x0UL<<SSTCP_PKT5_SPACE_SHIFT)
    376 #define SSTCP_PKT5_YUV		(0x1UL<<SSTCP_PKT5_SPACE_SHIFT)
    377 #define SSTCP_PKT5_3DLFB	(0x2UL<<SSTCP_PKT5_SPACE_SHIFT)
    378 #define SSTCP_PKT5_TEXPORT	(0x3UL<<SSTCP_PKT5_SPACE_SHIFT)
    379 #define SSTCP_PKT5_BASEADDR	0x1FFFFFFUL
    380 
    381 /* packet 6 defines */
    382 #define SSTCP_PKT6_SPACE_SHIFT  3
    383 #define SSTCP_PKT6_SPACE        (0x3UL<<SSTCP_PKT6_SPACE_SHIFT)
    384 #define SSTCP_PKT6_LFB          (0x0UL<<SSTCP_PKT6_SPACE_SHIFT)
    385 #define SSTCP_PKT6_YUV          (0x1UL<<SSTCP_PKT6_SPACE_SHIFT)
    386 #define SSTCP_PKT6_3DLFB        (0x2UL<<SSTCP_PKT6_SPACE_SHIFT)
    387 #define SSTCP_PKT6_TEXPORT      (0x3UL<<SSTCP_PKT6_SPACE_SHIFT)
    388 #define SSTCP_PKT6_NBYTES_SHIFT 5
    389 #define SSTCP_PKT6_NBYTES       (SST_MASK(20) << SSTCP_PKT6_NBYTES_SHIFT)
    390 #define SSTCP_PKT6_SRC_BASELOW            SST_MASK(32)
    391 #define SSTCP_PKT6_SRC_WIDTH              SST_MASK(14)
    392 #define SSTCP_PKT6_SRC_STRIDE_SHIFT       14
    393 #define SSTCP_PKT6_SRC_STRIDE             (SST_MASK(14) <<SSTCP_PKT6_SRC_STRIDE_SHIFT)
    394 #define SSTCP_PKT6_SRC_BASEHIGH_SHIFT     28
    395 #define SSTCP_PKT6_SRC_BASEHIGH           (SST_MASK(4) <<SSTCP_PKT6_SRC_BASEHIGH_SHIFT)
    396 #define SSTCP_PKT6_FRAME_BUFFER_OFFSET    SST_MASK(26)
    397 #define SSTCP_PKT6_DST_STRIDE             SST_MASK(15)
    398 
    399 #define SST_FIFO_OFFSET 0x0080000
    400 #define SST_FIFO_BASEADDR0 SST_FIFO_OFFSET+0x20
    401 #define SST_FIFO_BASESIZE0 SST_FIFO_OFFSET+0x24
    402 #define SST_FIFO_BUMP0 SST_FIFO_OFFSET+0x28
    403 #define SST_FIFO_RDPTRL0 SST_FIFO_OFFSET+0x2c
    404 #define SST_FIFO_RDPTRH0 SST_FIFO_OFFSET+0x30
    405 #define SST_FIFO_AMIN0 SST_FIFO_OFFSET+0x34
    406 #define SST_FIFO_AMAX0 SST_FIFO_OFFSET+0x3c
    407 #define SST_FIFO_DEPTH0 SST_FIFO_OFFSET+0x44
    408 #define SST_FIFO_HOLECNT0 SST_FIFO_OFFSET+0x48
    409 
    410 #define SST_FIFO_BASEADDR1 SST_FIFO_OFFSET+0x50
    411 #define SST_FIFO_BASESIZE1 SST_FIFO_OFFSET+0x54
    412 #define SST_FIFO_BUMP1 SST_FIFO_OFFSET+0x58
    413 #define SST_FIFO_RDPTRL1 SST_FIFO_OFFSET+0x5c
    414 #define SST_FIFO_RDPTRH1 SST_FIFO_OFFSET+0x60
    415 #define SST_FIFO_AMIN1 SST_FIFO_OFFSET+0x64
    416 #define SST_FIFO_AMAX1 SST_FIFO_OFFSET+0x6c
    417 #define SST_FIFO_DEPTH1 SST_FIFO_OFFSET+0x74
    418 #define SST_FIFO_HOLECNT1 SST_FIFO_OFFSET+0x78
    419 
    420 #define SST_FIFO_FIFOTHRESH SST_FIFO_OFFSET+0x80
    421 
    422 #endif
    423