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