Home | History | Annotate | Line # | Download | only in pci
      1  1.2    perry /*	$NetBSD: vtpbcreg.h,v 1.2 2005/12/24 20:06:46 perry Exp $	*/
      2  1.1  thorpej 
      3  1.1  thorpej /*
      4  1.1  thorpej  * Registers for the V3 Semiconductor V962 and V360EPC i960
      5  1.1  thorpej  * PCI bus controller.
      6  1.1  thorpej  *
      7  1.1  thorpej  * This file is modified from the PMON sources available from
      8  1.1  thorpej  * Algorithmics, Ltd.
      9  1.1  thorpej  */
     10  1.1  thorpej 
     11  1.1  thorpej #if BYTE_ORDER == LITTLE_ENDIAN
     12  1.2    perry #define V96XW(vt, x)	*(volatile u_int32_t *)((vt)->vt_addr + (x))
     13  1.2    perry #define V96XH(vt, x)	*(volatile u_int16_t *)((vt)->vt_addr + (x))
     14  1.2    perry #define V96XB(vt, x)	*(volatile u_int8_t  *)((vt)->vt_addr + (x))
     15  1.1  thorpej #else
     16  1.2    perry #define V96XW(vt, x)	*(volatile u_int32_t *)((vt)->vt_addr + (x))
     17  1.2    perry #define V96XH(vt, x)	*(volatile u_int16_t *)((vt)->vt_addr + ((x) ^ 2))
     18  1.2    perry #define V96XB(vt, x)	*(volatile u_int8_t  *)((vt)->vt_addr + ((x) ^ 3))
     19  1.1  thorpej #endif
     20  1.1  thorpej 
     21  1.1  thorpej #define V96X_PCI_VENDOR(vt)		V96XH(vt, 0x00)
     22  1.1  thorpej #define V96X_PCI_DEVICE(vt)		V96XH(vt, 0x02)
     23  1.1  thorpej #define V96X_PCI_CMD(vt)		V96XH(vt, 0x04)
     24  1.1  thorpej #define V96X_PCI_STAT(vt)		V96XH(vt, 0x06)
     25  1.1  thorpej #define V96X_PCI_CC_REV(vt)		V96XW(vt, 0x08)
     26  1.1  thorpej #define V96X_PCI_I20_BASE(vt)		V96XW(vt, 0x10) /* B.2 only */
     27  1.1  thorpej #define V96X_PCI_HDR_CFG(vt)		V96XW(vt, 0x0c)
     28  1.1  thorpej #define V96X_PCI_IO_BASE(vt)		V96XW(vt, 0x10)
     29  1.1  thorpej #define V96X_PCI_BASE0(vt)		V96XW(vt, 0x14)
     30  1.1  thorpej #define V96X_PCI_BASE1(vt)		V96XW(vt, 0x18)
     31  1.1  thorpej #define V96X_PCI_BPARAM(vt)		V96XW(vt, 0x3c)
     32  1.1  thorpej #define V96X_PCI_MAP0(vt)		V96XW(vt, 0x40)
     33  1.1  thorpej #define V96X_PCI_MAP1(vt)		V96XW(vt, 0x44)
     34  1.1  thorpej #define V96X_PCI_INT_STAT(vt)		V96XW(vt, 0x48)
     35  1.1  thorpej #define V96X_PCI_INT_CFG(vt)		V96XW(vt, 0x4c)
     36  1.1  thorpej #define V96X_LB_BASE0(vt)		V96XW(vt, 0x54)
     37  1.1  thorpej #define V96X_LB_BASE1(vt)		V96XW(vt, 0x58)
     38  1.1  thorpej #define V96X_LB_MAP0(vt)		V96XH(vt, 0x5e)
     39  1.1  thorpej #define V96X_LB_MAP1(vt)		V96XH(vt, 0x62)
     40  1.1  thorpej #define V96X_LB_BASE2(vt)		V96XH(vt, 0x64) /* B.2 only */
     41  1.1  thorpej #define V96X_LB_MAP2(vt)		V96XH(vt, 0x66) /* B.2 only */
     42  1.1  thorpej #define V96X_LB_SIZE(vt)		V96XW(vt, 0x68) /* B.2 only */
     43  1.1  thorpej #define V96X_LB_IO_BASE(vt)		V96XW(vt, 0x6c)
     44  1.1  thorpej #define V96X_FIFO_CFG(vt)		V96XH(vt, 0x70)
     45  1.1  thorpej #define V96X_FIFO_PRIORITY(vt)		V96XH(vt, 0x72)
     46  1.1  thorpej #define V96X_FIFO_STAT(vt)		V96XH(vt, 0x74)
     47  1.1  thorpej #define V96X_LB_ISTAT(vt)		V96XB(vt, 0x76)
     48  1.1  thorpej #define V96X_LB_IMASK(vt)		V96XB(vt, 0x77)
     49  1.1  thorpej #define V96X_SYSTEM(vt)			V96XH(vt, 0x78)
     50  1.1  thorpej #define V96X_LB_CFGL(vt)		V96XB(vt, 0x7a)
     51  1.1  thorpej #define V96X_LB_CFG(vt)			V96XB(vt, 0x7b)
     52  1.1  thorpej #define V96X_PCI_CFG(vt)		V96XB(vt, 0x7c) /* B.2 only */
     53  1.1  thorpej #define V96X_DMA_PCI_ADDR0(vt)		V96XW(vt, 0x80)
     54  1.1  thorpej #define V96X_DMA_LOCAL_ADDR0(vt)	V96XW(vt, 0x84)
     55  1.1  thorpej #define V96X_DMA_LENGTH0(vt)		V96XW(vt, 0x88)
     56  1.1  thorpej #define V96X_DMA_CTLB_ADR0(vt)		V96XW(vt, 0x8c)
     57  1.1  thorpej #define V96X_DMA_PCI_ADDR1(vt)		V96XW(vt, 0x90)
     58  1.1  thorpej #define V96X_DMA_LOCAL_ADDR1(vt)	V96XW(vt, 0x94)
     59  1.1  thorpej #define V96X_DMA_LENGTH1(vt)		V96XW(vt, 0x98)
     60  1.1  thorpej #define V96X_DMA_CTLB_ADR1(vt)		V96XW(vt, 0x9c)
     61  1.1  thorpej #define V96X_MAIL_DATA(vt, n)		V96XB(vt, 0xc0 + (n))
     62  1.1  thorpej #define V96X_LB_MAIL_IEWR(vt)		V96XH(vt, 0xd0)
     63  1.1  thorpej #define V96X_LB_MAIL_IERD(vt)		V96XH(vt, 0xd2)
     64  1.1  thorpej #define V96X_PCI_MAIL_IEWR(vt)		V96XH(vt, 0xd4)
     65  1.1  thorpej #define V96X_PCI_MAIL_IERD(vt)		V96XH(vt, 0xd6)
     66  1.1  thorpej #define V96X_MAIL_WR_STAT(vt)		V96XH(vt, 0xd8)
     67  1.1  thorpej #define V96X_MAIL_RD_STAT(vt)		V96XH(vt, 0xdc)
     68  1.1  thorpej 
     69  1.1  thorpej #define V96X_PCI_CMD_FBB_EN		0x0200
     70  1.1  thorpej #define V96X_PCI_CMD_SERR_EN		0x0100
     71  1.1  thorpej #define V96X_PCI_CMD_PAR_EN		0x0040
     72  1.1  thorpej #define V96X_PCI_CMD_MASTER_EN		0x0004
     73  1.1  thorpej #define V96X_PCI_CMD_MEM_EN		0x0002
     74  1.1  thorpej #define V96X_PCI_CMD_IO_EN		0x0001
     75  1.1  thorpej 
     76  1.1  thorpej #define V96X_PCI_STAT_PAR_ERR		0x8000
     77  1.1  thorpej #define V96X_PCI_STAT_SYS_ERR		0x4000
     78  1.1  thorpej #define V96X_PCI_STAT_M_ABORT		0x2000
     79  1.1  thorpej #define V96X_PCI_STAT_T_ABORT		0x1000
     80  1.1  thorpej #define V96X_PCI_STAT_DEVSEL		0x0600
     81  1.1  thorpej #define V96X_PCI_STAT_PAR_REP		0x0100
     82  1.1  thorpej #define V96X_PCI_STAT_FAST_BACK		0x0080
     83  1.1  thorpej 
     84  1.1  thorpej #define V96X_PCI_CC_REV_BASE_CLASS	0xff000000
     85  1.1  thorpej #define V96X_PCI_CC_REV_SUB_CLASS	0x00ff0000
     86  1.1  thorpej #define V96X_PCI_CC_REV_PROG_IF		0x0000ff00
     87  1.1  thorpej #define V96X_PCI_CC_REV_UREV		0x000000f0
     88  1.1  thorpej #define V96X_PCI_CC_REV_VREV		0x0000000f
     89  1.1  thorpej 
     90  1.1  thorpej #define V96X_VREV_A	0x0
     91  1.1  thorpej #define V96X_VREV_B0	0x1
     92  1.1  thorpej #define V96X_VREV_B1	0x2
     93  1.1  thorpej #define V96X_VREV_B2	0x3
     94  1.1  thorpej #define V96X_VREV_C0	0x4
     95  1.1  thorpej 
     96  1.1  thorpej #define V96X_PCI_HDR_CFG_LT		0x0000ff00
     97  1.1  thorpej #define V96X_PCI_HDR_CFG_LT_SHIFT	8
     98  1.1  thorpej #define V96X_PCI_HDR_CFG_CLS		0x000000ff
     99  1.1  thorpej #define V96X_PCI_HDR_CFG_CLS_SHIFT	0
    100  1.1  thorpej 
    101  1.1  thorpej /* pci access to internal v96xpbc registers */
    102  1.1  thorpej #define V96X_PCI_IO_BASE_ADR_BASE	0xfffffff0
    103  1.1  thorpej #define V96X_PCI_IO_BASE_PREFETCH	0x00000008
    104  1.1  thorpej #define V96X_PCI_IO_BASE_TYPE		0x00000006
    105  1.1  thorpej #define V96X_PCI_IO_BASE_IO		0x00000001
    106  1.1  thorpej #define V96X_PCI_IO_BASE_MEM		0x00000000
    107  1.1  thorpej 
    108  1.1  thorpej /* pci to local bus aperture 0 base address */
    109  1.1  thorpej #define V96X_PCI_BASE0_ADR_BASE		0xfff00000
    110  1.1  thorpej #define V96X_PCI_BASE0_ADR_BASEL	0x000fff00
    111  1.1  thorpej 
    112  1.1  thorpej /* pci to local bus aperture 1 base address */
    113  1.1  thorpej #define V96X_PCI_BASE1_ADR_BASE		0xfff00000
    114  1.1  thorpej #define V96X_PCI_BASE1_ADR_BASEL	0x000fc000
    115  1.1  thorpej #define V96X_PCI_BASE1_ADR_DOS_MEM	0x00000700
    116  1.1  thorpej 
    117  1.1  thorpej #define V96X_PCI_BASEx_PREFETCH		0x00000008
    118  1.1  thorpej #define V96X_PCI_BASEx_IO		0x00000001
    119  1.1  thorpej #define V96X_PCI_BASEx_MEM		0x00000000
    120  1.1  thorpej 
    121  1.1  thorpej /* pci bus parameter register */
    122  1.1  thorpej #define V96X_PCI_BPARAM_MAX_LAT		0xff000000
    123  1.1  thorpej #define V96X_PCI_BPARAM_MIN_GNT		0x00ff0000
    124  1.1  thorpej #define V96X_PCI_BPARAM_INT_PIN		0x00000700
    125  1.1  thorpej #define V96X_PCI_BPARAM_INT_LINE	0x0000000f
    126  1.1  thorpej 
    127  1.1  thorpej /* pci bus to local bus address map 0 */
    128  1.1  thorpej #define V96X_PCI_MAPx_MAP_ADR		0xfff00000
    129  1.1  thorpej #define V96X_PCI_MAPx_RD_POST_INH	0x00008000
    130  1.1  thorpej #define V96X_PCI_MAP0_ROM_SIZE		0x00000c00
    131  1.1  thorpej #define V96X_PCI_MAPx_SWAP		0x00000300
    132  1.1  thorpej #define V96X_PCI_MAPx_ADR_SIZE		0x000000f0
    133  1.1  thorpej #define V96X_PCI_MAPx_REG_EN		0x00000002
    134  1.1  thorpej #define V96X_PCI_MAPx_ENABLE		0x00000001
    135  1.1  thorpej 
    136  1.1  thorpej #define V96X_ADR_SIZE_1MB		(0x0<<4)
    137  1.1  thorpej #define V96X_ADR_SIZE_2MB		(0x1<<4)
    138  1.1  thorpej #define V96X_ADR_SIZE_4MB		(0x2<<4)
    139  1.1  thorpej #define V96X_ADR_SIZE_8MB		(0x3<<4)
    140  1.1  thorpej #define V96X_ADR_SIZE_16MB		(0x4<<4)
    141  1.1  thorpej #define V96X_ADR_SIZE_32MB		(0x5<<4)
    142  1.1  thorpej #define V96X_ADR_SIZE_64MB		(0x6<<4)
    143  1.1  thorpej #define V96X_ADR_SIZE_128MB		(0x7<<4)
    144  1.1  thorpej #define V96X_ADR_SIZE_256MB		(0x8<<4)
    145  1.1  thorpej #define V96X_ADR_SIZE_DOSMODE		(0xc<<4)
    146  1.1  thorpej 
    147  1.1  thorpej #define V96X_SWAP_NONE			(0x0<<8)
    148  1.1  thorpej #define V96X_SWAP_16BIT			(0x1<<8)
    149  1.1  thorpej #define V96X_SWAP_8BIT			(0x2<<8)
    150  1.1  thorpej #define V96X_SWAP_AUTO			(0x3<<8)
    151  1.1  thorpej 
    152  1.1  thorpej /* pci interrupt status register */
    153  1.1  thorpej #define V96X_PCI_INT_STAT_MAILBOX	0x80000000
    154  1.1  thorpej #define V96X_PCI_INT_STAT_LOCAL		0x40000000
    155  1.1  thorpej #define V96X_PCI_INT_STAT_DMA1		0x02000000
    156  1.1  thorpej #define V96X_PCI_INT_STAT_DMA0		0x01000000
    157  1.1  thorpej #define V96X_PCI_INT_STAT_INTC_TO_D	0x00004000
    158  1.1  thorpej #define V96X_PCI_INT_STAT_INTB_TO_D	0x00002000
    159  1.1  thorpej #define V96X_PCI_INT_STAT_INTA_TO_D	0x00001000
    160  1.1  thorpej #define V96X_PCI_INT_STAT_INTD_TO_C	0x00000800
    161  1.1  thorpej #define V96X_PCI_INT_STAT_INTB_TO_C	0x00000200
    162  1.1  thorpej #define V96X_PCI_INT_STAT_INTA_TO_C	0x00000100
    163  1.1  thorpej #define V96X_PCI_INT_STAT_INTD_TO_B	0x00000080
    164  1.1  thorpej #define V96X_PCI_INT_STAT_INTC_TO_B	0x00000040
    165  1.1  thorpej #define V96X_PCI_INT_STAT_INTA_TO_B	0x00000010
    166  1.1  thorpej #define V96X_PCI_INT_STAT_INTD_TO_A	0x00000008
    167  1.1  thorpej #define V96X_PCI_INT_STAT_INTC_TO_A	0x00000004
    168  1.1  thorpej #define V96X_PCI_INT_STAT_INTB_TO_A	0x00000002
    169  1.1  thorpej 
    170  1.1  thorpej /* pci interrupt config register */
    171  1.1  thorpej #define V96X_PCI_INT_CFG_MAILBOX	0x80000000
    172  1.1  thorpej #define V96X_PCI_INT_CFG_LOCAL		0x40000000
    173  1.1  thorpej #define V96X_PCI_INT_CFG_DMA1		0x02000000
    174  1.1  thorpej #define V96X_PCI_INT_CFG_DMA0		0x01000000
    175  1.1  thorpej #define V96X_PCI_INT_CFG_MODE_D		0x00c00000
    176  1.1  thorpej #define V96X_PCI_INT_CFG_MODE_D_SHIFT	22
    177  1.1  thorpej #define V96X_PCI_INT_CFG_MODE_C		0x00300000
    178  1.1  thorpej #define V96X_PCI_INT_CFG_MODE_C_SHIFT	20
    179  1.1  thorpej #define V96X_PCI_INT_CFG_MODE_B		0x000c0000
    180  1.1  thorpej #define V96X_PCI_INT_CFG_MODE_B_SHIFT	18
    181  1.1  thorpej #define V96X_PCI_INT_CFG_MODE_A		0x00030000
    182  1.1  thorpej #define V96X_PCI_INT_CFG_MODE_A_SHIFT	16
    183  1.1  thorpej #define  V96X_PCI_INT_CFG_MODE_LEVEL	 0x0
    184  1.1  thorpej #define  V96X_PCI_INT_CFG_MODE_EDGE	 0x1
    185  1.1  thorpej #define  V96X_PCI_INT_CFG_MODE_SWCLR	 0x2
    186  1.1  thorpej #define  V96X_PCI_INT_CFG_MODE_HWCLR	 0x3
    187  1.1  thorpej #define V96X_PCI_INT_CFG_INTD_TO_LB	0x00008000
    188  1.1  thorpej #define V96X_PCI_INT_CFG_INTC_TO_D	0x00004000
    189  1.1  thorpej #define V96X_PCI_INT_CFG_INTB_TO_D	0x00002000
    190  1.1  thorpej #define V96X_PCI_INT_CFG_INTA_TO_D	0x00001000
    191  1.1  thorpej #define V96X_PCI_INT_CFG_INTD_TO_C	0x00000800
    192  1.1  thorpej #define V96X_PCI_INT_CFG_INTC_TO_LB	0x00000400
    193  1.1  thorpej #define V96X_PCI_INT_CFG_INTB_TO_C	0x00000200
    194  1.1  thorpej #define V96X_PCI_INT_CFG_INTA_TO_C	0x00000100
    195  1.1  thorpej #define V96X_PCI_INT_CFG_INTD_TO_B	0x00000080
    196  1.1  thorpej #define V96X_PCI_INT_CFG_INTC_TO_B	0x00000040
    197  1.1  thorpej #define V96X_PCI_INT_CFG_INTB_TO_LB	0x00000020
    198  1.1  thorpej #define V96X_PCI_INT_CFG_INTA_TO_B	0x00000010
    199  1.1  thorpej #define V96X_PCI_INT_CFG_INTD_TO_A	0x00000008
    200  1.1  thorpej #define V96X_PCI_INT_CFG_INTC_TO_A	0x00000004
    201  1.1  thorpej #define V96X_PCI_INT_CFG_INTB_TO_A	0x00000002
    202  1.1  thorpej #define V96X_PCI_INT_CFG_INTA_TO_LB	0x00000001
    203  1.1  thorpej 
    204  1.1  thorpej /* local bus to pci bus aperture 0,1 */
    205  1.1  thorpej #define V96X_LB_BASEx_ADR_BASE		0xfff00000
    206  1.1  thorpej #define V96X_LB_BASEx_SWAP		0x00000300
    207  1.1  thorpej #define V96X_LB_BASEx_ADR_SIZE		0x000000f0
    208  1.1  thorpej #define V96X_LB_BASEx_PREFETCH		0x00000008
    209  1.1  thorpej #define V96X_LB_BASEx_ENABLE		0x00000001
    210  1.1  thorpej 
    211  1.1  thorpej /* local bus to pci bus address map 0,1 */
    212  1.1  thorpej #define V96X_LB_MAPx_MAP_ADR		0xfff0
    213  1.1  thorpej #define V96X_LB_MAPx_TYPE		0x0007
    214  1.1  thorpej #define  V96X_LB_TYPE_IACK		 (0x0<<1)
    215  1.1  thorpej #define  V96X_LB_TYPE_IO		 (0x1<<1)
    216  1.1  thorpej #define  V96X_LB_TYPE_MEM		 (0x3<<1)
    217  1.1  thorpej #define  V96X_LB_TYPE_CONF		 (0x5<<1)
    218  1.1  thorpej #define V96X_LB_MAPx_AD_LOW_EN		0x0001 /* C.0 only */
    219  1.1  thorpej 
    220  1.1  thorpej /* local bus interrupt control, status and masks */
    221  1.1  thorpej #define V96X_LB_INTR_MAILBOX		0x80
    222  1.1  thorpej #define V96X_LB_INTR_PCI_RD		0x40
    223  1.1  thorpej #define V96X_LB_INTR_PCI_WR		0x20
    224  1.1  thorpej #define V96X_LB_INTR_PCI_INT		0x10
    225  1.1  thorpej #define V96X_LB_INTR_DMA1		0x02
    226  1.1  thorpej #define V96X_LB_INTR_DMA0		0x01
    227  1.1  thorpej 
    228  1.1  thorpej /* local bus configuration */
    229  1.1  thorpej #define V96X_LB_CFG_TO_256		0x20
    230  1.1  thorpej #define V96X_LB_CFG_TO_64		0x00
    231  1.1  thorpej #define V96X_LB_CFG_LB_INT		0x02
    232  1.1  thorpej #define V96X_LB_CFG_ERR_EN		0x02
    233  1.1  thorpej #define V96X_LB_CFG_RDY_EN		0x01
    234  1.1  thorpej 
    235  1.1  thorpej /* PCI bus configuration */
    236  1.1  thorpej #define V96X_PCI_CFG_I2O_EN		0x8000
    237  1.1  thorpej #define V96X_PCI_CFG_IO_REG_DIS		0x4000
    238  1.1  thorpej #define V96X_PCI_CFG_IO_DIS		0x2000
    239  1.1  thorpej #define V96X_PCI_CFG_EN3V		0x1000
    240  1.1  thorpej #define V96X_PCI_CFG_AD_LOW		0x0300
    241  1.1  thorpej #define V96X_PCI_CFG_AD_LOW_SHIFT	8
    242  1.1  thorpej #define V96X_PCI_CFG_DMA_RTYPE		0x00e0
    243  1.1  thorpej #define V96X_PCI_CFG_DMA_WTYPE		0x000e
    244  1.1  thorpej 
    245  1.1  thorpej /* fifo configuration register */
    246  1.1  thorpej #define V96X_FIFO_CFG_PBRST_MAX		0xc000
    247  1.1  thorpej #define V96X_FIFO_CFG_PBRST_MAX_SHIFT	14
    248  1.1  thorpej #define V96X_FIFO_CFG_WR_LB		0x3000
    249  1.1  thorpej #define V96X_FIFO_CFG_WR_LB_SHIFT	12
    250  1.1  thorpej #define V96X_FIFO_CFG_RD_LB1		0x0c00
    251  1.1  thorpej #define V96X_FIFO_CFG_RD_LB1_SHIFT	10
    252  1.1  thorpej #define V96X_FIFO_CFG_RD_LB0		0x0300
    253  1.1  thorpej #define V96X_FIFO_CFG_RD_LB0_SHIFT	8
    254  1.1  thorpej #define V96X_FIFO_CFG_LBRST_MAX		0x00c0
    255  1.1  thorpej #define V96X_FIFO_CFG_LBRST_MAX_SHIFT	6
    256  1.1  thorpej #define V96X_FIFO_CFG_WR_PCI		0x0030
    257  1.1  thorpej #define V96X_FIFO_CFG_WR_PCI_SHIFT	4
    258  1.1  thorpej #define V96X_FIFO_CFG_RD_PCI1		0x000c
    259  1.1  thorpej #define V96X_FIFO_CFG_RD_PCI1_SHIFT	2
    260  1.1  thorpej #define V96X_FIFO_CFG_RD_PCI0		0x0003
    261  1.1  thorpej #define V96X_FIFO_CFG_RD_PCI0_SHIFT	0
    262  1.1  thorpej 
    263  1.1  thorpej /* meaning of above bitfields */
    264  1.1  thorpej 
    265  1.1  thorpej /* max burst length */
    266  1.1  thorpej #define V96X_FIFO_CFG_BRST_4			0x0
    267  1.1  thorpej #define V96X_FIFO_CFG_BRST_8			0x1
    268  1.1  thorpej #define V96X_FIFO_CFG_BRST_16			0x2
    269  1.1  thorpej #define V96X_FIFO_CFG_BRST_256			0x3
    270  1.1  thorpej 
    271  1.1  thorpej /* when to start refilling read fifo */
    272  1.1  thorpej #define V96X_FIFO_CFG_RD_NOTFULL		0x0
    273  1.1  thorpej #define V96X_FIFO_CFG_RD_HALF			0x1
    274  1.1  thorpej #define V96X_FIFO_CFG_RD_EMPTY			0x2
    275  1.1  thorpej 
    276  1.1  thorpej /* when to start emptying write fifo */
    277  1.1  thorpej #define V96X_FIFO_CFG_WR_NOTEMPTY		0x0
    278  1.1  thorpej #define V96X_FIFO_CFG_WR_3WORDS			0x2
    279  1.1  thorpej #define V96X_FIFO_CFG_WR_ENDBRST		0x3
    280  1.1  thorpej 
    281  1.1  thorpej /* fifo priority control */
    282  1.1  thorpej #define V96X_FIFO_PRIORITY_LOCAL_RD	0x1000
    283  1.1  thorpej #define V96X_FIFO_PRIORITY_LOCAL_WR	0x0000
    284  1.1  thorpej #define V96X_FIFO_PRIORITY_LB_RD1	0x0c00
    285  1.1  thorpej #define V96X_FIFO_PRIORITY_LB_RD1_SHIFT	10
    286  1.1  thorpej #define V96X_FIFO_PRIORITY_LB_RD0	0x0300
    287  1.1  thorpej #define V96X_FIFO_PRIORITY_LB_RD0_SHIFT 8
    288  1.1  thorpej #define V96X_FIFO_PRIORITY_PCI_RD	0x0010
    289  1.1  thorpej #define V96X_FIFO_PRIORITY_PCI_WR	0x0000
    290  1.1  thorpej #define V96X_FIFO_PRIORITY_PCI_RD1	0x000c
    291  1.1  thorpej #define V96X_FIFO_PRIORITY_PCI_RD1_SHIFT 2
    292  1.1  thorpej #define V96X_FIFO_PRIORITY_PCI_RD0	0x0003
    293  1.1  thorpej #define V96X_FIFO_PRIORITY_PCI_RD0_SHIFT 0
    294  1.1  thorpej 
    295  1.1  thorpej /* meaning of above bitfields */
    296  1.1  thorpej #define V96X_FIFO_PRI_NOFLUSH			0x0
    297  1.1  thorpej #define V96X_FIFO_PRI_FLUSHME			0x2
    298  1.1  thorpej #define V96X_FIFO_PRI_FLUSHALL			0x3
    299  1.1  thorpej 
    300  1.1  thorpej /* fifo status */
    301  1.1  thorpej #define V96X_FIFO_STAT_L2P_WR		0x3000
    302  1.1  thorpej #define V96X_FIFO_STAT_L2P_RD1		0x0c00
    303  1.1  thorpej #define V96X_FIFO_STAT_L2P_RD0		0x0300
    304  1.1  thorpej #define V96X_FIFO_STAT_P2L_WR		0x0030
    305  1.1  thorpej #define V96X_FIFO_STAT_P2L_RD1		0x000c
    306  1.1  thorpej #define V96X_FIFO_STAT_P2L_RD0		0x0003
    307  1.1  thorpej 
    308  1.1  thorpej #define V96X_DMA_COUNT_CHAIN		0x80000000
    309  1.1  thorpej #define V96X_DMA_COUNT_PRIORITY		0x20000000
    310  1.1  thorpej #define V96X_DMA_COUNT_P2L		0x10000000
    311  1.1  thorpej #define V96X_DMA_COUNT_SWAP		0x0c000000
    312  1.1  thorpej #define V96X_DMA_COUNT_ABORT		0x02000000
    313  1.1  thorpej #define V96X_DMA_COUNT_DMA_IPR		0x01000000
    314  1.1  thorpej 
    315  1.1  thorpej #define V96X_SYSTEM_RST_OUT		0x8000
    316  1.1  thorpej #define V96X_SYSTEM_LOCK		0x4000
    317  1.1  thorpej #define V96X_SYSTEM_SPROM_EN		0x2000
    318  1.1  thorpej #define V96X_SYSTEM_SCL			0x1000
    319  1.1  thorpej #define V96X_SYSTEM_SDA_OUT		0x0800
    320  1.1  thorpej #define V96X_SYSTEM_SDA_IN		0x0400
    321  1.1  thorpej #define V96X_SYSTEM_POE			0x0200
    322  1.1  thorpej #define V96X_SYSTEM_LB_RD_PCI1		0x0040
    323  1.1  thorpej #define V96X_SYSTEM_LB_RD_PCI0		0x0020
    324  1.1  thorpej #define V96X_SYSTEM_LB_WR_PCI		0x0010
    325  1.1  thorpej #define V96X_SYSTEM_PCI_RD_LB1		0x0004
    326  1.1  thorpej #define V96X_SYSTEM_PCI_RD_LB0		0x0002
    327  1.1  thorpej #define V96X_SYSTEM_PC_WR_LBI		0x0001
    328