#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
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);
void TDFXSendNOPFifo2D(ScrnInfoPtr pScreen);
#define CHECK_FOR_ROOM(_n) \
if ((pTDFX->fifoSlots -= (_n)) < 0) \
cmdfifo_make_room(adapter, fifo_ptr, _n); \
#if X_BYTE_ORDER == X_BIG_ENDIAN
#define BE_BSWAP32(val) ((((val) & 0x000000ff) << 24) | \
(((val) & 0x0000ff00) << 8) | \
(((val) & 0x00ff0000) >> 8) | \
(((val) & 0xff000000) >> 24))
#define BE_WSWAP32(val) ((((val) & 0x0000ffff) << 16) | \
(((val) & 0xffff0000) >> 16))
void TDFXWriteFifo_24(TDFXPtr pTDFX, int val);
void TDFXWriteFifo_16(TDFXPtr pTDFX, int val);
void TDFXWriteFifo_8(TDFXPtr pTDFX, int val);
#else
#define BE_BSWAP32(val) val
#define BE_WSWAP32(val) val
#endif
#ifdef DEBUG_FIFO
#define WRITE_FIFO(ptr, loc, _val) \
do { \
*pTDFX->fifoMirrorPtr++ = _val; \
*pTDFX->fifoPtr++ = _val; \
} while(0)
#else
#if X_BYTE_ORDER == X_BIG_ENDIAN
#define WRITE_FIFO(ptr, loc, _val) \
do { \
pTDFX->writeFifo(ptr, _val); \
} while (0)
#else
#define WRITE_FIFO(ptr, loc, _val) \
do { \
*pTDFX->fifoPtr++ = _val; \
} while(0)
#endif
#endif
#if X_BYTE_ORDER == X_BIG_ENDIAN
#define FLUSH_WCB()
#else
#define FLUSH_WCB() inb(0x80)
#endif
#define SET_2DPK1_HEADER(_ndwords, _inc, _reg) \
WRITE_FIFO ( pTDFX, 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 \
)
#define SET_PK1_HEADER_LAUNCH(_ndwords, _inc) \
WRITE_FIFO ( pTDFX, 0, (_ndwords) << SSTCP_PKT1_NWORDS_SHIFT | \
((_inc) ? SSTCP_PKT1_INC : SSTCP_PKT1_NOINC) | \
SSTCP_PKT1_LAUNCH | SSTCP_PKT1 \
)
#define SET_PK1_HEADER_COLORPATTERN(_ndwords, _inc) \
WRITE_FIFO ( pTDFX, 0, (_ndwords) << SSTCP_PKT1_NWORDS_SHIFT | \
((_inc) ? SSTCP_PKT1_INC : SSTCP_PKT1_NOINC) | \
SSTCP_PKT1_COLORPATTERN | SSTCP_PKT1 \
)
#define SET_PKT2_HEADER(_mask) \
WRITE_FIFO (pTDFX, 0, ((_mask) << SSTCP_PKT2_MASK_SHIFT) | SSTCP_PKT2)
#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 ( pTDFX, 0, ((_mask) << SSTCP_PKT4_MASK_SHIFT) | \
SSTCP_PKT4_2D | \
(_reg0) | \
SSTCP_PKT4 \
)
#define SET_3DPK4_HEADER(_mask, _reg0) \
WRITE_FIFO ( pTDFX, 0, ((_mask) << SSTCP_PKT4_MASK_SHIFT) | \
(_reg0) | \
SSTCP_PKT4 \
)
#define SST_CMDFIFO_SIZE 0xFF
#define SST_EN_CMDFIFO BIT(8)
#define SST_CMDFIFO_AGP BIT(9)
#define SST_CMDFIFO_DISABLE_HOLES BIT(10)
#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)
#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)
#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))
#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
#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)
#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))
#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
#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