Home | History | Annotate | Line # | Download | only in pci
      1  1.2  martin /*	$NetBSD: if_liireg.h,v 1.2 2008/04/29 06:53:03 martin Exp $	*/
      2  1.1    cube 
      3  1.1    cube /*
      4  1.1    cube  *  Copyright (c) 2008 The NetBSD Foundation.
      5  1.1    cube  *  All rights reserved.
      6  1.1    cube  *
      7  1.1    cube  *  Redistribution and use in source and binary forms, with or without
      8  1.1    cube  *  modification, are permitted provided that the following conditions
      9  1.1    cube  *  are met:
     10  1.1    cube  *  1. Redistributions of source code must retain the above copyright
     11  1.1    cube  *     notice, this list of conditions and the following disclaimer.
     12  1.1    cube  *  2. Redistributions in binary form must reproduce the above copyright
     13  1.1    cube  *     notice, this list of conditions and the following disclaimer in the
     14  1.1    cube  *     documentation and/or other materials provided with the distribution.
     15  1.1    cube  *
     16  1.1    cube  *  THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
     17  1.1    cube  *  ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
     18  1.1    cube  *  TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     19  1.1    cube  *  PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
     20  1.1    cube  *  BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     21  1.1    cube  *  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     22  1.1    cube  *  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     23  1.1    cube  *  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     24  1.1    cube  *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     25  1.1    cube  *  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     26  1.1    cube  *  POSSIBILITY OF SUCH DAMAGE.
     27  1.1    cube  */
     28  1.1    cube 
     29  1.1    cube /*
     30  1.1    cube  * PCI configuration space seems to be mapped in the first 0x100 bytes of
     31  1.1    cube  * the register area.
     32  1.1    cube  */
     33  1.1    cube 
     34  1.1    cube /* SPI Flash Control register */
     35  1.1    cube #define ATL2_SFC	0x0200
     36  1.1    cube #define 	SFC_STS_NON_RDY		0x00000001
     37  1.1    cube #define 	SFC_STS_WEN		0x00000002
     38  1.1    cube #define 	SFC_STS_WPEN		0x00000080
     39  1.1    cube #define 	SFC_DEV_STS_MASK	0x000000ff
     40  1.1    cube #define 	SFC_DEV_STS_SHIFT	0
     41  1.1    cube #define 	SFC_INS_MASK		0x07
     42  1.1    cube #define 	SFC_INS_SHIFT		8
     43  1.1    cube #define 	SFC_START		0x00000800
     44  1.1    cube #define 	SFC_EN_VPD		0x00002000
     45  1.1    cube #define 	SFC_LDSTART		0x00008000
     46  1.1    cube #define 	SFC_CS_HI_MASK		0x03
     47  1.1    cube #define 	SFC_CS_HI_SHIFT		16
     48  1.1    cube #define 	SFC_CS_HOLD_MASK	0x03
     49  1.1    cube #define 	SFC_CS_HOLD_SHIFT	18
     50  1.1    cube #define 	SFC_CLK_LO_MASK		0x03
     51  1.1    cube #define 	SFC_CLK_LO_SHIFT	20
     52  1.1    cube #define 	SFC_CLK_HI_MASK		0x03
     53  1.1    cube #define 	SFC_CLK_HI_SHIFT	22
     54  1.1    cube #define 	SFC_CS_SETUP_MASK	0x03
     55  1.1    cube #define 	SFC_CS_SETUP_SHIFT	24
     56  1.1    cube #define 	SFC_EROMPGSZ_MASK	0x03
     57  1.1    cube #define 	SFC_EROMPGSZ_SHIFT	26
     58  1.1    cube #define 	SFC_WAIT_READY		0x10000000
     59  1.1    cube 
     60  1.1    cube /* SPI Flash Address register */
     61  1.1    cube #define ATL2_SF_ADDR	0x0204
     62  1.1    cube 
     63  1.1    cube /* SPI Flash Data register */
     64  1.1    cube #define ATL2_SF_DATA	0x0208
     65  1.1    cube 
     66  1.1    cube /* SPI Flash Configuration register */
     67  1.1    cube #define ATL2_SFCF	0x020c
     68  1.1    cube #define 	SFCF_LD_ADDR_MASK	0x00ffffff
     69  1.1    cube #define 	SFCF_LD_ADDR_SHIFT	0
     70  1.1    cube #define 	SFCF_VPD_ADDR_MASK	0x03
     71  1.1    cube #define 	SFCF_VPD_ADDR_SHIFT	24
     72  1.1    cube #define 	SFCF_LD_EXISTS		0x04000000
     73  1.1    cube 
     74  1.1    cube /* SPI Flash op codes programmation registers */
     75  1.1    cube #define ATL2_SFOP_PROGRAM	0x0210
     76  1.1    cube #define ATL2_SFOP_SC_ERASE	0x0211
     77  1.1    cube #define ATL2_SFOP_CHIP_ERASE	0x0212
     78  1.1    cube #define ATL2_SFOP_RDID		0x0213
     79  1.1    cube #define ATL2_SFOP_WREN		0x0214
     80  1.1    cube #define ATL2_SFOP_RDSR		0x0215
     81  1.1    cube #define ATL2_SFOP_WRSR		0x0216
     82  1.1    cube #define ATL2_SFOP_READ		0x0217
     83  1.1    cube 
     84  1.1    cube /* TWSI Control register, whatever that is */
     85  1.1    cube #define ATL2_TWSIC	0x0218
     86  1.1    cube #define     TWSIC_LD_OFFSET_MASK        0x000000ff
     87  1.1    cube #define     TWSIC_LD_OFFSET_SHIFT       0
     88  1.1    cube #define     TWSIC_LD_SLV_ADDR_MASK      0x07
     89  1.1    cube #define     TWSIC_LD_SLV_ADDR_SHIFT     8
     90  1.1    cube #define     TWSIC_SW_LDSTART            0x00000800
     91  1.1    cube #define     TWSIC_HW_LDSTART            0x00001000
     92  1.1    cube #define     TWSIC_SMB_SLV_ADDR_MASK     0x7F
     93  1.1    cube #define     TWSIC_SMB_SLV_ADDR_SHIFT    15
     94  1.1    cube #define     TWSIC_LD_EXIST              0x00400000
     95  1.1    cube #define     TWSIC_READ_FREQ_SEL_MASK    0x03
     96  1.1    cube #define     TWSIC_READ_FREQ_SEL_SHIFT   23
     97  1.1    cube #define     TWSIC_FREQ_SEL_100K         0
     98  1.1    cube #define     TWSIC_FREQ_SEL_200K         1
     99  1.1    cube #define     TWSIC_FREQ_SEL_300K         2
    100  1.1    cube #define     TWSIC_FREQ_SEL_400K         3
    101  1.1    cube #define     TWSIC_WRITE_FREQ_SEL_MASK   0x03
    102  1.1    cube #define     TWSIC_WRITE_FREQ_SEL_SHIFT  24
    103  1.1    cube 
    104  1.1    cube /* PCI-Express Device Misc. Control register? (size unknown) */
    105  1.1    cube #define ATL2_PCEDMC	0x021c
    106  1.1    cube #define 	PCEDMC_RETRY_BUFDIS	0x01
    107  1.1    cube #define 	PCEDMC_EXT_PIPE		0x02
    108  1.1    cube #define 	PCEDMC_SPIROM_EXISTS	0x04
    109  1.1    cube #define 	PCEDMC_SERDES_ENDIAN	0x08
    110  1.1    cube #define 	PCEDMC_SERDES_SEL_DIN	0x10
    111  1.1    cube 
    112  1.1    cube /* PCI-Express PHY Miscellaneous register (size unknown) */
    113  1.1    cube #define ATL2_PCEPM	0x1000
    114  1.1    cube #define 	PCEPM_FORCE_RCV_DET	0x04
    115  1.1    cube 
    116  1.1    cube /* PCI-Express DLL TX Control register */
    117  1.1    cube #define ATL2_PCEDTXC	0x1104
    118  1.1    cube #define 	PCEDTX_SEL_NOR_CLK	0x00000400
    119  1.1    cube #define 	PCEDTX_DEF		0x00000568
    120  1.1    cube 
    121  1.1    cube /* PCI-Express-related register (LTSSM test mode) */
    122  1.1    cube #define ATL2_PCELTM	0x12fc
    123  1.1    cube #define 	PCELTM_DEF		0x00006500
    124  1.1    cube 
    125  1.1    cube /* Selene Master Control register */
    126  1.1    cube #define ATL2_SMC	0x1400
    127  1.1    cube #define 	SMC_SOFT_RST		0x00000001
    128  1.1    cube #define 	SMC_MTIMER_EN		0x00000002
    129  1.1    cube #define 	SMC_ITIMER_EN		0x00000004
    130  1.1    cube #define 	SMC_MANUAL_INT		0x00000008
    131  1.1    cube #define 	SMC_REV_NUM_MASK	0xff
    132  1.1    cube #define 	SMC_REV_NUM_SHIFT	16
    133  1.1    cube #define 	SMC_DEV_ID_MASK		0xff
    134  1.1    cube #define 	SMC_DEV_ID_SHIFT	24
    135  1.1    cube 
    136  1.1    cube /* Timer Initial Value register */
    137  1.1    cube #define ATL2_TIV	0x1404
    138  1.1    cube 
    139  1.1    cube /* IRQ Moderator Timer Initial Value register */
    140  1.1    cube #define ATL2_IMTIV	0x1408
    141  1.1    cube 
    142  1.1    cube /* PHY Control register */
    143  1.1    cube #define ATL2_PHYC	0x140c
    144  1.1    cube #define 	PHYC_ENABLE	0x0001
    145  1.1    cube 
    146  1.1    cube /* IRQ Anti-Lost Timer Initial Value register
    147  1.1    cube     --> Time allowed for software to clear the interrupt */
    148  1.1    cube #define ATL2_IALTIV	0x140e
    149  1.1    cube 
    150  1.1    cube /* Block Idle Status register
    151  1.1    cube    --> Bit set if matching state machine is not idle */
    152  1.1    cube #define ATL2_BIS	0x1410
    153  1.1    cube #define 	BIS_RXMAC	0x00000001
    154  1.1    cube #define		BIS_TXMAC	0x00000002
    155  1.1    cube #define 	BIS_DMAR	0x00000004
    156  1.1    cube #define 	BIS_DMAW	0x00000008
    157  1.1    cube 
    158  1.1    cube /* MDIO Control register */
    159  1.1    cube #define ATL2_MDIOC	0x1414
    160  1.1    cube #define 	MDIOC_DATA_MASK		0x0000ffff
    161  1.1    cube #define 	MDIOC_DATA_SHIFT	0
    162  1.1    cube #define 	MDIOC_REG_MASK		0x1f
    163  1.1    cube #define 	MDIOC_REG_SHIFT		16
    164  1.1    cube #define 	MDIOC_WRITE		0x00000000
    165  1.1    cube #define 	MDIOC_READ		0x00200000
    166  1.1    cube #define 	MDIOC_SUP_PREAMBLE	0x00400000
    167  1.1    cube #define 	MDIOC_START		0x00800000
    168  1.1    cube #define 	MDIOC_CLK_SEL_MASK	0x07
    169  1.1    cube #define 	MDIOC_CLK_SEL_SHIFT	24
    170  1.1    cube #define 	MDIOC_CLK_25_4		0
    171  1.1    cube #define 	MDIOC_CLK_25_6		2
    172  1.1    cube #define 	MDIOC_CLK_25_8		3
    173  1.1    cube #define 	MDIOC_CLK_25_10		4
    174  1.1    cube #define 	MDIOC_CLK_25_14		5
    175  1.1    cube #define 	MDIOC_CLK_25_20		6
    176  1.1    cube #define 	MDIOC_CLK_25_28		7
    177  1.1    cube #define 	MDIOC_BUSY		0x08000000
    178  1.1    cube /* Time to wait for MDIO, waiting for 2us in-between */
    179  1.1    cube #define 	MDIO_WAIT_TIMES		10
    180  1.1    cube 
    181  1.1    cube /* SerDes Lock Detect Control and Status register */
    182  1.1    cube #define ATL2_SERDES	0x1424
    183  1.1    cube #define 	SERDES_LOCK_DETECT	0x01
    184  1.1    cube #define 	SERDES_LOCK_DETECT_EN	0x02
    185  1.1    cube 
    186  1.1    cube /* MAC Control register */
    187  1.1    cube #define ATL2_MACC	0x1480
    188  1.1    cube #define 	MACC_TX_EN		0x00000001
    189  1.1    cube #define 	MACC_RX_EN		0x00000002
    190  1.1    cube #define 	MACC_TX_FLOW_EN		0x00000004
    191  1.1    cube #define 	MACC_RX_FLOW_EN		0x00000008
    192  1.1    cube #define 	MACC_LOOPBACK		0x00000010
    193  1.1    cube #define 	MACC_FDX		0x00000020
    194  1.1    cube #define 	MACC_ADD_CRC		0x00000040
    195  1.1    cube #define 	MACC_PAD		0x00000080
    196  1.1    cube #define 	MACC_PREAMBLE_LEN_MASK	0x0f
    197  1.1    cube #define 	MACC_PREAMBLE_LEN_SHIFT	10
    198  1.1    cube #define 	MACC_STRIP_VLAN		0x00004000
    199  1.1    cube #define 	MACC_PROMISC_EN		0x00008000
    200  1.1    cube #define 	MACC_DBG_TX_BKPRESSURE	0x00100000
    201  1.1    cube #define 	MACC_ALLMULTI_EN	0x02000000
    202  1.1    cube #define 	MACC_BCAST_EN		0x04000000
    203  1.1    cube #define 	MACC_MACLP_CLK_PHY	0x08000000
    204  1.1    cube #define 	MACC_HDX_LEFT_BUF_MASK	0x0f
    205  1.1    cube #define 	MACC_HDX_LEFT_BUF_SHIFT	28
    206  1.1    cube 
    207  1.1    cube /* MAC IPG/IFG Control register */
    208  1.1    cube #define ATL2_MIPFG	0x1484
    209  1.1    cube #define 	MIPFG_IPGT_MASK		0x0000007f
    210  1.1    cube #define 	MIPFG_IPGT_SHIFT	0
    211  1.1    cube #define 	MIPFG_MIFG_MASK		0xff
    212  1.1    cube #define 	MIPFG_MIFG_SHIFT	8
    213  1.1    cube #define 	MIPFG_IPGR1_MASK	0x7f
    214  1.1    cube #define 	MIPFG_IPGR1_SHIFT	16
    215  1.1    cube #define 	MIPFG_IPGR2_MASK	0x7f
    216  1.1    cube #define 	MIPFG_IPGR2_SHIFT	24
    217  1.1    cube 
    218  1.1    cube /* MAC Address registers */
    219  1.1    cube #define ATL2_MAC_ADDR_0	0x1488
    220  1.1    cube #define ATL2_MAC_ADDR_1	0x148c
    221  1.1    cube 
    222  1.1    cube /* Multicast Hash Table register */
    223  1.1    cube #define ATL2_MHT	0x1490
    224  1.1    cube 
    225  1.1    cube /* MAC Half-Duplex Control register */
    226  1.1    cube #define ATL2_MHDC	0x1498
    227  1.1    cube #define 	MHDC_LCOL_MASK		0x000003ff
    228  1.1    cube #define 	MHDC_LCOL_SHIFT		0
    229  1.1    cube #define 	MHDC_RETRY_MASK		0x0f
    230  1.1    cube #define 	MHDC_RETRY_SHIFT	12
    231  1.1    cube #define 	MHDC_EXC_DEF_EN		0x00010000
    232  1.1    cube #define 	MHDC_NO_BACK_C		0x00020000
    233  1.1    cube #define 	MHDC_NO_BACK_P		0x00040000
    234  1.1    cube #define 	MHDC_ABEDE		0x00080000
    235  1.1    cube #define 	MHDC_ABEBT_MASK		0x0f
    236  1.1    cube #define 	MHDC_ABEBT_SHIFT	20
    237  1.1    cube #define 	MHDC_JAMIPG_MASK	0x0f
    238  1.1    cube #define 	MHDC_JAMIPG_SHIFT	24
    239  1.1    cube 
    240  1.1    cube /* MTU Control register */
    241  1.1    cube #define ATL2_MTU	0x149c
    242  1.1    cube 
    243  1.1    cube /* WOL Control register */
    244  1.1    cube #define ATL2_WOLC
    245  1.1    cube #define 	WOLC_PATTERN_EN		0x00000001
    246  1.1    cube #define 	WOLC_PATTERN_PME_EN	0x00000002
    247  1.1    cube #define 	WOLC_MAGIC_EN		0x00000004
    248  1.1    cube #define 	WOLC_MAGIC_PME_EN	0x00000008
    249  1.1    cube #define 	WOLC_LINK_CHG_EN	0x00000010
    250  1.1    cube #define 	WOLC_LINK_CHG_PME_EN	0x00000020
    251  1.1    cube #define 	WOLC_PATTERN_ST		0x00000100
    252  1.1    cube #define 	WOLC_MAGIC_ST		0x00000200
    253  1.1    cube #define 	WOLC_LINK_CHG_ST	0x00000400
    254  1.1    cube #define 	WOLC_PT0_EN		0x00010000
    255  1.1    cube #define 	WOLC_PT1_EN		0x00020000
    256  1.1    cube #define 	WOLC_PT2_EN		0x00040000
    257  1.1    cube #define 	WOLC_PT3_EN		0x00080000
    258  1.1    cube #define 	WOLC_PT4_EN		0x00100000
    259  1.1    cube #define 	WOLC_PT0_MATCH		0x01000000
    260  1.1    cube #define 	WOLC_PT1_MATCH		0x02000000
    261  1.1    cube #define 	WOLC_PT2_MATCH		0x04000000
    262  1.1    cube #define 	WOLC_PT3_MATCH		0x08000000
    263  1.1    cube #define 	WOLC_PT4_MATCH		0x10000000
    264  1.1    cube 
    265  1.1    cube /* Internal SRAM Partition register */
    266  1.1    cube #define ATL2_SRAM_TXRAM_END	0x1500
    267  1.1    cube #define ATL2_SRAM_RXRAM_END	0x1502
    268  1.1    cube 
    269  1.1    cube /* Descriptor Control registers */
    270  1.1    cube #define ATL2_DESC_BASE_ADDR_HI	0x1540
    271  1.1    cube #define ATL2_TXD_BASE_ADDR_LO	0x1544
    272  1.1    cube #define ATL2_TXD_BUFFER_SIZE	0x1548
    273  1.1    cube #define ATL2_TXS_BASE_ADDR_LO	0x154c
    274  1.1    cube #define ATL2_TXS_NUM_ENTRIES	0x1550
    275  1.1    cube #define ATL2_RXD_BASE_ADDR_LO	0x1554
    276  1.1    cube #define ATL2_RXD_NUM_ENTRIES	0x1558
    277  1.1    cube 
    278  1.1    cube /* DMAR Control register */
    279  1.1    cube #define ATL2_DMAR	0x1580
    280  1.1    cube #define 	DMAR_EN		0x01
    281  1.1    cube 
    282  1.1    cube /* TX Cur-Through Control register */
    283  1.1    cube #define ATL2_TX_CUT_THRESH	0x1590
    284  1.1    cube 
    285  1.1    cube /* DMAW Control register */
    286  1.1    cube #define ATL2_DMAW	0x15a0
    287  1.1    cube #define 	DMAW_EN		0x01
    288  1.1    cube 
    289  1.1    cube /* Flow Control registers */
    290  1.1    cube #define ATL2_PAUSE_ON_TH	0x15a8
    291  1.1    cube #define ATL2_PAUSE_OFF_TH	0x15aa
    292  1.1    cube 
    293  1.1    cube /* Mailbox registers */
    294  1.1    cube #define ATL2_MB_TXD_WR_IDX	0x15f0
    295  1.1    cube #define ATL2_MB_RXD_RD_IDX	0x15f4
    296  1.1    cube 
    297  1.1    cube /* Interrupt Status register */
    298  1.1    cube #define ATL2_ISR	0x1600
    299  1.1    cube #define 	ISR_TIMER		0x00000001
    300  1.1    cube #define 	ISR_MANUAL		0x00000002
    301  1.1    cube #define 	ISR_RXF_OV		0x00000004
    302  1.1    cube #define 	ISR_TXF_UR		0x00000008
    303  1.1    cube #define 	ISR_TXS_OV		0x00000010
    304  1.1    cube #define 	ISR_RXS_OV		0x00000020
    305  1.1    cube #define 	ISR_LINK_CHG		0x00000040
    306  1.1    cube #define 	ISR_HOST_TXD_UR		0x00000080
    307  1.1    cube #define 	ISR_HOST_RXD_OV		0x00000100
    308  1.1    cube #define 	ISR_DMAR_TO_RST		0x00000200
    309  1.1    cube #define 	ISR_DMAW_TO_RST		0x00000400
    310  1.1    cube #define 	ISR_PHY			0x00000800
    311  1.1    cube #define 	ISR_TS_UPDATE		0x00010000
    312  1.1    cube #define 	ISR_RS_UPDATE		0x00020000
    313  1.1    cube #define 	ISR_TX_EARLY		0x00040000
    314  1.1    cube #define 	ISR_UR_DETECTED		0x01000000
    315  1.1    cube #define 	ISR_FERR_DETECTED	0x02000000
    316  1.1    cube #define 	ISR_NFERR_DETECTED	0x04000000
    317  1.1    cube #define 	ISR_CERR_DETECTED	0x08000000
    318  1.1    cube #define 	ISR_PHY_LINKDOWN	0x10000000
    319  1.1    cube #define 	ISR_DIS_INT		0x80000000
    320  1.1    cube 
    321  1.1    cube #define 	ISR_TX_EVENT		(ISR_TXF_UR | ISR_TXS_OV | \
    322  1.1    cube 					 ISR_HOST_TXD_UR | ISR_TS_UPDATE | \
    323  1.1    cube 					 ISR_TX_EARLY)
    324  1.1    cube #define 	ISR_RX_EVENT		(ISR_RXF_OV | ISR_RXS_OV | \
    325  1.1    cube 					 ISR_HOST_RXD_OV | ISR_RS_UPDATE)
    326  1.1    cube 
    327  1.1    cube /* Interrupt Mask register */
    328  1.1    cube #define ATL2_IMR	0x1604
    329  1.1    cube #define 	IMR_NORMAL_MASK		(ISR_DMAR_TO_RST | ISR_DMAW_TO_RST | \
    330  1.1    cube 					 ISR_PHY | ISR_PHY_LINKDOWN | \
    331  1.1    cube 					 ISR_TS_UPDATE | ISR_RS_UPDATE | \
    332  1.1    cube 					 ISR_MANUAL)
    333  1.1    cube 
    334  1.1    cube /* MAC RX Statistics registers */
    335  1.1    cube #define ATL2_STS_RX_PAUSE	0x1700
    336  1.1    cube #define ATL2_STS_RXD_OV		0x1704
    337  1.1    cube #define ATL2_STS_RXS_OV		0x1708
    338  1.1    cube #define ATL2_STS_RX_FILTER	0x170c
    339  1.1    cube 
    340  1.1    cube struct tx_pkt_header {
    341  1.1    cube 	uint16_t	txph_size;
    342  1.1    cube #define ATL2_TXH_ADD_VLAN_TAG	0x8000
    343  1.1    cube 	uint16_t	txph_vlan;
    344  1.1    cube } __packed;
    345  1.1    cube 
    346  1.1    cube struct tx_pkt_status {
    347  1.1    cube 	uint16_t	txps_size;
    348  1.1    cube 	uint16_t	txps_flags :15;
    349  1.1    cube #define ATL2_TXF_SUCCESS	0x0001
    350  1.1    cube #define ATL2_TXF_BCAST		0x0002
    351  1.1    cube #define ATL2_TXF_MCAST		0x0004
    352  1.1    cube #define ATL2_TXF_PAUSE		0x0008
    353  1.1    cube #define ATL2_TXF_CTRL		0x0010
    354  1.1    cube #define ATL2_TXF_DEFER		0x0020
    355  1.1    cube #define ATL2_TXF_EXC_DEFER	0x0040
    356  1.1    cube #define ATL2_TXF_SINGLE_COL	0x0080
    357  1.1    cube #define ATL2_TXF_MULTI_COL	0x0100
    358  1.1    cube #define ATL2_TXF_LATE_COL	0x0200
    359  1.1    cube #define ATL2_TXF_ABORT_COL	0x0400
    360  1.1    cube #define ATL2_TXF_UNDERRUN	0x0800
    361  1.1    cube 	uint16_t	txps_update:1;
    362  1.1    cube } __packed;
    363  1.1    cube 
    364  1.1    cube struct rx_pkt {
    365  1.1    cube 	uint16_t	rxp_size;
    366  1.1    cube 	uint16_t	rxp_flags :15;
    367  1.1    cube #define ATL2_RXF_SUCCESS	0x0001
    368  1.1    cube #define ATL2_RXF_BCAST		0x0002
    369  1.1    cube #define ATL2_RXF_MCAST		0x0004
    370  1.1    cube #define ATL2_RXF_PAUSE		0x0008
    371  1.1    cube #define ATL2_RXF_CTRL		0x0010
    372  1.1    cube #define ATL2_RXF_CRC		0x0020
    373  1.1    cube #define ATL2_RXF_CODE		0x0040
    374  1.1    cube #define ATL2_RXF_RUNT		0x0080
    375  1.1    cube #define ATL2_RXF_FRAG		0x0100
    376  1.1    cube #define ATL2_RXF_TRUNC		0x0200
    377  1.1    cube #define ATL2_RXF_ALIGN		0x0400
    378  1.1    cube #define ATL2_RXF_VLAN		0x0800
    379  1.1    cube 	uint16_t	rxp_update:1;
    380  1.1    cube 	uint16_t	rxp_vlan;
    381  1.1    cube 	uint16_t	__pad;
    382  1.1    cube 	uint8_t		rxp_data[1528];
    383  1.1    cube } __packed;
    384