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