Home | History | Annotate | Line # | Download | only in dev
      1  1.7  andvar /*	$NetBSD: octeon_gmxreg.h,v 1.7 2022/05/23 21:46:12 andvar Exp $	*/
      2  1.1  hikaru 
      3  1.1  hikaru /*
      4  1.1  hikaru  * Copyright (c) 2007 Internet Initiative Japan, Inc.
      5  1.1  hikaru  * All rights reserved.
      6  1.1  hikaru  *
      7  1.1  hikaru  * Redistribution and use in source and binary forms, with or without
      8  1.1  hikaru  * modification, are permitted provided that the following conditions
      9  1.1  hikaru  * are met:
     10  1.1  hikaru  * 1. Redistributions of source code must retain the above copyright
     11  1.1  hikaru  *    notice, this list of conditions and the following disclaimer.
     12  1.1  hikaru  * 2. Redistributions in binary form must reproduce the above copyright
     13  1.1  hikaru  *    notice, this list of conditions and the following disclaimer in the
     14  1.1  hikaru  *    documentation and/or other materials provided with the distribution.
     15  1.1  hikaru  *
     16  1.1  hikaru  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
     17  1.1  hikaru  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     18  1.1  hikaru  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     19  1.1  hikaru  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
     20  1.1  hikaru  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     21  1.1  hikaru  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     22  1.1  hikaru  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     23  1.1  hikaru  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     24  1.1  hikaru  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     25  1.1  hikaru  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     26  1.1  hikaru  * SUCH DAMAGE.
     27  1.1  hikaru  */
     28  1.1  hikaru 
     29  1.1  hikaru /*
     30  1.1  hikaru  * GMX Registers
     31  1.1  hikaru  */
     32  1.1  hikaru 
     33  1.1  hikaru #ifndef _OCTEON_GMXREG_H_
     34  1.1  hikaru #define _OCTEON_GMXREG_H_
     35  1.1  hikaru 
     36  1.1  hikaru #define	GMX0_RX0_INT_REG			0x000
     37  1.1  hikaru #define	GMX0_RX0_INT_EN				0x008
     38  1.1  hikaru #define	GMX0_PRT0_CFG				0x010
     39  1.1  hikaru #define	GMX0_RX0_FRM_CTL			0x018
     40  1.1  hikaru #define	GMX0_RX0_FRM_CHK			0x020
     41  1.1  hikaru #define	GMX0_RX0_FRM_MIN			0x028
     42  1.1  hikaru #define	GMX0_RX0_FRM_MAX			0x030
     43  1.1  hikaru #define	GMX0_RX0_JABBER				0x038
     44  1.1  hikaru #define	GMX0_RX0_DECISION			0x040
     45  1.1  hikaru #define	GMX0_RX0_UDD_SKP			0x048
     46  1.1  hikaru #define	GMX0_RX0_STATS_CTL			0x050
     47  1.1  hikaru #define	GMX0_RX0_IFG				0x058
     48  1.1  hikaru #define	GMX0_RX0_RX_INBND			0x060
     49  1.1  hikaru #define	GMX0_RX0_STATS_PKTS			0x080
     50  1.1  hikaru #define	GMX0_RX0_STATS_OCTS			0x088
     51  1.1  hikaru #define	GMX0_RX0_STATS_PKTS_CTL			0x090
     52  1.1  hikaru #define	GMX0_RX0_STATS_OCTS_CTL			0x098
     53  1.1  hikaru #define	GMX0_RX0_STATS_PKTS_DMAC		0x0a0
     54  1.1  hikaru #define	GMX0_RX0_STATS_OCTS_DMAC		0x0a8
     55  1.1  hikaru #define	GMX0_RX0_STATS_PKTS_DRP			0x0b0
     56  1.1  hikaru #define	GMX0_RX0_STATS_OCTS_DRP			0x0b8
     57  1.1  hikaru #define	GMX0_RX0_STATS_PKTS_BAD			0x0c0
     58  1.1  hikaru #define	GMX0_RX0_ADR_CTL			0x100
     59  1.1  hikaru #define	GMX0_RX0_ADR_CAM_EN			0x108
     60  1.1  hikaru #define	GMX0_RX0_ADR_CAM0			0x180
     61  1.1  hikaru #define	GMX0_RX0_ADR_CAM1			0x188
     62  1.1  hikaru #define	GMX0_RX0_ADR_CAM2			0x190
     63  1.1  hikaru #define	GMX0_RX0_ADR_CAM3			0x198
     64  1.1  hikaru #define	GMX0_RX0_ADR_CAM4			0x1a0
     65  1.1  hikaru #define	GMX0_RX0_ADR_CAM5			0x1a8
     66  1.1  hikaru #define	GMX0_TX0_CLK				0x208
     67  1.1  hikaru #define	GMX0_TX0_THRESH				0x210
     68  1.1  hikaru #define	GMX0_TX0_APPEND				0x218
     69  1.1  hikaru #define	GMX0_TX0_SLOT				0x220
     70  1.1  hikaru #define	GMX0_TX0_BURST				0x228
     71  1.1  hikaru #define	GMX0_SMAC0				0x230
     72  1.1  hikaru #define	GMX0_TX0_PAUSE_PKT_TIME			0x238
     73  1.1  hikaru #define	GMX0_TX0_MIN_PKT			0x240
     74  1.1  hikaru #define	GMX0_TX0_PAUSE_PKT_INTERVAL		0x248
     75  1.1  hikaru #define	GMX0_TX0_SOFT_PAUSE			0x250
     76  1.1  hikaru #define	GMX0_TX0_PAUSE_TOGO			0x258
     77  1.1  hikaru #define	GMX0_TX0_PAUSE_ZERO			0x260
     78  1.1  hikaru #define	GMX0_TX0_STATS_CTL			0x268
     79  1.1  hikaru #define	GMX0_TX0_CTL				0x270
     80  1.1  hikaru #define	GMX0_TX0_STAT0				0x280
     81  1.1  hikaru #define	GMX0_TX0_STAT1				0x288
     82  1.1  hikaru #define	GMX0_TX0_STAT2				0x290
     83  1.1  hikaru #define	GMX0_TX0_STAT3				0x298
     84  1.1  hikaru #define	GMX0_TX0_STAT4				0x2a0
     85  1.1  hikaru #define	GMX0_TX0_STAT5				0x2a8
     86  1.1  hikaru #define	GMX0_TX0_STAT6				0x2b0
     87  1.1  hikaru #define	GMX0_TX0_STAT7				0x2b8
     88  1.1  hikaru #define	GMX0_TX0_STAT8				0x2c0
     89  1.1  hikaru #define	GMX0_TX0_STAT9				0x2c8
     90  1.1  hikaru #define	GMX0_BIST0				0x400
     91  1.1  hikaru #define	GMX0_RX_PRTS				0x410
     92  1.1  hikaru #define	GMX0_RX_BP_DROP0			0x420
     93  1.1  hikaru #define	GMX0_RX_BP_DROP1			0x428
     94  1.1  hikaru #define	GMX0_RX_BP_DROP2			0x430
     95  1.1  hikaru #define	GMX0_RX_BP_ON0				0x440
     96  1.1  hikaru #define	GMX0_RX_BP_ON1				0x448
     97  1.1  hikaru #define	GMX0_RX_BP_ON2				0x450
     98  1.1  hikaru #define	GMX0_RX_BP_OFF0				0x460
     99  1.1  hikaru #define	GMX0_RX_BP_OFF1				0x468
    100  1.1  hikaru #define	GMX0_RX_BP_OFF2				0x470
    101  1.1  hikaru #define	GMX0_TX_PRTS				0x480
    102  1.1  hikaru #define	GMX0_TX_IFG				0x488
    103  1.1  hikaru #define	GMX0_TX_JAM				0x490
    104  1.1  hikaru #define	GMX0_TX_COL_ATTEMPT			0x498
    105  1.1  hikaru #define	GMX0_TX_PAUSE_PKT_DMAC			0x4a0
    106  1.1  hikaru #define	GMX0_TX_PAUSE_PKT_TYPE			0x4a8
    107  1.1  hikaru #define	GMX0_TX_OVR_BP				0x4c8
    108  1.1  hikaru #define	GMX0_TX_BP				0x4d0
    109  1.1  hikaru #define	GMX0_TX_CORRUPT				0x4d8
    110  1.1  hikaru #define	GMX0_RX_PRT_INFO			0x4e8
    111  1.1  hikaru #define	GMX0_TX_LFSR				0x4f8
    112  1.1  hikaru #define	GMX0_TX_INT_REG				0x500
    113  1.1  hikaru #define	GMX0_TX_INT_EN				0x508
    114  1.1  hikaru #define	GMX0_NXA_ADR				0x510
    115  1.1  hikaru #define	GMX0_BAD_REG				0x518
    116  1.1  hikaru #define	GMX0_STAT_BP				0x520
    117  1.1  hikaru #define	GMX0_TX_CLK_MSK0			0x780
    118  1.1  hikaru #define	GMX0_TX_CLK_MSK1			0x788
    119  1.1  hikaru #define	GMX0_RX_TX_STATUS			0x7e8
    120  1.1  hikaru #define	GMX0_INF_MODE				0x7f8
    121  1.1  hikaru 
    122  1.1  hikaru /* -------------------------------------------------------------------------- */
    123  1.1  hikaru 
    124  1.1  hikaru /* GMX Interrupt Registers */
    125  1.1  hikaru 
    126  1.1  hikaru #define	RXN_INT_REG_XXX_63_19			UINT64_C(0xfffffffffff80000)
    127  1.1  hikaru #define	RXN_INT_REG_PHY_DUPX			UINT64_C(0x0000000000040000)
    128  1.1  hikaru #define	RXN_INT_REG_PHY_SPD			UINT64_C(0x0000000000020000)
    129  1.1  hikaru #define	RXN_INT_REG_PHY_LINK			UINT64_C(0x0000000000010000)
    130  1.1  hikaru #define	RXN_INT_REG_IFGERR			UINT64_C(0x0000000000008000)
    131  1.1  hikaru #define	RXN_INT_REG_COLDET			UINT64_C(0x0000000000004000)
    132  1.1  hikaru #define	RXN_INT_REG_FALERR			UINT64_C(0x0000000000002000)
    133  1.1  hikaru #define	RXN_INT_REG_RSVERR			UINT64_C(0x0000000000001000)
    134  1.1  hikaru #define	RXN_INT_REG_PCTERR			UINT64_C(0x0000000000000800)
    135  1.1  hikaru #define	RXN_INT_REG_OVRERR			UINT64_C(0x0000000000000400)
    136  1.1  hikaru #define	RXN_INT_REG_NIBERR			UINT64_C(0x0000000000000200)
    137  1.1  hikaru #define	RXN_INT_REG_SKPERR			UINT64_C(0x0000000000000100)
    138  1.1  hikaru #define	RXN_INT_REG_RCVERR			UINT64_C(0x0000000000000080)
    139  1.1  hikaru #define	RXN_INT_REG_LENERR			UINT64_C(0x0000000000000040)
    140  1.1  hikaru #define	RXN_INT_REG_ALNERR			UINT64_C(0x0000000000000020)
    141  1.1  hikaru #define	RXN_INT_REG_FCSERR			UINT64_C(0x0000000000000010)
    142  1.1  hikaru #define	RXN_INT_REG_JABBER			UINT64_C(0x0000000000000008)
    143  1.1  hikaru #define	RXN_INT_REG_MAXERR			UINT64_C(0x0000000000000004)
    144  1.1  hikaru #define	RXN_INT_REG_CAREXT			UINT64_C(0x0000000000000002)
    145  1.1  hikaru #define	RXN_INT_REG_MINERR			UINT64_C(0x0000000000000001)
    146  1.1  hikaru 
    147  1.1  hikaru /* GMX Interrupt-Enable Registers */
    148  1.1  hikaru 
    149  1.1  hikaru #define	RXN_INT_EN_XXX_63_19			UINT64_C(0xfffffffffff80000)
    150  1.1  hikaru #define	RXN_INT_EN_PHY_DUPX			UINT64_C(0x0000000000040000)
    151  1.1  hikaru #define	RXN_INT_EN_PHY_SPD			UINT64_C(0x0000000000020000)
    152  1.1  hikaru #define	RXN_INT_EN_PHY_LINK			UINT64_C(0x0000000000010000)
    153  1.1  hikaru #define	RXN_INT_EN_IFGERR			UINT64_C(0x0000000000008000)
    154  1.1  hikaru #define	RXN_INT_EN_COLDET			UINT64_C(0x0000000000004000)
    155  1.1  hikaru #define	RXN_INT_EN_FALERR			UINT64_C(0x0000000000002000)
    156  1.1  hikaru #define	RXN_INT_EN_RSVERR			UINT64_C(0x0000000000001000)
    157  1.1  hikaru #define	RXN_INT_EN_PCTERR			UINT64_C(0x0000000000000800)
    158  1.1  hikaru #define	RXN_INT_EN_OVRERR			UINT64_C(0x0000000000000400)
    159  1.1  hikaru #define	RXN_INT_EN_NIBERR			UINT64_C(0x0000000000000200)
    160  1.1  hikaru #define	RXN_INT_EN_SKPERR			UINT64_C(0x0000000000000100)
    161  1.1  hikaru #define	RXN_INT_EN_RCVERR			UINT64_C(0x0000000000000080)
    162  1.1  hikaru #define	RXN_INT_EN_LENERR			UINT64_C(0x0000000000000040)
    163  1.1  hikaru #define	RXN_INT_EN_ALNERR			UINT64_C(0x0000000000000020)
    164  1.1  hikaru #define	RXN_INT_EN_FCSERR			UINT64_C(0x0000000000000010)
    165  1.1  hikaru #define	RXN_INT_EN_JABBER			UINT64_C(0x0000000000000008)
    166  1.1  hikaru #define	RXN_INT_EN_MAXERR			UINT64_C(0x0000000000000004)
    167  1.1  hikaru #define	RXN_INT_EN_CAREXT			UINT64_C(0x0000000000000002)
    168  1.1  hikaru #define	RXN_INT_EN_MINERR			UINT64_C(0x0000000000000001)
    169  1.1  hikaru 
    170  1.1  hikaru /* GMX Port Configuration Registers */
    171  1.1  hikaru 
    172  1.5  simonb #define	PRTN_CFG_XXX_63_9			UINT64_C(0xfffffffffffffe00)
    173  1.5  simonb #define	PRTN_CFG_SPEED_MSB			UINT64_C(0x0000000000000100)
    174  1.5  simonb #define	PRTN_CFG_XXX_7_4			UINT64_C(0x00000000000000f0)
    175  1.1  hikaru #define	PRTN_CFG_SLOTTIME			UINT64_C(0x0000000000000008)
    176  1.1  hikaru #define	PRTN_CFG_DUPLEX				UINT64_C(0x0000000000000004)
    177  1.1  hikaru #define	PRTN_CFG_SPEED				UINT64_C(0x0000000000000002)
    178  1.1  hikaru #define	PRTN_CFG_EN				UINT64_C(0x0000000000000001)
    179  1.1  hikaru 
    180  1.1  hikaru /* Frame Control Registers */
    181  1.1  hikaru 
    182  1.1  hikaru #define	RXN_FRM_CTL_XXX_63_11			UINT64_C(0xfffffffffffff800)
    183  1.1  hikaru #define	RXN_FRM_CTL_NULL_DIS			UINT64_C(0x0000000000000400)
    184  1.1  hikaru #define	RXN_FRM_CTL_PRE_ALIGN			UINT64_C(0x0000000000000200)
    185  1.1  hikaru #define	RXN_FRM_CTL_PAD_LEN			UINT64_C(0x0000000000000100)
    186  1.1  hikaru #define	RXN_FRM_CTL_VLAN_LEN			UINT64_C(0x0000000000000080)
    187  1.1  hikaru #define	RXN_FRM_CTL_PRE_FREE			UINT64_C(0x0000000000000040)
    188  1.1  hikaru #define	RXN_FRM_CTL_CTL_SMAC			UINT64_C(0x0000000000000020)
    189  1.1  hikaru #define	RXN_FRM_CTL_CTL_MCST			UINT64_C(0x0000000000000010)
    190  1.1  hikaru #define	RXN_FRM_CTL_CTL_BCK			UINT64_C(0x0000000000000008)
    191  1.1  hikaru #define	RXN_FRM_CTL_CTL_DRP			UINT64_C(0x0000000000000004)
    192  1.1  hikaru #define	RXN_FRM_CTL_PRE_STRP			UINT64_C(0x0000000000000002)
    193  1.1  hikaru #define	RXN_FRM_CTL_PRE_CHK			UINT64_C(0x0000000000000001)
    194  1.1  hikaru 
    195  1.1  hikaru /* Frame Check Registers */
    196  1.1  hikaru 
    197  1.1  hikaru #define RXN_FRM_CKK_XXX_63_10			UINT64_C(0xfffffffffffffc00)
    198  1.1  hikaru #define	RXN_FRM_CHK_NIBERR			UINT64_C(0x0000000000000200)
    199  1.1  hikaru #define	RXN_FRM_CHK_SKPERR			UINT64_C(0x0000000000000100)
    200  1.1  hikaru #define	RXN_FRM_CHK_RCVERR			UINT64_C(0x0000000000000080)
    201  1.1  hikaru #define	RXN_FRM_CHK_LENERR			UINT64_C(0x0000000000000040)
    202  1.1  hikaru #define	RXN_FRM_CHK_ALNERR			UINT64_C(0x0000000000000020)
    203  1.1  hikaru #define	RXN_FRM_CHK_FCSERR			UINT64_C(0x0000000000000010)
    204  1.1  hikaru #define	RXN_FRM_CHK_JABBER			UINT64_C(0x0000000000000008)
    205  1.1  hikaru #define	RXN_FRM_CHK_MAXERR			UINT64_C(0x0000000000000004)
    206  1.1  hikaru #define	RXN_FRM_CHK_CAREXT			UINT64_C(0x0000000000000002)
    207  1.1  hikaru #define	RXN_FRM_CHK_MINERR			UINT64_C(0x0000000000000001)
    208  1.1  hikaru 
    209  1.1  hikaru /* Frame Minimum-Length Registers */
    210  1.1  hikaru 
    211  1.1  hikaru #define	RXN_RRM_MIN_XXX_63_16			UINT64_C(0xffffffffffff0000)
    212  1.1  hikaru #define	RXN_RRM_MIN_LEN				UINT64_C(0x000000000000ffff)
    213  1.1  hikaru 
    214  1.1  hikaru /* Frame Maximun-Length Registers */
    215  1.1  hikaru 
    216  1.1  hikaru #define	RXN_RRM_MAX_XXX_63_16			UINT64_C(0xffffffffffff0000)
    217  1.1  hikaru #define	RXN_RRM_MAX_LEN				UINT64_C(0x000000000000ffff)
    218  1.1  hikaru 
    219  1.1  hikaru /* GMX Maximun Packet-Size Registers */
    220  1.1  hikaru 
    221  1.1  hikaru #define	RXN_JABBER_XXX_63_16			UINT64_C(0xffffffffffff0000)
    222  1.1  hikaru #define	RXN_JABBER_CNT				UINT64_C(0x000000000000ffff)
    223  1.1  hikaru 
    224  1.1  hikaru /* GMX Packet Decision Registers */
    225  1.1  hikaru 
    226  1.1  hikaru #define	RXN_DECISION_XXX_63_5			UINT64_C(0xffffffffffffffe0)
    227  1.1  hikaru #define	RXN_DECISION_CNT			UINT64_C(0x000000000000001f)
    228  1.1  hikaru 
    229  1.1  hikaru /* GMX User-Defined Data Skip Registers */
    230  1.1  hikaru 
    231  1.1  hikaru #define	RXN_UDD_SKP_XXX_63_9			UINT64_C(0xfffffffffffffe00)
    232  1.1  hikaru #define	RXN_UDD_SKP_FCSSEL			UINT64_C(0x0000000000000100)
    233  1.1  hikaru #define	RXN_UDD_SKP_XXX_7			UINT64_C(0x0000000000000080)
    234  1.1  hikaru #define	RXN_UDD_SKP_LEN				UINT64_C(0x000000000000007f)
    235  1.1  hikaru 
    236  1.1  hikaru /* GMX RX Statistics Control Registers */
    237  1.1  hikaru 
    238  1.1  hikaru #define	RXN_STATS_CTL_XXX_63_1			UINT64_C(0xfffffffffffffffe)
    239  1.1  hikaru #define	RXN_STATS_CTL_RD_CLR			UINT64_C(0x0000000000000001)
    240  1.1  hikaru 
    241  1.6  andvar /* GMX Minimum Interface-Gap Cycles Registers */
    242  1.1  hikaru 
    243  1.1  hikaru #define	RXN_IFG_XXX_63_4			UINT64_C(0xfffffffffffffff0)
    244  1.1  hikaru #define	RXN_IFG_IFG				UINT64_C(0x000000000000000f)
    245  1.1  hikaru 
    246  1.1  hikaru /* InBand Link Status Registers */
    247  1.1  hikaru 
    248  1.1  hikaru #define	RXN_RX_INBND_XXX_63_4			UINT64_C(0xfffffffffffffff0)
    249  1.1  hikaru #define	RXN_RX_INBND_DUPLEX			UINT64_C(0x0000000000000008)
    250  1.2  simonb #define	  RXN_RX_INBND_DUPLEX_HALF		  0
    251  1.2  simonb #define	  RXN_RX_INBND_DUPLEX_FULL		  1
    252  1.1  hikaru #define	RXN_RX_INBND_SPEED			UINT64_C(0x0000000000000006)
    253  1.2  simonb #define	  RXN_RX_INBND_SPEED_2_5		  0
    254  1.2  simonb #define	  RXN_RX_INBND_SPEED_25			  1
    255  1.2  simonb #define	  RXN_RX_INBND_SPEED_125		  2
    256  1.2  simonb #define	  RXN_RX_INBND_SPEED_XXX_3		  3
    257  1.1  hikaru #define	RXN_RX_INBND_STATUS			UINT64_C(0x0000000000000001)
    258  1.1  hikaru 
    259  1.1  hikaru /* GMX RX Good Packets Registers */
    260  1.1  hikaru 
    261  1.1  hikaru #define	RXN_STATS_PKTS_XXX_63_32		UINT64_C(0xffffffff00000000)
    262  1.1  hikaru #define	RXN_STATS_PKTS_CNT			UINT64_C(0x00000000ffffffff)
    263  1.1  hikaru 
    264  1.1  hikaru /* GMX RX Good Packets Octet Registers */
    265  1.1  hikaru 
    266  1.1  hikaru #define	RXN_STATS_OCTS_XXX_63_48		UINT64_C(0xffff000000000000)
    267  1.1  hikaru #define	RXN_STATS_OCTS_CNT			UINT64_C(0x0000ffffffffffff)
    268  1.1  hikaru 
    269  1.1  hikaru /* GMX RX Pause Packets Registers */
    270  1.1  hikaru 
    271  1.1  hikaru #define	RXN_STATS_PKTS_CTL_XXX_63_32		UINT64_C(0xffffffff00000000)
    272  1.1  hikaru #define	RXN_STATS_PKTS_CTL_CNT			UINT64_C(0x00000000ffffffff)
    273  1.1  hikaru 
    274  1.1  hikaru /* GMX RX Pause Packets Octet Registers */
    275  1.1  hikaru 
    276  1.1  hikaru #define	RXN_STATS_OCTS_CTL_XXX_63_48		UINT64_C(0xffff000000000000)
    277  1.1  hikaru #define	RXN_STATS_OCTS_CTL_CNT			UINT64_C(0x0000ffffffffffff)
    278  1.1  hikaru 
    279  1.1  hikaru /* GMX RX DMAC Packets Registers */
    280  1.1  hikaru 
    281  1.1  hikaru #define	RXN_STATS_PKTS_DMAC_XXX_63_32		UINT64_C(0xffffffff00000000)
    282  1.1  hikaru #define	RXN_STATS_PKTS_DMAC_CNT			UINT64_C(0x00000000ffffffff)
    283  1.1  hikaru 
    284  1.1  hikaru /* GMX RX DMAC Packets Octet Registers */
    285  1.1  hikaru 
    286  1.1  hikaru #define	RXN_STATS_OCTS_DMAC_XXX_63_48		UINT64_C(0xffff000000000000)
    287  1.1  hikaru #define	RXN_STATS_OCTS_DMAC_CNT			UINT64_C(0x0000ffffffffffff)
    288  1.1  hikaru 
    289  1.1  hikaru /* GMX RX Overflow Packets Registers */
    290  1.1  hikaru 
    291  1.1  hikaru #define	RXN_STATS_PKTS_DRP_XXX_63_48		UINT64_C(0xffffffff00000000)
    292  1.1  hikaru #define	RXN_STATS_PKTS_DRP_CNT			UINT64_C(0x00000000ffffffff)
    293  1.1  hikaru 
    294  1.1  hikaru /* GMX RX Overflow Packets Octet Registers */
    295  1.1  hikaru 
    296  1.1  hikaru #define	RXN_STATS_OCTS_DRP_XXX_63_48		UINT64_C(0xffff000000000000)
    297  1.1  hikaru #define	RXN_STATS_OCTS_DRP_CNT			UINT64_C(0x0000ffffffffffff)
    298  1.1  hikaru 
    299  1.1  hikaru /* GMX RX Bad Packets Registers */
    300  1.1  hikaru 
    301  1.1  hikaru #define	RXN_STATS_PKTS_BAD_XXX_63_48		UINT64_C(0xffffffff00000000)
    302  1.1  hikaru #define	RXN_STATS_PKTS_BAD_CNT			UINT64_C(0x00000000ffffffff)
    303  1.1  hikaru 
    304  1.1  hikaru /* Address-Filtering Control Registers */
    305  1.1  hikaru 
    306  1.1  hikaru #define	RXN_ADR_CTL_XXX_63_4			UINT64_C(0xfffffffffffffff0)
    307  1.1  hikaru #define	RXN_ADR_CTL_CAM_MODE			UINT64_C(0x0000000000000008)
    308  1.2  simonb #define	  RXN_ADR_CTL_CAM_MODE_REJECT		  0
    309  1.2  simonb #define	  RXN_ADR_CTL_CAM_MODE_ACCEPT		  1
    310  1.1  hikaru #define	RXN_ADR_CTL_MCST			UINT64_C(0x0000000000000006)
    311  1.2  simonb #define	  RXN_ADR_CTL_MCST_AFCAM		  0
    312  1.2  simonb #define	  RXN_ADR_CTL_MCST_REJECT		  1
    313  1.2  simonb #define	  RXN_ADR_CTL_MCST_ACCEPT		  2
    314  1.2  simonb #define	  RXN_ADR_CTL_MCST_XXX_3		  3
    315  1.1  hikaru #define	RXN_ADR_CTL_BCST			UINT64_C(0x0000000000000001)
    316  1.1  hikaru 
    317  1.1  hikaru /* Address-Filtering Control Enable Registers */
    318  1.1  hikaru 
    319  1.1  hikaru #define	RXN_ADR_CAM_EN_XXX_63_8			UINT64_C(0xffffffffffffff00)
    320  1.1  hikaru #define	RXN_ADR_CAM_EN_EN			UINT64_C(0x00000000000000ff)
    321  1.1  hikaru 
    322  1.1  hikaru /* Address-Filtering CAM Control Registers */
    323  1.1  hikaru #define	RXN_ADR_CAMN_ADR			UINT64_C(0xffffffffffffffff)
    324  1.1  hikaru 
    325  1.1  hikaru /* GMX TX Clock Generation Registers */
    326  1.1  hikaru 
    327  1.1  hikaru #define	TXN_CLK_XXX_63_6			UINT64_C(0xffffffffffffffc0)
    328  1.1  hikaru #define	TXN_CLK_CLK_CNT				UINT64_C(0x000000000000003f)
    329  1.1  hikaru 
    330  1.1  hikaru /* TX Threshold Registers */
    331  1.1  hikaru 
    332  1.1  hikaru #define	TXN_THRESH_XXX_63_6			UINT64_C(0xffffffffffffffc0)
    333  1.1  hikaru #define	TXN_THRESH_CNT				UINT64_C(0x000000000000003f)
    334  1.1  hikaru 
    335  1.1  hikaru /* TX Append Control Registers */
    336  1.1  hikaru 
    337  1.1  hikaru #define	TXN_APPEND_XXX_63_4			UINT64_C(0xfffffffffffffff0)
    338  1.1  hikaru #define	TXN_APPEND_FORCE_FCS			UINT64_C(0x0000000000000008)
    339  1.1  hikaru #define	TXN_APPEND_FCS				UINT64_C(0x0000000000000004)
    340  1.1  hikaru #define	TXN_APPEND_PAD				UINT64_C(0x0000000000000002)
    341  1.1  hikaru #define	TXN_APPEND_PREAMBLE			UINT64_C(0x0000000000000001)
    342  1.1  hikaru 
    343  1.1  hikaru /* TX Slottime Counter Registers */
    344  1.1  hikaru 
    345  1.1  hikaru #define	TXN_SLOT_XXX_63_10			UINT64_C(0xfffffffffffffc00)
    346  1.1  hikaru #define	TXN_SLOT_SLOT				UINT64_C(0x00000000000003ff)
    347  1.1  hikaru 
    348  1.1  hikaru /* TX Burst-Counter Registers */
    349  1.1  hikaru 
    350  1.1  hikaru #define	TXN_BURST_XXX_63_16			UINT64_C(0xffffffffffff0000)
    351  1.1  hikaru #define	TXN_BURST_BURST				UINT64_C(0x000000000000ffff)
    352  1.1  hikaru 
    353  1.1  hikaru /* RGMII SMAC Registers */
    354  1.1  hikaru 
    355  1.1  hikaru #define	SMACN_XXX_63_48				UINT64_C(0xffff000000000000)
    356  1.1  hikaru #define	SMACN_SMAC				UINT64_C(0x0000ffffffffffff)
    357  1.1  hikaru 
    358  1.1  hikaru /* TX Pause Packet Pause-Time Registers */
    359  1.1  hikaru 
    360  1.1  hikaru #define	TXN_PAUSE_PKT_TIME_XXX_63_16		UINT64_C(0xffffffffffff0000)
    361  1.1  hikaru #define	TXN_PAUSE_PKT_TIME_TIME			UINT64_C(0x000000000000ffff)
    362  1.1  hikaru 
    363  1.1  hikaru /* RGMII TX Minimum-Size-Packet Registers */
    364  1.1  hikaru 
    365  1.1  hikaru #define	TXN_MIN_PKT_XXX_63_8			UINT64_C(0xffffffffffffff00)
    366  1.1  hikaru #define	TXN_MIN_PKT_MIN_SIZE			UINT64_C(0x00000000000000ff)
    367  1.1  hikaru 
    368  1.1  hikaru /* TX Pause-Packet Transmission-Interval Registers */
    369  1.1  hikaru 
    370  1.1  hikaru #define	TXN_PAUSE_PKT_INTERVAL_XXX_63_16	UINT64_C(0xffffffffffff0000)
    371  1.1  hikaru #define	TXN_PAUSE_PKT_INTERVAL_INTERVAL		UINT64_C(0x000000000000ffff)
    372  1.1  hikaru 
    373  1.1  hikaru /* TX Software-Pause Registers */
    374  1.1  hikaru 
    375  1.1  hikaru #define	TXN_SOFT_PAUSE_XXX_63_16		UINT64_C(0xffffffffffff0000)
    376  1.1  hikaru #define	TXN_SOFT_PAUSE_TIME			UINT64_C(0x000000000000ffff)
    377  1.1  hikaru 
    378  1.1  hikaru /* TX Time-to-Backpressure Registers */
    379  1.1  hikaru 
    380  1.1  hikaru #define	TXN_PAUSE_TOGO_XXX_63_16		UINT64_C(0xffffffffffff0000)
    381  1.1  hikaru #define	TXN_PAUSE_TOGO_TIME			UINT64_C(0x000000000000ffff)
    382  1.1  hikaru 
    383  1.1  hikaru /* TX Pause-Zero-Enable Registers */
    384  1.1  hikaru 
    385  1.1  hikaru #define	TXN_PAUSE_ZERO_XXX_63_1			UINT64_C(0xfffffffffffffffe)
    386  1.1  hikaru #define	TXN_PAUSE_ZERO_SEND			UINT64_C(0x0000000000000001)
    387  1.1  hikaru 
    388  1.1  hikaru /* GMX TX Statistics Control Registers */
    389  1.1  hikaru 
    390  1.1  hikaru #define	TXN_STATS_CTL_XXX_63_1			UINT64_C(0xfffffffffffffffe)
    391  1.1  hikaru #define	TXN_STATS_CTL_RD_CLR			UINT64_C(0x0000000000000001)
    392  1.1  hikaru 
    393  1.1  hikaru /* GMX TX Transmit Control Registers */
    394  1.1  hikaru 
    395  1.1  hikaru #define	TXN_CTL_XXX_63_2			UINT64_C(0xfffffffffffffffc)
    396  1.1  hikaru #define	TXN_CTL_XSDEF_EN			UINT64_C(0x0000000000000002)
    397  1.1  hikaru #define	TXN_CTL_XSCOL_EN			UINT64_C(0x0000000000000001)
    398  1.1  hikaru 
    399  1.1  hikaru /* Transmit Statistics Registers 0 */
    400  1.1  hikaru 
    401  1.1  hikaru #define	TXN_STAT0_XSDEF				UINT64_C(0xffffffff00000000)
    402  1.1  hikaru #define	TXN_STAT0_XSCOL				UINT64_C(0x00000000ffffffff)
    403  1.1  hikaru 
    404  1.1  hikaru /* Transmit Statistics Registers 1 */
    405  1.1  hikaru 
    406  1.1  hikaru #define	TXN_STAT1_SCOL				UINT64_C(0xffffffff00000000)
    407  1.1  hikaru #define	TXN_STAT1_MSCOL				UINT64_C(0x00000000ffffffff)
    408  1.1  hikaru 
    409  1.1  hikaru /* Transmit Statistics Registers 2 */
    410  1.1  hikaru 
    411  1.1  hikaru #define	TXN_STAT2_XXX_63_48			UINT64_C(0xffff000000000000)
    412  1.1  hikaru #define	TXN_STAT2_OCTS				UINT64_C(0x0000ffffffffffff)
    413  1.1  hikaru 
    414  1.1  hikaru /* Transmit Statistics Registers 3 */
    415  1.1  hikaru 
    416  1.1  hikaru #define	TXN_STAT3_XXX_63_48			UINT64_C(0xffffffff00000000)
    417  1.1  hikaru #define	TXN_STAT3_PKTS				UINT64_C(0x00000000ffffffff)
    418  1.1  hikaru 
    419  1.1  hikaru /* Transmit Statistics Registers 4 */
    420  1.1  hikaru 
    421  1.1  hikaru #define	TXN_STAT4_HIST1				UINT64_C(0xffffffff00000000)
    422  1.1  hikaru #define	TXN_STAT4_HIST0				UINT64_C(0x00000000ffffffff)
    423  1.1  hikaru 
    424  1.1  hikaru /* Transmit Statistics Registers 5 */
    425  1.1  hikaru 
    426  1.1  hikaru #define	TXN_STAT5_HIST3				UINT64_C(0xffffffff00000000)
    427  1.1  hikaru #define	TXN_STAT5_HIST2				UINT64_C(0x00000000ffffffff)
    428  1.1  hikaru 
    429  1.1  hikaru /* Transmit Statistics Registers 6 */
    430  1.1  hikaru 
    431  1.1  hikaru #define	TXN_STAT6_HIST5				UINT64_C(0xffffffff00000000)
    432  1.1  hikaru #define	TXN_STAT6_HIST4				UINT64_C(0x00000000ffffffff)
    433  1.1  hikaru 
    434  1.1  hikaru /* Transmit Statistics Registers 7 */
    435  1.1  hikaru 
    436  1.1  hikaru #define	TXN_STAT7_HIST7				UINT64_C(0xffffffff00000000)
    437  1.1  hikaru #define	TXN_STAT7_HIST6				UINT64_C(0x00000000ffffffff)
    438  1.1  hikaru 
    439  1.1  hikaru /* Transmit Statistics Registers 8 */
    440  1.1  hikaru 
    441  1.1  hikaru #define	TXN_STAT8_MCST				UINT64_C(0xffffffff00000000)
    442  1.1  hikaru #define	TXN_STAT8_BCST				UINT64_C(0x00000000ffffffff)
    443  1.1  hikaru 
    444  1.1  hikaru /* Transmit Statistics Register 9 */
    445  1.1  hikaru 
    446  1.1  hikaru #define	TXN_STAT9_UNDFLW			UINT64_C(0xffffffff00000000)
    447  1.1  hikaru #define	TXN_STAT9_CTL				UINT64_C(0x00000000ffffffff)
    448  1.1  hikaru 
    449  1.1  hikaru /* BMX BIST Results Register */
    450  1.1  hikaru 
    451  1.1  hikaru #define	BIST_XXX_63_10				UINT64_C(0xfffffffffffffc00)
    452  1.1  hikaru #define	BIST_STATUS				UINT64_C(0x00000000000003ff)
    453  1.1  hikaru 
    454  1.1  hikaru /* RX Ports Register */
    455  1.1  hikaru 
    456  1.1  hikaru #define	RX_PRTS_XXX_63_3			UINT64_C(0xfffffffffffffff8)
    457  1.1  hikaru #define	RX_PRTS_PRTS				UINT64_C(0x0000000000000007)
    458  1.1  hikaru 
    459  1.1  hikaru /* RX FIFO Packet-Drop Registers */
    460  1.1  hikaru 
    461  1.1  hikaru #define	RX_BP_DROPN_XXX_63_6			UINT64_C(0xffffffffffffffc0)
    462  1.1  hikaru #define	RX_BP_DROPN_MARK			UINT64_C(0x000000000000003f)
    463  1.1  hikaru 
    464  1.1  hikaru /* RX Backpressure On Registers */
    465  1.1  hikaru 
    466  1.1  hikaru #define	RX_BP_ONN_XXX_63_9			UINT64_C(0xfffffffffffffe00)
    467  1.1  hikaru #define	RX_BP_ONN_MARK				UINT64_C(0x00000000000001ff)
    468  1.1  hikaru 
    469  1.1  hikaru /* RX Backpressure Off Registers */
    470  1.1  hikaru 
    471  1.1  hikaru #define	RX_BP_OFFN_XXX_63_6			UINT64_C(0xffffffffffffffc0)
    472  1.1  hikaru #define	RX_BP_OFFN_MARK				UINT64_C(0x000000000000003f)
    473  1.1  hikaru 
    474  1.1  hikaru /* TX Ports Register */
    475  1.1  hikaru 
    476  1.1  hikaru #define	TX_PRTS_XXX_63_5			UINT64_C(0xffffffffffffffe0)
    477  1.1  hikaru #define	TX_PRTS_PRTS				UINT64_C(0x000000000000001f)
    478  1.1  hikaru 
    479  1.1  hikaru /* TX Interframe Gap Register */
    480  1.1  hikaru 
    481  1.1  hikaru #define	TX_IFG_XXX_63_8				UINT64_C(0xffffffffffffff00)
    482  1.1  hikaru #define	TX_IFG_IFG2				UINT64_C(0x00000000000000f0)
    483  1.1  hikaru #define	TX_IFG_IFG1				UINT64_C(0x000000000000000f)
    484  1.1  hikaru 
    485  1.1  hikaru /* TX Jam Pattern Register */
    486  1.1  hikaru 
    487  1.1  hikaru #define	TX_JAM_XXX_63_8				UINT64_C(0xffffffffffffff00)
    488  1.1  hikaru #define	TX_JAM_JAM				UINT64_C(0x00000000000000ff)
    489  1.1  hikaru 
    490  1.1  hikaru /* TX Collision Attempts Before Dropping Frame Register */
    491  1.1  hikaru 
    492  1.1  hikaru #define	TX_COL_ATTEMPT_XXX_63_5			UINT64_C(0xffffffffffffffe0)
    493  1.1  hikaru #define	TX_COL_ATTEMPT_LIMIT			UINT64_C(0x000000000000001f)
    494  1.1  hikaru 
    495  1.1  hikaru /* TX Pause-Packet DMAC-Field Register */
    496  1.1  hikaru 
    497  1.1  hikaru #define	TX_PAUSE_PKT_DMAC_XXX_63_48		UINT64_C(0xffff000000000000)
    498  1.1  hikaru #define	TX_PAUSE_PKT_DMAC_DMAC			UINT64_C(0x0000ffffffffffff)
    499  1.1  hikaru 
    500  1.1  hikaru /* TX Pause Packet Type Field Register */
    501  1.1  hikaru 
    502  1.1  hikaru #define	TX_PAUSE_PKT_TYPE_XXX_63_16		UINT64_C(0xffffffffffff0000)
    503  1.1  hikaru #define	TX_PAUSE_PKT_TYPE_TYPE			UINT64_C(0x000000000000ffff)
    504  1.1  hikaru 
    505  1.1  hikaru /* TX Override Backpressure Register */
    506  1.1  hikaru 
    507  1.1  hikaru #define	TX_OVR_BP_XXX_63_12			UINT64_C(0xfffffffffffff000)
    508  1.1  hikaru #define	TX_OVR_BP_XXX_11			UINT64_C(0x0000000000000800)
    509  1.1  hikaru #define	TX_OVR_BP_EN				UINT64_C(0x0000000000000700)
    510  1.1  hikaru #define	TX_OVR_BP_XXX_7				UINT64_C(0x0000000000000080)
    511  1.1  hikaru #define	TX_OVR_BP_BP				UINT64_C(0x0000000000000070)
    512  1.1  hikaru #define	TX_OVR_BP_XXX_3				UINT64_C(0x0000000000000008)
    513  1.1  hikaru #define	TX_OVR_BP_IGN_FULL			UINT64_C(0x0000000000000007)
    514  1.1  hikaru 
    515  1.1  hikaru /* TX Override Backpressure Register */
    516  1.1  hikaru 
    517  1.1  hikaru #define	TX_OVR_BP_XXX_63_12			UINT64_C(0xfffffffffffff000)
    518  1.1  hikaru #define	TX_OVR_BP_XXX_11			UINT64_C(0x0000000000000800)
    519  1.1  hikaru #define	TX_OVR_BP_EN				UINT64_C(0x0000000000000700)
    520  1.1  hikaru #define	TX_OVR_BP_XXX_7				UINT64_C(0x0000000000000080)
    521  1.1  hikaru #define	TX_OVR_BP_BP				UINT64_C(0x0000000000000070)
    522  1.1  hikaru #define	TX_OVR_BP_XXX_3				UINT64_C(0x0000000000000008)
    523  1.1  hikaru #define	TX_OVR_BP_IGN_FULL			UINT64_C(0x0000000000000007)
    524  1.1  hikaru 
    525  1.1  hikaru /* TX Backpressure Status Register */
    526  1.1  hikaru 
    527  1.1  hikaru #define	TX_BP_SR_XXX_63_3			UINT64_C(0xfffffffffffffff8)
    528  1.1  hikaru #define	TX_BP_SR_BP				UINT64_C(0x0000000000000007)
    529  1.1  hikaru 
    530  1.1  hikaru /* TX Corrupt Packets Register */
    531  1.1  hikaru 
    532  1.1  hikaru #define	TX_CORRUPT_XXX_63_3			UINT64_C(0xfffffffffffffff8)
    533  1.1  hikaru #define	TX_CORRUPT_CORRUPT			UINT64_C(0x0000000000000007)
    534  1.1  hikaru 
    535  1.1  hikaru /* RX Port State Information Register */
    536  1.1  hikaru 
    537  1.1  hikaru #define	RX_PRT_INFO_XXX_63_19			UINT64_C(0xfffffffffff80000)
    538  1.1  hikaru #define	RX_PRT_INFO_DROP			UINT64_C(0x0000000000070000)
    539  1.1  hikaru #define	RX_PRT_INFO_XXX_15_3			UINT64_C(0x000000000000fff8)
    540  1.1  hikaru #define	RX_PRT_INFO_COMMIT			UINT64_C(0x0000000000000007)
    541  1.1  hikaru 
    542  1.1  hikaru /* TX LFSR Register */
    543  1.1  hikaru 
    544  1.1  hikaru #define	TX_LFSR_XXX_63_16			UINT64_C(0xffffffffffff0000)
    545  1.1  hikaru #define	TX_LFSR_LFSR				UINT64_C(0x000000000000ffff)
    546  1.1  hikaru 
    547  1.1  hikaru /* TX Interrupt Register */
    548  1.1  hikaru 
    549  1.1  hikaru #define	TX_INT_REG_XXX_63_20			UINT64_C(0xfffffffffff00000)
    550  1.1  hikaru #define	TX_INT_REG_XXX_19			UINT64_C(0x0000000000080000)
    551  1.1  hikaru #define	TX_INT_REG_LATE_COL			UINT64_C(0x0000000000070000)
    552  1.1  hikaru #define	TX_INT_REG_XXX_15			UINT64_C(0x0000000000008000)
    553  1.1  hikaru #define	TX_INT_REG_XSDEF			UINT64_C(0x0000000000007000)
    554  1.1  hikaru #define	TX_INT_REG_XXX_11			UINT64_C(0x0000000000000800)
    555  1.1  hikaru #define	TX_INT_REG_XSCOL			UINT64_C(0x0000000000000700)
    556  1.1  hikaru #define	TX_INT_REG_XXX_7_5			UINT64_C(0x00000000000000e0)
    557  1.1  hikaru #define	TX_INT_REG_UNDFLW			UINT64_C(0x000000000000001c)
    558  1.1  hikaru #define	TX_INT_REG_XXX_1			UINT64_C(0x0000000000000002)
    559  1.1  hikaru #define	TX_INT_REG_PKO_NXA			UINT64_C(0x0000000000000001)
    560  1.1  hikaru 
    561  1.1  hikaru /* TX Interrupt Register */
    562  1.1  hikaru 
    563  1.1  hikaru #define	TX_INT_EN_XXX_63_20			UINT64_C(0xfffffffffff00000)
    564  1.1  hikaru #define	TX_INT_EN_XXX_19			UINT64_C(0x0000000000080000)
    565  1.1  hikaru #define	TX_INT_EN_LATE_COL			UINT64_C(0x0000000000070000)
    566  1.1  hikaru #define	TX_INT_EN_XXX_15			UINT64_C(0x0000000000008000)
    567  1.1  hikaru #define	TX_INT_EN_XSDEF				UINT64_C(0x0000000000007000)
    568  1.1  hikaru #define	TX_INT_EN_XXX_11			UINT64_C(0x0000000000000800)
    569  1.1  hikaru #define	TX_INT_EN_XSCOL				UINT64_C(0x0000000000000700)
    570  1.1  hikaru #define	TX_INT_EN_XXX_7_5			UINT64_C(0x00000000000000e0)
    571  1.1  hikaru #define	TX_INT_EN_UNDFLW			UINT64_C(0x000000000000001c)
    572  1.1  hikaru #define	TX_INT_EN_XXX_1				UINT64_C(0x0000000000000002)
    573  1.1  hikaru #define	TX_INT_EN_PKO_NXA			UINT64_C(0x0000000000000001)
    574  1.1  hikaru 
    575  1.1  hikaru /* Address-out-of-Range Error Register */
    576  1.1  hikaru 
    577  1.1  hikaru #define	NXA_ADR_XXX_63_6			UINT64_C(0xffffffffffffffc0)
    578  1.1  hikaru #define	NXA_ADR_PRT				UINT64_C(0x000000000000003f)
    579  1.1  hikaru 
    580  1.1  hikaru /* GMX Miscellaneous Error Register */
    581  1.1  hikaru 
    582  1.1  hikaru #define	BAD_REG_XXX_63_31			UINT64_C(0xffffffff80000000)
    583  1.1  hikaru #define	BAD_REG_INB_NXA				UINT64_C(0x0000000078000000)
    584  1.1  hikaru #define	BAD_REG_STATOVR				UINT64_C(0x0000000004000000)
    585  1.1  hikaru #define	BAD_REG_XXX_25				UINT64_C(0x0000000002000000)
    586  1.1  hikaru #define	BAD_REG_LOSTSTAT			UINT64_C(0x0000000001c00000)
    587  1.1  hikaru #define	BAD_REG_XXX_21_18			UINT64_C(0x00000000003c0000)
    588  1.1  hikaru #define	BAD_REG_XXX_17_5			UINT64_C(0x000000000003ffe0)
    589  1.1  hikaru #define	BAD_REG_OUT_OVR				UINT64_C(0x000000000000001c)
    590  1.1  hikaru #define	BAD_REG_XXX_1_0				UINT64_C(0x0000000000000003)
    591  1.1  hikaru 
    592  1.1  hikaru /* GMX Backpressure Statistics Register */
    593  1.1  hikaru 
    594  1.1  hikaru #define	STAT_BP_XXX_63_17			UINT64_C(0xfffffffffffe0000)
    595  1.1  hikaru #define	STAT_BP_BP				UINT64_C(0x0000000000010000)
    596  1.1  hikaru #define	STAT_BP_CNT				UINT64_C(0x000000000000ffff)
    597  1.1  hikaru 
    598  1.1  hikaru /* Mode Change Mask Registers */
    599  1.1  hikaru 
    600  1.1  hikaru #define	TX_CLK_MSKN_XXX_63_1			UINT64_C(0xfffffffffffffffe)
    601  1.1  hikaru #define	TX_CLK_MSKN_MSK				UINT64_C(0x0000000000000001)
    602  1.1  hikaru 
    603  1.1  hikaru /* GMX RX/TX Status Register */
    604  1.1  hikaru 
    605  1.1  hikaru #define	RX_TX_STATUS_XXX_63_7			UINT64_C(0xffffffffffffff80)
    606  1.1  hikaru #define	RX_TX_STATUS_TX				UINT64_C(0x0000000000000070)
    607  1.1  hikaru #define	RX_TX_STATUS_XXX_3			UINT64_C(0x0000000000000008)
    608  1.1  hikaru #define	RX_TX_STATUS_RX				UINT64_C(0x0000000000000007)
    609  1.1  hikaru 
    610  1.1  hikaru /* Interface Mode Register */
    611  1.1  hikaru 
    612  1.1  hikaru #define	INF_MODE_XXX_63_3			UINT64_C(0xfffffffffffffff8)
    613  1.1  hikaru #define	INF_MODE_P0MII				UINT64_C(0x0000000000000004)
    614  1.1  hikaru #define	INF_MODE_EN				UINT64_C(0x0000000000000002)
    615  1.1  hikaru #define	INF_MODE_TYPE				UINT64_C(0x0000000000000001)
    616  1.5  simonb /* Interface mode, applicable on CN68xx and CN7xxx (?) */
    617  1.5  simonb #define	INF_MODE_MODE				UINT64_C(0x0000000000000070)
    618  1.5  simonb #define	INF_MODE_MODE_SGMII			UINT64_C(0x0000000000000020)
    619  1.5  simonb #define	INF_MODE_MODE_XAUI			UINT64_C(0x0000000000000030)
    620  1.5  simonb 
    621  1.5  simonb #define	MIO_QLM_CFG(x)				(UINT64_C(0x0001180000001590) + (x)*8)
    622  1.5  simonb 
    623  1.5  simonb #define	MIO_QLM_CFG_CFG				UINT64_C(0x000000000000000f)
    624  1.1  hikaru 
    625  1.1  hikaru /* -------------------------------------------------------------------------- */
    626  1.1  hikaru 
    627  1.1  hikaru /* for bus_space(9) */
    628  1.1  hikaru 
    629  1.5  simonb #define	GMX_PORT_NUNITS				(5 * 16)
    630  1.5  simonb #define	GMX_PORT_NUM(g, i)			((g) * 16 + (i))
    631  1.5  simonb #define	GMX_PORT_IFACE(port)			((port) / 16)
    632  1.5  simonb #define	GMX_PORT_INDEX(port)			((port) % 16)
    633  1.5  simonb 
    634  1.5  simonb #define	GMX_BLOCK_SIZE				0x8000000
    635  1.5  simonb #define	GMX_CN68XX_BLOCK_SIZE			0x100000 /* different on CN68XX only */
    636  1.5  simonb 
    637  1.5  simonb #define	GMX0_BASE_PORT0				UINT64_C(0x0001180008000000)
    638  1.5  simonb #define	GMX_PORT_SIZE				0x800
    639  1.5  simonb #define	GMX_IF_SIZE(n)				(GMX_PORT_SIZE * (n))
    640  1.5  simonb #define	GMX_BASE_PORT(n, m) 		/* address of GMX(n) * PORT(m) */ \
    641  1.5  simonb 	(GMX0_BASE_PORT0 + (n) * GMX_BLOCK_SIZE + GMX_IF_SIZE(m))
    642  1.5  simonb #define	GMX_CN68XX_BASE_PORT(n, m) 	/* address of GMX(n) * PORT(m) */ \
    643  1.5  simonb 	(GMX0_BASE_PORT0 + (n) * GMX_CN68XX_BLOCK_SIZE + GMX_IF_SIZE(m))
    644  1.5  simonb 
    645  1.5  simonb /* -------------------------------------------------------------------------- */
    646  1.5  simonb 
    647  1.7  andvar /* Low-level SGMII link control */
    648  1.5  simonb 
    649  1.5  simonb #define	PCS_BASE(g, i)	(UINT64_C(0x00011800b0001000) + 0x8000000 * (g) + 0x400 * (i))
    650  1.5  simonb #define	PCS_SIZE	0x98
    651  1.1  hikaru 
    652  1.5  simonb #define	PCS_MR_CONTROL				0x00
    653  1.5  simonb #define	PCS_MR_STATUS				0x08
    654  1.5  simonb #define	PCS_LINK_TIMER_COUNT			0x40
    655  1.5  simonb #define	PCS_MISC_CTL				0x78
    656  1.5  simonb 
    657  1.5  simonb #define	PCS_MR_CONTROL_RES_16_63		UINT64_C(0xffffffffffff0000)
    658  1.5  simonb #define	PCS_MR_CONTROL_RESET			UINT64_C(0x0000000000008000)
    659  1.5  simonb #define	PCS_MR_CONTROL_LOOPBCK1			UINT64_C(0x0000000000004000)
    660  1.5  simonb #define	PCS_MR_CONTROL_SPDLSB			UINT64_C(0x0000000000002000)
    661  1.5  simonb #define	PCS_MR_CONTROL_AN_EN			UINT64_C(0x0000000000001000)
    662  1.5  simonb #define	PCS_MR_CONTROL_PWR_DN			UINT64_C(0x0000000000000800)
    663  1.5  simonb #define	PCS_MR_CONTROL_RES_10_10		UINT64_C(0x0000000000000400)
    664  1.5  simonb #define	PCS_MR_CONTROL_RST_AN			UINT64_C(0x0000000000000200)
    665  1.5  simonb #define	PCS_MR_CONTROL_DUPLEX			UINT64_C(0x0000000000000100)
    666  1.5  simonb #define	PCS_MR_CONTROL_COLTST			UINT64_C(0x0000000000000080)
    667  1.5  simonb #define	PCS_MR_CONTROL_SPDMSB			UINT64_C(0x0000000000000040)
    668  1.5  simonb #define	PCS_MR_CONTROL_UNI			UINT64_C(0x0000000000000020)
    669  1.5  simonb #define	PCS_MR_CONTROL_RES_0_4			UINT64_C(0x000000000000001f)
    670  1.5  simonb 
    671  1.5  simonb #define	PCS_MR_STATUS_RES_16_63			UINT64_C(0xffffffffffff0000)
    672  1.5  simonb #define	PCS_MR_STATUS_HUN_T4			UINT64_C(0x0000000000008000)
    673  1.5  simonb #define	PCS_MR_STATUS_HUN_XFD			UINT64_C(0x0000000000004000)
    674  1.5  simonb #define	PCS_MR_STATUS_HUN_XHD			UINT64_C(0x0000000000002000)
    675  1.5  simonb #define	PCS_MR_STATUS_TEN_FD			UINT64_C(0x0000000000001000)
    676  1.5  simonb #define	PCS_MR_STATUS_TEN_HD			UINT64_C(0x0000000000000800)
    677  1.5  simonb #define	PCS_MR_STATUS_HUN_T2FD			UINT64_C(0x0000000000000400)
    678  1.5  simonb #define	PCS_MR_STATUS_HUN_T2HD			UINT64_C(0x0000000000000200)
    679  1.5  simonb #define	PCS_MR_STATUS_EXT_ST			UINT64_C(0x0000000000000100)
    680  1.5  simonb #define	PCS_MR_STATUS_RES_7_7			UINT64_C(0x0000000000000080)
    681  1.5  simonb #define	PCS_MR_STATUS_PRB_SUP			UINT64_C(0x0000000000000040)
    682  1.5  simonb #define	PCS_MR_STATUS_AN_CPT			UINT64_C(0x0000000000000020)
    683  1.5  simonb #define	PCS_MR_STATUS_RM_FLT			UINT64_C(0x0000000000000010)
    684  1.5  simonb #define	PCS_MR_STATUS_AN_ABIL			UINT64_C(0x0000000000000008)
    685  1.5  simonb #define	PCS_MR_STATUS_LNK_ST			UINT64_C(0x0000000000000004)
    686  1.5  simonb #define	PCS_MR_STATUS_RES_1_1			UINT64_C(0x0000000000000002)
    687  1.5  simonb #define	PCS_MR_STATUS_EXTND			UINT64_C(0x0000000000000001)
    688  1.5  simonb 
    689  1.5  simonb #define	PCS_LINK_TIMER_COUNT_MASK		UINT64_C(0x000000000000ffff)
    690  1.5  simonb 
    691  1.5  simonb #define	PCS_MISC_CTL_SGMII			UINT64_C(0x0000000000001000)
    692  1.5  simonb #define	PCS_MISC_CTL_GMXENO			UINT64_C(0x0000000000000800)
    693  1.5  simonb #define	PCS_MISC_CTL_LOOPBCK2			UINT64_C(0x0000000000000400)
    694  1.5  simonb #define	PCS_MISC_CTL_MAC_PHY			UINT64_C(0x0000000000000200)
    695  1.5  simonb #define	PCS_MISC_CTL_MODE			UINT64_C(0x0000000000000100)
    696  1.5  simonb #define	PCS_MISC_CTL_AN_OVRD			UINT64_C(0x0000000000000080)
    697  1.5  simonb #define	PCS_MISC_CTL_SAMP_PT			UINT64_C(0x000000000000007f)
    698  1.1  hikaru 
    699  1.1  hikaru #endif /* _OCTEON_GMXREG_H_ */
    700