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