xref: /aosp_15_r20/external/ethtool/sfc.c (revision 1b481fc3bb1b45d4cf28d1ec12969dc1055f555d)
1*1b481fc3SMaciej Żenczykowski /****************************************************************************
2*1b481fc3SMaciej Żenczykowski  * Support for Solarflare Solarstorm network controllers and boards
3*1b481fc3SMaciej Żenczykowski  * Copyright 2010-2012 Solarflare Communications Inc.
4*1b481fc3SMaciej Żenczykowski  *
5*1b481fc3SMaciej Żenczykowski  * This program is free software; you can redistribute it and/or modify it
6*1b481fc3SMaciej Żenczykowski  * under the terms of the GNU General Public License version 2 as published
7*1b481fc3SMaciej Żenczykowski  * by the Free Software Foundation, incorporated herein by reference.
8*1b481fc3SMaciej Żenczykowski  */
9*1b481fc3SMaciej Żenczykowski 
10*1b481fc3SMaciej Żenczykowski #include <stdio.h>
11*1b481fc3SMaciej Żenczykowski #include <string.h>
12*1b481fc3SMaciej Żenczykowski #include "internal.h"
13*1b481fc3SMaciej Żenczykowski 
14*1b481fc3SMaciej Żenczykowski #ifndef ARRAY_SIZE
15*1b481fc3SMaciej Żenczykowski #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
16*1b481fc3SMaciej Żenczykowski #endif
17*1b481fc3SMaciej Żenczykowski 
18*1b481fc3SMaciej Żenczykowski /* Falcon architecture register definitions
19*1b481fc3SMaciej Żenczykowski  * (from linux/drivers/net/ethernet/sfc/farch_regs.h)
20*1b481fc3SMaciej Żenczykowski  */
21*1b481fc3SMaciej Żenczykowski 
22*1b481fc3SMaciej Żenczykowski /* ADR_REGION_REG: Address region register */
23*1b481fc3SMaciej Żenczykowski #define	FR_AZ_ADR_REGION 0x00000000
24*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_ADR_REGION3_LBN 96
25*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_ADR_REGION3_WIDTH 18
26*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_ADR_REGION2_LBN 64
27*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_ADR_REGION2_WIDTH 18
28*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_ADR_REGION1_LBN 32
29*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_ADR_REGION1_WIDTH 18
30*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_ADR_REGION0_LBN 0
31*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_ADR_REGION0_WIDTH 18
32*1b481fc3SMaciej Żenczykowski 
33*1b481fc3SMaciej Żenczykowski /* INT_EN_REG_KER: Kernel driver Interrupt enable register */
34*1b481fc3SMaciej Żenczykowski #define	FR_AZ_INT_EN_KER 0x00000010
35*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_KER_INT_LEVE_SEL_LBN 8
36*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_KER_INT_LEVE_SEL_WIDTH 6
37*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_KER_INT_CHAR_LBN 4
38*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_KER_INT_CHAR_WIDTH 1
39*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_KER_INT_KER_LBN 3
40*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_KER_INT_KER_WIDTH 1
41*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_DRV_INT_EN_KER_LBN 0
42*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_DRV_INT_EN_KER_WIDTH 1
43*1b481fc3SMaciej Żenczykowski 
44*1b481fc3SMaciej Żenczykowski /* INT_EN_REG_CHAR: Char Driver interrupt enable register */
45*1b481fc3SMaciej Żenczykowski #define	FR_BZ_INT_EN_CHAR 0x00000020
46*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_CHAR_INT_LEVE_SEL_LBN 8
47*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_CHAR_INT_LEVE_SEL_WIDTH 6
48*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_CHAR_INT_CHAR_LBN 4
49*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_CHAR_INT_CHAR_WIDTH 1
50*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_CHAR_INT_KER_LBN 3
51*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_CHAR_INT_KER_WIDTH 1
52*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_DRV_INT_EN_CHAR_LBN 0
53*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_DRV_INT_EN_CHAR_WIDTH 1
54*1b481fc3SMaciej Żenczykowski 
55*1b481fc3SMaciej Żenczykowski /* INT_ADR_REG_KER: Interrupt host address for Kernel driver */
56*1b481fc3SMaciej Żenczykowski #define	FR_AZ_INT_ADR_KER 0x00000030
57*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_NORM_INT_VEC_DIS_KER_LBN 64
58*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_NORM_INT_VEC_DIS_KER_WIDTH 1
59*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_INT_ADR_KER_LBN 0
60*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_INT_ADR_KER_WIDTH 64
61*1b481fc3SMaciej Żenczykowski 
62*1b481fc3SMaciej Żenczykowski /* INT_ADR_REG_CHAR: Interrupt host address for Char driver */
63*1b481fc3SMaciej Żenczykowski #define	FR_BZ_INT_ADR_CHAR 0x00000040
64*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_NORM_INT_VEC_DIS_CHAR_LBN 64
65*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_NORM_INT_VEC_DIS_CHAR_WIDTH 1
66*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_INT_ADR_CHAR_LBN 0
67*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_INT_ADR_CHAR_WIDTH 64
68*1b481fc3SMaciej Żenczykowski 
69*1b481fc3SMaciej Żenczykowski /* INT_ACK_KER: Kernel interrupt acknowledge register */
70*1b481fc3SMaciej Żenczykowski #define	FR_AA_INT_ACK_KER 0x00000050
71*1b481fc3SMaciej Żenczykowski #define	FRF_AA_INT_ACK_KER_FIELD_LBN 0
72*1b481fc3SMaciej Żenczykowski #define	FRF_AA_INT_ACK_KER_FIELD_WIDTH 32
73*1b481fc3SMaciej Żenczykowski 
74*1b481fc3SMaciej Żenczykowski /* INT_ISR0_REG: Function 0 Interrupt Acknowledge Status register */
75*1b481fc3SMaciej Żenczykowski #define	FR_BZ_INT_ISR0 0x00000090
76*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_INT_ISR_REG_LBN 0
77*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_INT_ISR_REG_WIDTH 64
78*1b481fc3SMaciej Żenczykowski 
79*1b481fc3SMaciej Żenczykowski /* HW_INIT_REG: Hardware initialization register */
80*1b481fc3SMaciej Żenczykowski #define	FR_AZ_HW_INIT 0x000000c0
81*1b481fc3SMaciej Żenczykowski #define	FRF_BB_BDMRD_CPLF_FULL_LBN 124
82*1b481fc3SMaciej Żenczykowski #define	FRF_BB_BDMRD_CPLF_FULL_WIDTH 1
83*1b481fc3SMaciej Żenczykowski #define	FRF_BB_PCIE_CPL_TIMEOUT_CTRL_LBN 121
84*1b481fc3SMaciej Żenczykowski #define	FRF_BB_PCIE_CPL_TIMEOUT_CTRL_WIDTH 3
85*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TX_MRG_TAGS_LBN 120
86*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TX_MRG_TAGS_WIDTH 1
87*1b481fc3SMaciej Żenczykowski #define	FRF_AB_TRGT_MASK_ALL_LBN 100
88*1b481fc3SMaciej Żenczykowski #define	FRF_AB_TRGT_MASK_ALL_WIDTH 1
89*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_DOORBELL_DROP_LBN 92
90*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_DOORBELL_DROP_WIDTH 8
91*1b481fc3SMaciej Żenczykowski #define	FRF_AB_TX_RREQ_MASK_EN_LBN 76
92*1b481fc3SMaciej Żenczykowski #define	FRF_AB_TX_RREQ_MASK_EN_WIDTH 1
93*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PE_EIDLE_DIS_LBN 75
94*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PE_EIDLE_DIS_WIDTH 1
95*1b481fc3SMaciej Żenczykowski #define	FRF_AA_FC_BLOCKING_EN_LBN 45
96*1b481fc3SMaciej Żenczykowski #define	FRF_AA_FC_BLOCKING_EN_WIDTH 1
97*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_B2B_REQ_EN_LBN 45
98*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_B2B_REQ_EN_WIDTH 1
99*1b481fc3SMaciej Żenczykowski #define	FRF_AA_B2B_REQ_EN_LBN 44
100*1b481fc3SMaciej Żenczykowski #define	FRF_AA_B2B_REQ_EN_WIDTH 1
101*1b481fc3SMaciej Żenczykowski #define	FRF_BB_FC_BLOCKING_EN_LBN 44
102*1b481fc3SMaciej Żenczykowski #define	FRF_BB_FC_BLOCKING_EN_WIDTH 1
103*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_POST_WR_MASK_LBN 40
104*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_POST_WR_MASK_WIDTH 4
105*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TLP_TC_LBN 34
106*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TLP_TC_WIDTH 3
107*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TLP_ATTR_LBN 32
108*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TLP_ATTR_WIDTH 2
109*1b481fc3SMaciej Żenczykowski #define	FRF_AB_INTB_VEC_LBN 24
110*1b481fc3SMaciej Żenczykowski #define	FRF_AB_INTB_VEC_WIDTH 5
111*1b481fc3SMaciej Żenczykowski #define	FRF_AB_INTA_VEC_LBN 16
112*1b481fc3SMaciej Żenczykowski #define	FRF_AB_INTA_VEC_WIDTH 5
113*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_WD_TIMER_LBN 8
114*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_WD_TIMER_WIDTH 8
115*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_US_DISABLE_LBN 5
116*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_US_DISABLE_WIDTH 1
117*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TLP_EP_LBN 4
118*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TLP_EP_WIDTH 1
119*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_ATTR_SEL_LBN 3
120*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_ATTR_SEL_WIDTH 1
121*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TD_SEL_LBN 1
122*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TD_SEL_WIDTH 1
123*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TLP_TD_LBN 0
124*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TLP_TD_WIDTH 1
125*1b481fc3SMaciej Żenczykowski 
126*1b481fc3SMaciej Żenczykowski /* EE_SPI_HCMD_REG: SPI host command register */
127*1b481fc3SMaciej Żenczykowski #define	FR_AB_EE_SPI_HCMD 0x00000100
128*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_SPI_HCMD_CMD_EN_LBN 31
129*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_SPI_HCMD_CMD_EN_WIDTH 1
130*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_WR_TIMER_ACTIVE_LBN 28
131*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_WR_TIMER_ACTIVE_WIDTH 1
132*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_SPI_HCMD_SF_SEL_LBN 24
133*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_SPI_HCMD_SF_SEL_WIDTH 1
134*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_SPI_HCMD_DABCNT_LBN 16
135*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_SPI_HCMD_DABCNT_WIDTH 5
136*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_SPI_HCMD_READ_LBN 15
137*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_SPI_HCMD_READ_WIDTH 1
138*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_SPI_HCMD_DUBCNT_LBN 12
139*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_SPI_HCMD_DUBCNT_WIDTH 2
140*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_SPI_HCMD_ADBCNT_LBN 8
141*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_SPI_HCMD_ADBCNT_WIDTH 2
142*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_SPI_HCMD_ENC_LBN 0
143*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_SPI_HCMD_ENC_WIDTH 8
144*1b481fc3SMaciej Żenczykowski 
145*1b481fc3SMaciej Żenczykowski /* USR_EV_CFG: User Level Event Configuration register */
146*1b481fc3SMaciej Żenczykowski #define	FR_CZ_USR_EV_CFG 0x00000100
147*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_USREV_DIS_LBN 16
148*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_USREV_DIS_WIDTH 1
149*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_DFLT_EVQ_LBN 0
150*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_DFLT_EVQ_WIDTH 10
151*1b481fc3SMaciej Żenczykowski 
152*1b481fc3SMaciej Żenczykowski /* EE_SPI_HADR_REG: SPI host address register */
153*1b481fc3SMaciej Żenczykowski #define	FR_AB_EE_SPI_HADR 0x00000110
154*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_SPI_HADR_DUBYTE_LBN 24
155*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_SPI_HADR_DUBYTE_WIDTH 8
156*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_SPI_HADR_ADR_LBN 0
157*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_SPI_HADR_ADR_WIDTH 24
158*1b481fc3SMaciej Żenczykowski 
159*1b481fc3SMaciej Żenczykowski /* EE_SPI_HDATA_REG: SPI host data register */
160*1b481fc3SMaciej Żenczykowski #define	FR_AB_EE_SPI_HDATA 0x00000120
161*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_SPI_HDATA3_LBN 96
162*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_SPI_HDATA3_WIDTH 32
163*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_SPI_HDATA2_LBN 64
164*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_SPI_HDATA2_WIDTH 32
165*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_SPI_HDATA1_LBN 32
166*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_SPI_HDATA1_WIDTH 32
167*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_SPI_HDATA0_LBN 0
168*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_SPI_HDATA0_WIDTH 32
169*1b481fc3SMaciej Żenczykowski 
170*1b481fc3SMaciej Żenczykowski /* EE_BASE_PAGE_REG: Expansion ROM base mirror register */
171*1b481fc3SMaciej Żenczykowski #define	FR_AB_EE_BASE_PAGE 0x00000130
172*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_EXPROM_MASK_LBN 16
173*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_EXPROM_MASK_WIDTH 13
174*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_EXP_ROM_WINDOW_BASE_LBN 0
175*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_EXP_ROM_WINDOW_BASE_WIDTH 13
176*1b481fc3SMaciej Żenczykowski 
177*1b481fc3SMaciej Żenczykowski /* EE_VPD_CFG0_REG: SPI/VPD configuration register 0 */
178*1b481fc3SMaciej Żenczykowski #define	FR_AB_EE_VPD_CFG0 0x00000140
179*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_SF_FASTRD_EN_LBN 127
180*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_SF_FASTRD_EN_WIDTH 1
181*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_SF_CLOCK_DIV_LBN 120
182*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_SF_CLOCK_DIV_WIDTH 7
183*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_VPD_WIP_POLL_LBN 119
184*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_VPD_WIP_POLL_WIDTH 1
185*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_EE_CLOCK_DIV_LBN 112
186*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_EE_CLOCK_DIV_WIDTH 7
187*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_EE_WR_TMR_VALUE_LBN 96
188*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_EE_WR_TMR_VALUE_WIDTH 16
189*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_VPDW_LENGTH_LBN 80
190*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_VPDW_LENGTH_WIDTH 15
191*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_VPDW_BASE_LBN 64
192*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_VPDW_BASE_WIDTH 15
193*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_VPD_WR_CMD_EN_LBN 56
194*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_VPD_WR_CMD_EN_WIDTH 8
195*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_VPD_BASE_LBN 32
196*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_VPD_BASE_WIDTH 24
197*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_VPD_LENGTH_LBN 16
198*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_VPD_LENGTH_WIDTH 15
199*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_VPD_AD_SIZE_LBN 8
200*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_VPD_AD_SIZE_WIDTH 5
201*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_VPD_ACCESS_ON_LBN 5
202*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_VPD_ACCESS_ON_WIDTH 1
203*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_VPD_ACCESS_BLOCK_LBN 4
204*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_VPD_ACCESS_BLOCK_WIDTH 1
205*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_VPD_DEV_SF_SEL_LBN 2
206*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_VPD_DEV_SF_SEL_WIDTH 1
207*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_VPD_EN_AD9_MODE_LBN 1
208*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_VPD_EN_AD9_MODE_WIDTH 1
209*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_VPD_EN_LBN 0
210*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_VPD_EN_WIDTH 1
211*1b481fc3SMaciej Żenczykowski 
212*1b481fc3SMaciej Żenczykowski /* EE_VPD_SW_CNTL_REG: VPD access SW control register */
213*1b481fc3SMaciej Żenczykowski #define	FR_AB_EE_VPD_SW_CNTL 0x00000150
214*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_VPD_CYCLE_PENDING_LBN 31
215*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_VPD_CYCLE_PENDING_WIDTH 1
216*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_VPD_CYC_WRITE_LBN 28
217*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_VPD_CYC_WRITE_WIDTH 1
218*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_VPD_CYC_ADR_LBN 0
219*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_VPD_CYC_ADR_WIDTH 15
220*1b481fc3SMaciej Żenczykowski 
221*1b481fc3SMaciej Żenczykowski /* EE_VPD_SW_DATA_REG: VPD access SW data register */
222*1b481fc3SMaciej Żenczykowski #define	FR_AB_EE_VPD_SW_DATA 0x00000160
223*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_VPD_CYC_DAT_LBN 0
224*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_VPD_CYC_DAT_WIDTH 32
225*1b481fc3SMaciej Żenczykowski 
226*1b481fc3SMaciej Żenczykowski /* PBMX_DBG_IADDR_REG: Capture Module address register */
227*1b481fc3SMaciej Żenczykowski #define	FR_CZ_PBMX_DBG_IADDR 0x000001f0
228*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_PBMX_DBG_IADDR_LBN 0
229*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_PBMX_DBG_IADDR_WIDTH 32
230*1b481fc3SMaciej Żenczykowski 
231*1b481fc3SMaciej Żenczykowski /* PCIE_CORE_INDIRECT_REG: Indirect Access to PCIE Core registers */
232*1b481fc3SMaciej Żenczykowski #define	FR_BB_PCIE_CORE_INDIRECT 0x000001f0
233*1b481fc3SMaciej Żenczykowski #define	FRF_BB_PCIE_CORE_TARGET_DATA_LBN 32
234*1b481fc3SMaciej Żenczykowski #define	FRF_BB_PCIE_CORE_TARGET_DATA_WIDTH 32
235*1b481fc3SMaciej Żenczykowski #define	FRF_BB_PCIE_CORE_INDIRECT_ACCESS_DIR_LBN 15
236*1b481fc3SMaciej Żenczykowski #define	FRF_BB_PCIE_CORE_INDIRECT_ACCESS_DIR_WIDTH 1
237*1b481fc3SMaciej Żenczykowski #define	FRF_BB_PCIE_CORE_TARGET_REG_ADRS_LBN 0
238*1b481fc3SMaciej Żenczykowski #define	FRF_BB_PCIE_CORE_TARGET_REG_ADRS_WIDTH 12
239*1b481fc3SMaciej Żenczykowski 
240*1b481fc3SMaciej Żenczykowski /* PBMX_DBG_IDATA_REG: Capture Module data register */
241*1b481fc3SMaciej Żenczykowski #define	FR_CZ_PBMX_DBG_IDATA 0x000001f8
242*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_PBMX_DBG_IDATA_LBN 0
243*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_PBMX_DBG_IDATA_WIDTH 64
244*1b481fc3SMaciej Żenczykowski 
245*1b481fc3SMaciej Żenczykowski /* NIC_STAT_REG: NIC status register */
246*1b481fc3SMaciej Żenczykowski #define	FR_AB_NIC_STAT 0x00000200
247*1b481fc3SMaciej Żenczykowski #define	FRF_BB_AER_DIS_LBN 34
248*1b481fc3SMaciej Żenczykowski #define	FRF_BB_AER_DIS_WIDTH 1
249*1b481fc3SMaciej Żenczykowski #define	FRF_BB_EE_STRAP_EN_LBN 31
250*1b481fc3SMaciej Żenczykowski #define	FRF_BB_EE_STRAP_EN_WIDTH 1
251*1b481fc3SMaciej Żenczykowski #define	FRF_BB_EE_STRAP_LBN 24
252*1b481fc3SMaciej Żenczykowski #define	FRF_BB_EE_STRAP_WIDTH 4
253*1b481fc3SMaciej Żenczykowski #define	FRF_BB_REVISION_ID_LBN 17
254*1b481fc3SMaciej Żenczykowski #define	FRF_BB_REVISION_ID_WIDTH 7
255*1b481fc3SMaciej Żenczykowski #define	FRF_AB_ONCHIP_SRAM_LBN 16
256*1b481fc3SMaciej Żenczykowski #define	FRF_AB_ONCHIP_SRAM_WIDTH 1
257*1b481fc3SMaciej Żenczykowski #define	FRF_AB_SF_PRST_LBN 9
258*1b481fc3SMaciej Żenczykowski #define	FRF_AB_SF_PRST_WIDTH 1
259*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_PRST_LBN 8
260*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_PRST_WIDTH 1
261*1b481fc3SMaciej Żenczykowski #define	FRF_AB_ATE_MODE_LBN 3
262*1b481fc3SMaciej Żenczykowski #define	FRF_AB_ATE_MODE_WIDTH 1
263*1b481fc3SMaciej Żenczykowski #define	FRF_AB_STRAP_PINS_LBN 0
264*1b481fc3SMaciej Żenczykowski #define	FRF_AB_STRAP_PINS_WIDTH 3
265*1b481fc3SMaciej Żenczykowski 
266*1b481fc3SMaciej Żenczykowski /* GPIO_CTL_REG: GPIO control register */
267*1b481fc3SMaciej Żenczykowski #define	FR_AB_GPIO_CTL 0x00000210
268*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO_OUT3_LBN 112
269*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO_OUT3_WIDTH 16
270*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO_IN3_LBN 104
271*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO_IN3_WIDTH 8
272*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO_PWRUP_VALUE3_LBN 96
273*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO_PWRUP_VALUE3_WIDTH 8
274*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO_OUT2_LBN 80
275*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO_OUT2_WIDTH 16
276*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO_IN2_LBN 72
277*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO_IN2_WIDTH 8
278*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO_PWRUP_VALUE2_LBN 64
279*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO_PWRUP_VALUE2_WIDTH 8
280*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO15_OEN_LBN 63
281*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO15_OEN_WIDTH 1
282*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO14_OEN_LBN 62
283*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO14_OEN_WIDTH 1
284*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO13_OEN_LBN 61
285*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO13_OEN_WIDTH 1
286*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO12_OEN_LBN 60
287*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO12_OEN_WIDTH 1
288*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO11_OEN_LBN 59
289*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO11_OEN_WIDTH 1
290*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO10_OEN_LBN 58
291*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO10_OEN_WIDTH 1
292*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO9_OEN_LBN 57
293*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO9_OEN_WIDTH 1
294*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO8_OEN_LBN 56
295*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO8_OEN_WIDTH 1
296*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO15_OUT_LBN 55
297*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO15_OUT_WIDTH 1
298*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO14_OUT_LBN 54
299*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO14_OUT_WIDTH 1
300*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO13_OUT_LBN 53
301*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO13_OUT_WIDTH 1
302*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO12_OUT_LBN 52
303*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO12_OUT_WIDTH 1
304*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO11_OUT_LBN 51
305*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO11_OUT_WIDTH 1
306*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO10_OUT_LBN 50
307*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO10_OUT_WIDTH 1
308*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO9_OUT_LBN 49
309*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO9_OUT_WIDTH 1
310*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO8_OUT_LBN 48
311*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO8_OUT_WIDTH 1
312*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO15_IN_LBN 47
313*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO15_IN_WIDTH 1
314*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO14_IN_LBN 46
315*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO14_IN_WIDTH 1
316*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO13_IN_LBN 45
317*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO13_IN_WIDTH 1
318*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO12_IN_LBN 44
319*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO12_IN_WIDTH 1
320*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO11_IN_LBN 43
321*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO11_IN_WIDTH 1
322*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO10_IN_LBN 42
323*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO10_IN_WIDTH 1
324*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO9_IN_LBN 41
325*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO9_IN_WIDTH 1
326*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO8_IN_LBN 40
327*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO8_IN_WIDTH 1
328*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO15_PWRUP_VALUE_LBN 39
329*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO15_PWRUP_VALUE_WIDTH 1
330*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO14_PWRUP_VALUE_LBN 38
331*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO14_PWRUP_VALUE_WIDTH 1
332*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO13_PWRUP_VALUE_LBN 37
333*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO13_PWRUP_VALUE_WIDTH 1
334*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO12_PWRUP_VALUE_LBN 36
335*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO12_PWRUP_VALUE_WIDTH 1
336*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO11_PWRUP_VALUE_LBN 35
337*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO11_PWRUP_VALUE_WIDTH 1
338*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO10_PWRUP_VALUE_LBN 34
339*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO10_PWRUP_VALUE_WIDTH 1
340*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO9_PWRUP_VALUE_LBN 33
341*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO9_PWRUP_VALUE_WIDTH 1
342*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO8_PWRUP_VALUE_LBN 32
343*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO8_PWRUP_VALUE_WIDTH 1
344*1b481fc3SMaciej Żenczykowski #define	FRF_AB_CLK156_OUT_EN_LBN 31
345*1b481fc3SMaciej Żenczykowski #define	FRF_AB_CLK156_OUT_EN_WIDTH 1
346*1b481fc3SMaciej Żenczykowski #define	FRF_AB_USE_NIC_CLK_LBN 30
347*1b481fc3SMaciej Żenczykowski #define	FRF_AB_USE_NIC_CLK_WIDTH 1
348*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO5_OEN_LBN 29
349*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO5_OEN_WIDTH 1
350*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO4_OEN_LBN 28
351*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO4_OEN_WIDTH 1
352*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO3_OEN_LBN 27
353*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO3_OEN_WIDTH 1
354*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO2_OEN_LBN 26
355*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO2_OEN_WIDTH 1
356*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO1_OEN_LBN 25
357*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO1_OEN_WIDTH 1
358*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO0_OEN_LBN 24
359*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO0_OEN_WIDTH 1
360*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO7_OUT_LBN 23
361*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO7_OUT_WIDTH 1
362*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO6_OUT_LBN 22
363*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO6_OUT_WIDTH 1
364*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO5_OUT_LBN 21
365*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO5_OUT_WIDTH 1
366*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO4_OUT_LBN 20
367*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO4_OUT_WIDTH 1
368*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO3_OUT_LBN 19
369*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO3_OUT_WIDTH 1
370*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO2_OUT_LBN 18
371*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO2_OUT_WIDTH 1
372*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO1_OUT_LBN 17
373*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO1_OUT_WIDTH 1
374*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO0_OUT_LBN 16
375*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO0_OUT_WIDTH 1
376*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO7_IN_LBN 15
377*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO7_IN_WIDTH 1
378*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO6_IN_LBN 14
379*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO6_IN_WIDTH 1
380*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO5_IN_LBN 13
381*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO5_IN_WIDTH 1
382*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO4_IN_LBN 12
383*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO4_IN_WIDTH 1
384*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO3_IN_LBN 11
385*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO3_IN_WIDTH 1
386*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO2_IN_LBN 10
387*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO2_IN_WIDTH 1
388*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO1_IN_LBN 9
389*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO1_IN_WIDTH 1
390*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO0_IN_LBN 8
391*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO0_IN_WIDTH 1
392*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO7_PWRUP_VALUE_LBN 7
393*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO7_PWRUP_VALUE_WIDTH 1
394*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO6_PWRUP_VALUE_LBN 6
395*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO6_PWRUP_VALUE_WIDTH 1
396*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO5_PWRUP_VALUE_LBN 5
397*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO5_PWRUP_VALUE_WIDTH 1
398*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO4_PWRUP_VALUE_LBN 4
399*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO4_PWRUP_VALUE_WIDTH 1
400*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO3_PWRUP_VALUE_LBN 3
401*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO3_PWRUP_VALUE_WIDTH 1
402*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO2_PWRUP_VALUE_LBN 2
403*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO2_PWRUP_VALUE_WIDTH 1
404*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO1_PWRUP_VALUE_LBN 1
405*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO1_PWRUP_VALUE_WIDTH 1
406*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO0_PWRUP_VALUE_LBN 0
407*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GPIO0_PWRUP_VALUE_WIDTH 1
408*1b481fc3SMaciej Żenczykowski 
409*1b481fc3SMaciej Żenczykowski /* GLB_CTL_REG: Global control register */
410*1b481fc3SMaciej Żenczykowski #define	FR_AB_GLB_CTL 0x00000220
411*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EXT_PHY_RST_CTL_LBN 63
412*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EXT_PHY_RST_CTL_WIDTH 1
413*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XAUI_SD_RST_CTL_LBN 62
414*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XAUI_SD_RST_CTL_WIDTH 1
415*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_SD_RST_CTL_LBN 61
416*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_SD_RST_CTL_WIDTH 1
417*1b481fc3SMaciej Żenczykowski #define	FRF_AA_PCIX_RST_CTL_LBN 60
418*1b481fc3SMaciej Żenczykowski #define	FRF_AA_PCIX_RST_CTL_WIDTH 1
419*1b481fc3SMaciej Żenczykowski #define	FRF_BB_BIU_RST_CTL_LBN 60
420*1b481fc3SMaciej Żenczykowski #define	FRF_BB_BIU_RST_CTL_WIDTH 1
421*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_STKY_RST_CTL_LBN 59
422*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_STKY_RST_CTL_WIDTH 1
423*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_NSTKY_RST_CTL_LBN 58
424*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_NSTKY_RST_CTL_WIDTH 1
425*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_CORE_RST_CTL_LBN 57
426*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_CORE_RST_CTL_WIDTH 1
427*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XGRX_RST_CTL_LBN 56
428*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XGRX_RST_CTL_WIDTH 1
429*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XGTX_RST_CTL_LBN 55
430*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XGTX_RST_CTL_WIDTH 1
431*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EM_RST_CTL_LBN 54
432*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EM_RST_CTL_WIDTH 1
433*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EV_RST_CTL_LBN 53
434*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EV_RST_CTL_WIDTH 1
435*1b481fc3SMaciej Żenczykowski #define	FRF_AB_SR_RST_CTL_LBN 52
436*1b481fc3SMaciej Żenczykowski #define	FRF_AB_SR_RST_CTL_WIDTH 1
437*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RX_RST_CTL_LBN 51
438*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RX_RST_CTL_WIDTH 1
439*1b481fc3SMaciej Żenczykowski #define	FRF_AB_TX_RST_CTL_LBN 50
440*1b481fc3SMaciej Żenczykowski #define	FRF_AB_TX_RST_CTL_WIDTH 1
441*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_RST_CTL_LBN 49
442*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EE_RST_CTL_WIDTH 1
443*1b481fc3SMaciej Żenczykowski #define	FRF_AB_CS_RST_CTL_LBN 48
444*1b481fc3SMaciej Żenczykowski #define	FRF_AB_CS_RST_CTL_WIDTH 1
445*1b481fc3SMaciej Żenczykowski #define	FRF_AB_HOT_RST_CTL_LBN 40
446*1b481fc3SMaciej Żenczykowski #define	FRF_AB_HOT_RST_CTL_WIDTH 2
447*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RST_EXT_PHY_LBN 31
448*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RST_EXT_PHY_WIDTH 1
449*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RST_XAUI_SD_LBN 30
450*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RST_XAUI_SD_WIDTH 1
451*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RST_PCIE_SD_LBN 29
452*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RST_PCIE_SD_WIDTH 1
453*1b481fc3SMaciej Żenczykowski #define	FRF_AA_RST_PCIX_LBN 28
454*1b481fc3SMaciej Żenczykowski #define	FRF_AA_RST_PCIX_WIDTH 1
455*1b481fc3SMaciej Żenczykowski #define	FRF_BB_RST_BIU_LBN 28
456*1b481fc3SMaciej Żenczykowski #define	FRF_BB_RST_BIU_WIDTH 1
457*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RST_PCIE_STKY_LBN 27
458*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RST_PCIE_STKY_WIDTH 1
459*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RST_PCIE_NSTKY_LBN 26
460*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RST_PCIE_NSTKY_WIDTH 1
461*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RST_PCIE_CORE_LBN 25
462*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RST_PCIE_CORE_WIDTH 1
463*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RST_XGRX_LBN 24
464*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RST_XGRX_WIDTH 1
465*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RST_XGTX_LBN 23
466*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RST_XGTX_WIDTH 1
467*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RST_EM_LBN 22
468*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RST_EM_WIDTH 1
469*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RST_EV_LBN 21
470*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RST_EV_WIDTH 1
471*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RST_SR_LBN 20
472*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RST_SR_WIDTH 1
473*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RST_RX_LBN 19
474*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RST_RX_WIDTH 1
475*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RST_TX_LBN 18
476*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RST_TX_WIDTH 1
477*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RST_SF_LBN 17
478*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RST_SF_WIDTH 1
479*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RST_CS_LBN 16
480*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RST_CS_WIDTH 1
481*1b481fc3SMaciej Żenczykowski #define	FRF_AB_INT_RST_DUR_LBN 4
482*1b481fc3SMaciej Żenczykowski #define	FRF_AB_INT_RST_DUR_WIDTH 3
483*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EXT_PHY_RST_DUR_LBN 1
484*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EXT_PHY_RST_DUR_WIDTH 3
485*1b481fc3SMaciej Żenczykowski #define	FFE_AB_EXT_PHY_RST_DUR_10240US 7
486*1b481fc3SMaciej Żenczykowski #define	FFE_AB_EXT_PHY_RST_DUR_5120US 6
487*1b481fc3SMaciej Żenczykowski #define	FFE_AB_EXT_PHY_RST_DUR_2560US 5
488*1b481fc3SMaciej Żenczykowski #define	FFE_AB_EXT_PHY_RST_DUR_1280US 4
489*1b481fc3SMaciej Żenczykowski #define	FFE_AB_EXT_PHY_RST_DUR_640US 3
490*1b481fc3SMaciej Żenczykowski #define	FFE_AB_EXT_PHY_RST_DUR_320US 2
491*1b481fc3SMaciej Żenczykowski #define	FFE_AB_EXT_PHY_RST_DUR_160US 1
492*1b481fc3SMaciej Żenczykowski #define	FFE_AB_EXT_PHY_RST_DUR_80US 0
493*1b481fc3SMaciej Żenczykowski #define	FRF_AB_SWRST_LBN 0
494*1b481fc3SMaciej Żenczykowski #define	FRF_AB_SWRST_WIDTH 1
495*1b481fc3SMaciej Żenczykowski 
496*1b481fc3SMaciej Żenczykowski /* FATAL_INTR_REG_KER: Fatal interrupt register for Kernel */
497*1b481fc3SMaciej Żenczykowski #define	FR_AZ_FATAL_INTR_KER 0x00000230
498*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_SRAM_PERR_INT_P_KER_EN_LBN 44
499*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_SRAM_PERR_INT_P_KER_EN_WIDTH 1
500*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCI_BUSERR_INT_KER_EN_LBN 43
501*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCI_BUSERR_INT_KER_EN_WIDTH 1
502*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_MBU_PERR_INT_KER_EN_LBN 43
503*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_MBU_PERR_INT_KER_EN_WIDTH 1
504*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_SRAM_OOB_INT_KER_EN_LBN 42
505*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_SRAM_OOB_INT_KER_EN_WIDTH 1
506*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_BUFID_OOB_INT_KER_EN_LBN 41
507*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_BUFID_OOB_INT_KER_EN_WIDTH 1
508*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_MEM_PERR_INT_KER_EN_LBN 40
509*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_MEM_PERR_INT_KER_EN_WIDTH 1
510*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RBUF_OWN_INT_KER_EN_LBN 39
511*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RBUF_OWN_INT_KER_EN_WIDTH 1
512*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TBUF_OWN_INT_KER_EN_LBN 38
513*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TBUF_OWN_INT_KER_EN_WIDTH 1
514*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RDESCQ_OWN_INT_KER_EN_LBN 37
515*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RDESCQ_OWN_INT_KER_EN_WIDTH 1
516*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TDESCQ_OWN_INT_KER_EN_LBN 36
517*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TDESCQ_OWN_INT_KER_EN_WIDTH 1
518*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_OWN_INT_KER_EN_LBN 35
519*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_OWN_INT_KER_EN_WIDTH 1
520*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVF_OFLO_INT_KER_EN_LBN 34
521*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVF_OFLO_INT_KER_EN_WIDTH 1
522*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_ILL_ADR_INT_KER_EN_LBN 33
523*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_ILL_ADR_INT_KER_EN_WIDTH 1
524*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_SRM_PERR_INT_KER_EN_LBN 32
525*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_SRM_PERR_INT_KER_EN_WIDTH 1
526*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_SRAM_PERR_INT_P_KER_LBN 12
527*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_SRAM_PERR_INT_P_KER_WIDTH 1
528*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCI_BUSERR_INT_KER_LBN 11
529*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCI_BUSERR_INT_KER_WIDTH 1
530*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_MBU_PERR_INT_KER_LBN 11
531*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_MBU_PERR_INT_KER_WIDTH 1
532*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_SRAM_OOB_INT_KER_LBN 10
533*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_SRAM_OOB_INT_KER_WIDTH 1
534*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_BUFID_DC_OOB_INT_KER_LBN 9
535*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_BUFID_DC_OOB_INT_KER_WIDTH 1
536*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_MEM_PERR_INT_KER_LBN 8
537*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_MEM_PERR_INT_KER_WIDTH 1
538*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RBUF_OWN_INT_KER_LBN 7
539*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RBUF_OWN_INT_KER_WIDTH 1
540*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TBUF_OWN_INT_KER_LBN 6
541*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TBUF_OWN_INT_KER_WIDTH 1
542*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RDESCQ_OWN_INT_KER_LBN 5
543*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RDESCQ_OWN_INT_KER_WIDTH 1
544*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TDESCQ_OWN_INT_KER_LBN 4
545*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TDESCQ_OWN_INT_KER_WIDTH 1
546*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_OWN_INT_KER_LBN 3
547*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_OWN_INT_KER_WIDTH 1
548*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVF_OFLO_INT_KER_LBN 2
549*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVF_OFLO_INT_KER_WIDTH 1
550*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_ILL_ADR_INT_KER_LBN 1
551*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_ILL_ADR_INT_KER_WIDTH 1
552*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_SRM_PERR_INT_KER_LBN 0
553*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_SRM_PERR_INT_KER_WIDTH 1
554*1b481fc3SMaciej Żenczykowski 
555*1b481fc3SMaciej Żenczykowski /* FATAL_INTR_REG_CHAR: Fatal interrupt register for Char */
556*1b481fc3SMaciej Żenczykowski #define	FR_BZ_FATAL_INTR_CHAR 0x00000240
557*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_SRAM_PERR_INT_P_CHAR_EN_LBN 44
558*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_SRAM_PERR_INT_P_CHAR_EN_WIDTH 1
559*1b481fc3SMaciej Żenczykowski #define	FRF_BB_PCI_BUSERR_INT_CHAR_EN_LBN 43
560*1b481fc3SMaciej Żenczykowski #define	FRF_BB_PCI_BUSERR_INT_CHAR_EN_WIDTH 1
561*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_MBU_PERR_INT_CHAR_EN_LBN 43
562*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_MBU_PERR_INT_CHAR_EN_WIDTH 1
563*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_SRAM_OOB_INT_CHAR_EN_LBN 42
564*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_SRAM_OOB_INT_CHAR_EN_WIDTH 1
565*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_BUFID_OOB_INT_CHAR_EN_LBN 41
566*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_BUFID_OOB_INT_CHAR_EN_WIDTH 1
567*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_MEM_PERR_INT_CHAR_EN_LBN 40
568*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_MEM_PERR_INT_CHAR_EN_WIDTH 1
569*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RBUF_OWN_INT_CHAR_EN_LBN 39
570*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RBUF_OWN_INT_CHAR_EN_WIDTH 1
571*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TBUF_OWN_INT_CHAR_EN_LBN 38
572*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TBUF_OWN_INT_CHAR_EN_WIDTH 1
573*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RDESCQ_OWN_INT_CHAR_EN_LBN 37
574*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RDESCQ_OWN_INT_CHAR_EN_WIDTH 1
575*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TDESCQ_OWN_INT_CHAR_EN_LBN 36
576*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TDESCQ_OWN_INT_CHAR_EN_WIDTH 1
577*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_EVQ_OWN_INT_CHAR_EN_LBN 35
578*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_EVQ_OWN_INT_CHAR_EN_WIDTH 1
579*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_EVF_OFLO_INT_CHAR_EN_LBN 34
580*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_EVF_OFLO_INT_CHAR_EN_WIDTH 1
581*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_ILL_ADR_INT_CHAR_EN_LBN 33
582*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_ILL_ADR_INT_CHAR_EN_WIDTH 1
583*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_SRM_PERR_INT_CHAR_EN_LBN 32
584*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_SRM_PERR_INT_CHAR_EN_WIDTH 1
585*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_SRAM_PERR_INT_P_CHAR_LBN 12
586*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_SRAM_PERR_INT_P_CHAR_WIDTH 1
587*1b481fc3SMaciej Żenczykowski #define	FRF_BB_PCI_BUSERR_INT_CHAR_LBN 11
588*1b481fc3SMaciej Żenczykowski #define	FRF_BB_PCI_BUSERR_INT_CHAR_WIDTH 1
589*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_MBU_PERR_INT_CHAR_LBN 11
590*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_MBU_PERR_INT_CHAR_WIDTH 1
591*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_SRAM_OOB_INT_CHAR_LBN 10
592*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_SRAM_OOB_INT_CHAR_WIDTH 1
593*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_BUFID_DC_OOB_INT_CHAR_LBN 9
594*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_BUFID_DC_OOB_INT_CHAR_WIDTH 1
595*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_MEM_PERR_INT_CHAR_LBN 8
596*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_MEM_PERR_INT_CHAR_WIDTH 1
597*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RBUF_OWN_INT_CHAR_LBN 7
598*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RBUF_OWN_INT_CHAR_WIDTH 1
599*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TBUF_OWN_INT_CHAR_LBN 6
600*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TBUF_OWN_INT_CHAR_WIDTH 1
601*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RDESCQ_OWN_INT_CHAR_LBN 5
602*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RDESCQ_OWN_INT_CHAR_WIDTH 1
603*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TDESCQ_OWN_INT_CHAR_LBN 4
604*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TDESCQ_OWN_INT_CHAR_WIDTH 1
605*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_EVQ_OWN_INT_CHAR_LBN 3
606*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_EVQ_OWN_INT_CHAR_WIDTH 1
607*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_EVF_OFLO_INT_CHAR_LBN 2
608*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_EVF_OFLO_INT_CHAR_WIDTH 1
609*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_ILL_ADR_INT_CHAR_LBN 1
610*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_ILL_ADR_INT_CHAR_WIDTH 1
611*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_SRM_PERR_INT_CHAR_LBN 0
612*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_SRM_PERR_INT_CHAR_WIDTH 1
613*1b481fc3SMaciej Żenczykowski 
614*1b481fc3SMaciej Żenczykowski /* DP_CTRL_REG: Datapath control register */
615*1b481fc3SMaciej Żenczykowski #define	FR_BZ_DP_CTRL 0x00000250
616*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_FLS_EVQ_ID_LBN 0
617*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_FLS_EVQ_ID_WIDTH 12
618*1b481fc3SMaciej Żenczykowski 
619*1b481fc3SMaciej Żenczykowski /* MEM_STAT_REG: Memory status register */
620*1b481fc3SMaciej Żenczykowski #define	FR_AZ_MEM_STAT 0x00000260
621*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MEM_PERR_VEC_LBN 53
622*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MEM_PERR_VEC_WIDTH 38
623*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MBIST_CORR_LBN 38
624*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MBIST_CORR_WIDTH 15
625*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MBIST_ERR_LBN 0
626*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MBIST_ERR_WIDTH 40
627*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_MEM_PERR_VEC_LBN 0
628*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_MEM_PERR_VEC_WIDTH 35
629*1b481fc3SMaciej Żenczykowski 
630*1b481fc3SMaciej Żenczykowski /* CS_DEBUG_REG: Debug register */
631*1b481fc3SMaciej Żenczykowski #define	FR_AZ_CS_DEBUG 0x00000270
632*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GLB_DEBUG2_SEL_LBN 50
633*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GLB_DEBUG2_SEL_WIDTH 3
634*1b481fc3SMaciej Żenczykowski #define	FRF_AB_DEBUG_BLK_SEL2_LBN 47
635*1b481fc3SMaciej Żenczykowski #define	FRF_AB_DEBUG_BLK_SEL2_WIDTH 3
636*1b481fc3SMaciej Żenczykowski #define	FRF_AB_DEBUG_BLK_SEL1_LBN 44
637*1b481fc3SMaciej Żenczykowski #define	FRF_AB_DEBUG_BLK_SEL1_WIDTH 3
638*1b481fc3SMaciej Żenczykowski #define	FRF_AB_DEBUG_BLK_SEL0_LBN 41
639*1b481fc3SMaciej Żenczykowski #define	FRF_AB_DEBUG_BLK_SEL0_WIDTH 3
640*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_CS_PORT_NUM_LBN 40
641*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_CS_PORT_NUM_WIDTH 2
642*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MISC_DEBUG_ADDR_LBN 36
643*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MISC_DEBUG_ADDR_WIDTH 5
644*1b481fc3SMaciej Żenczykowski #define	FRF_AB_SERDES_DEBUG_ADDR_LBN 31
645*1b481fc3SMaciej Żenczykowski #define	FRF_AB_SERDES_DEBUG_ADDR_WIDTH 5
646*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_CS_PORT_FPE_LBN 1
647*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_CS_PORT_FPE_WIDTH 35
648*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EM_DEBUG_ADDR_LBN 26
649*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EM_DEBUG_ADDR_WIDTH 5
650*1b481fc3SMaciej Żenczykowski #define	FRF_AB_SR_DEBUG_ADDR_LBN 21
651*1b481fc3SMaciej Żenczykowski #define	FRF_AB_SR_DEBUG_ADDR_WIDTH 5
652*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EV_DEBUG_ADDR_LBN 16
653*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EV_DEBUG_ADDR_WIDTH 5
654*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RX_DEBUG_ADDR_LBN 11
655*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RX_DEBUG_ADDR_WIDTH 5
656*1b481fc3SMaciej Żenczykowski #define	FRF_AB_TX_DEBUG_ADDR_LBN 6
657*1b481fc3SMaciej Żenczykowski #define	FRF_AB_TX_DEBUG_ADDR_WIDTH 5
658*1b481fc3SMaciej Żenczykowski #define	FRF_AB_CS_BIU_DEBUG_ADDR_LBN 1
659*1b481fc3SMaciej Żenczykowski #define	FRF_AB_CS_BIU_DEBUG_ADDR_WIDTH 5
660*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_CS_DEBUG_EN_LBN 0
661*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_CS_DEBUG_EN_WIDTH 1
662*1b481fc3SMaciej Żenczykowski 
663*1b481fc3SMaciej Żenczykowski /* DRIVER_REG: Driver scratch register [0-7] */
664*1b481fc3SMaciej Żenczykowski #define	FR_AZ_DRIVER 0x00000280
665*1b481fc3SMaciej Żenczykowski #define	FR_AZ_DRIVER_STEP 16
666*1b481fc3SMaciej Żenczykowski #define	FR_AZ_DRIVER_ROWS 8
667*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_DRIVER_DW0_LBN 0
668*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_DRIVER_DW0_WIDTH 32
669*1b481fc3SMaciej Żenczykowski 
670*1b481fc3SMaciej Żenczykowski /* ALTERA_BUILD_REG: Altera build register */
671*1b481fc3SMaciej Żenczykowski #define	FR_AZ_ALTERA_BUILD 0x00000300
672*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_ALTERA_BUILD_VER_LBN 0
673*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_ALTERA_BUILD_VER_WIDTH 32
674*1b481fc3SMaciej Żenczykowski 
675*1b481fc3SMaciej Żenczykowski /* CSR_SPARE_REG: Spare register */
676*1b481fc3SMaciej Żenczykowski #define	FR_AZ_CSR_SPARE 0x00000310
677*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MEM_PERR_EN_LBN 64
678*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MEM_PERR_EN_WIDTH 38
679*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_MEM_PERR_EN_LBN 64
680*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_MEM_PERR_EN_WIDTH 35
681*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MEM_PERR_EN_TX_DATA_LBN 72
682*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MEM_PERR_EN_TX_DATA_WIDTH 2
683*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_CSR_SPARE_BITS_LBN 0
684*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_CSR_SPARE_BITS_WIDTH 32
685*1b481fc3SMaciej Żenczykowski 
686*1b481fc3SMaciej Żenczykowski /* PCIE_SD_CTL0123_REG: PCIE SerDes control register 0 to 3 */
687*1b481fc3SMaciej Żenczykowski #define	FR_AB_PCIE_SD_CTL0123 0x00000320
688*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_TESTSIG_H_LBN 96
689*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_TESTSIG_H_WIDTH 19
690*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_TESTSIG_L_LBN 64
691*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_TESTSIG_L_WIDTH 19
692*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_OFFSET_LBN 56
693*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_OFFSET_WIDTH 8
694*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_OFFSETEN_H_LBN 55
695*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_OFFSETEN_H_WIDTH 1
696*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_OFFSETEN_L_LBN 54
697*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_OFFSETEN_L_WIDTH 1
698*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_HIVMODE_H_LBN 53
699*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_HIVMODE_H_WIDTH 1
700*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_HIVMODE_L_LBN 52
701*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_HIVMODE_L_WIDTH 1
702*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_PARRESET_H_LBN 51
703*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_PARRESET_H_WIDTH 1
704*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_PARRESET_L_LBN 50
705*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_PARRESET_L_WIDTH 1
706*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_LPBKWDRV_H_LBN 49
707*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_LPBKWDRV_H_WIDTH 1
708*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_LPBKWDRV_L_LBN 48
709*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_LPBKWDRV_L_WIDTH 1
710*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_LPBK_LBN 40
711*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_LPBK_WIDTH 8
712*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_PARLPBK_LBN 32
713*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_PARLPBK_WIDTH 8
714*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_RXTERMADJ_H_LBN 30
715*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_RXTERMADJ_H_WIDTH 2
716*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_RXTERMADJ_L_LBN 28
717*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_RXTERMADJ_L_WIDTH 2
718*1b481fc3SMaciej Żenczykowski #define	FFE_AB_PCIE_RXTERMADJ_MIN15PCNT 3
719*1b481fc3SMaciej Żenczykowski #define	FFE_AB_PCIE_RXTERMADJ_PL10PCNT 2
720*1b481fc3SMaciej Żenczykowski #define	FFE_AB_PCIE_RXTERMADJ_MIN17PCNT 1
721*1b481fc3SMaciej Żenczykowski #define	FFE_AB_PCIE_RXTERMADJ_NOMNL 0
722*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_TXTERMADJ_H_LBN 26
723*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_TXTERMADJ_H_WIDTH 2
724*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_TXTERMADJ_L_LBN 24
725*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_TXTERMADJ_L_WIDTH 2
726*1b481fc3SMaciej Żenczykowski #define	FFE_AB_PCIE_TXTERMADJ_MIN15PCNT 3
727*1b481fc3SMaciej Żenczykowski #define	FFE_AB_PCIE_TXTERMADJ_PL10PCNT 2
728*1b481fc3SMaciej Żenczykowski #define	FFE_AB_PCIE_TXTERMADJ_MIN17PCNT 1
729*1b481fc3SMaciej Żenczykowski #define	FFE_AB_PCIE_TXTERMADJ_NOMNL 0
730*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_RXEQCTL_H_LBN 18
731*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_RXEQCTL_H_WIDTH 2
732*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_RXEQCTL_L_LBN 16
733*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_RXEQCTL_L_WIDTH 2
734*1b481fc3SMaciej Żenczykowski #define	FFE_AB_PCIE_RXEQCTL_OFF_ALT 3
735*1b481fc3SMaciej Żenczykowski #define	FFE_AB_PCIE_RXEQCTL_OFF 2
736*1b481fc3SMaciej Żenczykowski #define	FFE_AB_PCIE_RXEQCTL_MIN 1
737*1b481fc3SMaciej Żenczykowski #define	FFE_AB_PCIE_RXEQCTL_MAX 0
738*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_HIDRV_LBN 8
739*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_HIDRV_WIDTH 8
740*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_LODRV_LBN 0
741*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_LODRV_WIDTH 8
742*1b481fc3SMaciej Żenczykowski 
743*1b481fc3SMaciej Żenczykowski /* PCIE_SD_CTL45_REG: PCIE SerDes control register 4 and 5 */
744*1b481fc3SMaciej Żenczykowski #define	FR_AB_PCIE_SD_CTL45 0x00000330
745*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_DTX7_LBN 60
746*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_DTX7_WIDTH 4
747*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_DTX6_LBN 56
748*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_DTX6_WIDTH 4
749*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_DTX5_LBN 52
750*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_DTX5_WIDTH 4
751*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_DTX4_LBN 48
752*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_DTX4_WIDTH 4
753*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_DTX3_LBN 44
754*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_DTX3_WIDTH 4
755*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_DTX2_LBN 40
756*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_DTX2_WIDTH 4
757*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_DTX1_LBN 36
758*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_DTX1_WIDTH 4
759*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_DTX0_LBN 32
760*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_DTX0_WIDTH 4
761*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_DEQ7_LBN 28
762*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_DEQ7_WIDTH 4
763*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_DEQ6_LBN 24
764*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_DEQ6_WIDTH 4
765*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_DEQ5_LBN 20
766*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_DEQ5_WIDTH 4
767*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_DEQ4_LBN 16
768*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_DEQ4_WIDTH 4
769*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_DEQ3_LBN 12
770*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_DEQ3_WIDTH 4
771*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_DEQ2_LBN 8
772*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_DEQ2_WIDTH 4
773*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_DEQ1_LBN 4
774*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_DEQ1_WIDTH 4
775*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_DEQ0_LBN 0
776*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_DEQ0_WIDTH 4
777*1b481fc3SMaciej Żenczykowski 
778*1b481fc3SMaciej Żenczykowski /* PCIE_PCS_CTL_STAT_REG: PCIE PCS control and status register */
779*1b481fc3SMaciej Żenczykowski #define	FR_AB_PCIE_PCS_CTL_STAT 0x00000340
780*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_PRBSERRCOUNT0_H_LBN 52
781*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_PRBSERRCOUNT0_H_WIDTH 4
782*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_PRBSERRCOUNT0_L_LBN 48
783*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_PRBSERRCOUNT0_L_WIDTH 4
784*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_PRBSERR_LBN 40
785*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_PRBSERR_WIDTH 8
786*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_PRBSERRH0_LBN 32
787*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_PRBSERRH0_WIDTH 8
788*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_FASTINIT_H_LBN 15
789*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_FASTINIT_H_WIDTH 1
790*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_FASTINIT_L_LBN 14
791*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_FASTINIT_L_WIDTH 1
792*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_CTCDISABLE_H_LBN 13
793*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_CTCDISABLE_H_WIDTH 1
794*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_CTCDISABLE_L_LBN 12
795*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_CTCDISABLE_L_WIDTH 1
796*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_PRBSSYNC_H_LBN 11
797*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_PRBSSYNC_H_WIDTH 1
798*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_PRBSSYNC_L_LBN 10
799*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_PRBSSYNC_L_WIDTH 1
800*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_PRBSERRACK_H_LBN 9
801*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_PRBSERRACK_H_WIDTH 1
802*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_PRBSERRACK_L_LBN 8
803*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_PRBSERRACK_L_WIDTH 1
804*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_PRBSSEL_LBN 0
805*1b481fc3SMaciej Żenczykowski #define	FRF_AB_PCIE_PRBSSEL_WIDTH 8
806*1b481fc3SMaciej Żenczykowski 
807*1b481fc3SMaciej Żenczykowski /* DEBUG_DATA_OUT_REG: Live Debug and Debug 2 out ports */
808*1b481fc3SMaciej Żenczykowski #define	FR_BB_DEBUG_DATA_OUT 0x00000350
809*1b481fc3SMaciej Żenczykowski #define	FRF_BB_DEBUG2_PORT_LBN 25
810*1b481fc3SMaciej Żenczykowski #define	FRF_BB_DEBUG2_PORT_WIDTH 15
811*1b481fc3SMaciej Żenczykowski #define	FRF_BB_DEBUG1_PORT_LBN 0
812*1b481fc3SMaciej Żenczykowski #define	FRF_BB_DEBUG1_PORT_WIDTH 25
813*1b481fc3SMaciej Żenczykowski 
814*1b481fc3SMaciej Żenczykowski /* EVQ_RPTR_REGP0: Event queue read pointer register */
815*1b481fc3SMaciej Żenczykowski #define	FR_BZ_EVQ_RPTR_P0 0x00000400
816*1b481fc3SMaciej Żenczykowski #define	FR_BZ_EVQ_RPTR_P0_STEP 8192
817*1b481fc3SMaciej Żenczykowski #define	FR_BZ_EVQ_RPTR_P0_ROWS 1024
818*1b481fc3SMaciej Żenczykowski /* EVQ_RPTR_REG_KER: Event queue read pointer register */
819*1b481fc3SMaciej Żenczykowski #define	FR_AA_EVQ_RPTR_KER 0x00011b00
820*1b481fc3SMaciej Żenczykowski #define	FR_AA_EVQ_RPTR_KER_STEP 4
821*1b481fc3SMaciej Żenczykowski #define	FR_AA_EVQ_RPTR_KER_ROWS 4
822*1b481fc3SMaciej Żenczykowski /* EVQ_RPTR_REG: Event queue read pointer register */
823*1b481fc3SMaciej Żenczykowski #define	FR_BZ_EVQ_RPTR 0x00fa0000
824*1b481fc3SMaciej Żenczykowski #define	FR_BZ_EVQ_RPTR_STEP 16
825*1b481fc3SMaciej Żenczykowski #define	FR_BB_EVQ_RPTR_ROWS 4096
826*1b481fc3SMaciej Żenczykowski #define	FR_CZ_EVQ_RPTR_ROWS 1024
827*1b481fc3SMaciej Żenczykowski /* EVQ_RPTR_REGP123: Event queue read pointer register */
828*1b481fc3SMaciej Żenczykowski #define	FR_BB_EVQ_RPTR_P123 0x01000400
829*1b481fc3SMaciej Żenczykowski #define	FR_BB_EVQ_RPTR_P123_STEP 8192
830*1b481fc3SMaciej Żenczykowski #define	FR_BB_EVQ_RPTR_P123_ROWS 3072
831*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_RPTR_VLD_LBN 15
832*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_RPTR_VLD_WIDTH 1
833*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_RPTR_LBN 0
834*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_RPTR_WIDTH 15
835*1b481fc3SMaciej Żenczykowski 
836*1b481fc3SMaciej Żenczykowski /* TIMER_COMMAND_REGP0: Timer Command Registers */
837*1b481fc3SMaciej Żenczykowski #define	FR_BZ_TIMER_COMMAND_P0 0x00000420
838*1b481fc3SMaciej Żenczykowski #define	FR_BZ_TIMER_COMMAND_P0_STEP 8192
839*1b481fc3SMaciej Żenczykowski #define	FR_BZ_TIMER_COMMAND_P0_ROWS 1024
840*1b481fc3SMaciej Żenczykowski /* TIMER_COMMAND_REG_KER: Timer Command Registers */
841*1b481fc3SMaciej Żenczykowski #define	FR_AA_TIMER_COMMAND_KER 0x00000420
842*1b481fc3SMaciej Żenczykowski #define	FR_AA_TIMER_COMMAND_KER_STEP 8192
843*1b481fc3SMaciej Żenczykowski #define	FR_AA_TIMER_COMMAND_KER_ROWS 4
844*1b481fc3SMaciej Żenczykowski /* TIMER_COMMAND_REGP123: Timer Command Registers */
845*1b481fc3SMaciej Żenczykowski #define	FR_BB_TIMER_COMMAND_P123 0x01000420
846*1b481fc3SMaciej Żenczykowski #define	FR_BB_TIMER_COMMAND_P123_STEP 8192
847*1b481fc3SMaciej Żenczykowski #define	FR_BB_TIMER_COMMAND_P123_ROWS 3072
848*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TC_TIMER_MODE_LBN 14
849*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TC_TIMER_MODE_WIDTH 2
850*1b481fc3SMaciej Żenczykowski #define	FRF_AB_TC_TIMER_MODE_LBN 12
851*1b481fc3SMaciej Żenczykowski #define	FRF_AB_TC_TIMER_MODE_WIDTH 2
852*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TC_TIMER_VAL_LBN 0
853*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TC_TIMER_VAL_WIDTH 14
854*1b481fc3SMaciej Żenczykowski #define	FRF_AB_TC_TIMER_VAL_LBN 0
855*1b481fc3SMaciej Żenczykowski #define	FRF_AB_TC_TIMER_VAL_WIDTH 12
856*1b481fc3SMaciej Żenczykowski 
857*1b481fc3SMaciej Żenczykowski /* DRV_EV_REG: Driver generated event register */
858*1b481fc3SMaciej Żenczykowski #define	FR_AZ_DRV_EV 0x00000440
859*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_DRV_EV_QID_LBN 64
860*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_DRV_EV_QID_WIDTH 12
861*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_DRV_EV_DATA_LBN 0
862*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_DRV_EV_DATA_WIDTH 64
863*1b481fc3SMaciej Żenczykowski 
864*1b481fc3SMaciej Żenczykowski /* EVQ_CTL_REG: Event queue control register */
865*1b481fc3SMaciej Żenczykowski #define	FR_AZ_EVQ_CTL 0x00000450
866*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RX_EVQ_WAKEUP_MASK_LBN 15
867*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RX_EVQ_WAKEUP_MASK_WIDTH 10
868*1b481fc3SMaciej Żenczykowski #define	FRF_BB_RX_EVQ_WAKEUP_MASK_LBN 15
869*1b481fc3SMaciej Żenczykowski #define	FRF_BB_RX_EVQ_WAKEUP_MASK_WIDTH 6
870*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_OWNERR_CTL_LBN 14
871*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_OWNERR_CTL_WIDTH 1
872*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_FIFO_AF_TH_LBN 7
873*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_FIFO_AF_TH_WIDTH 7
874*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_FIFO_NOTAF_TH_LBN 0
875*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_FIFO_NOTAF_TH_WIDTH 7
876*1b481fc3SMaciej Żenczykowski 
877*1b481fc3SMaciej Żenczykowski /* EVQ_CNT1_REG: Event counter 1 register */
878*1b481fc3SMaciej Żenczykowski #define	FR_AZ_EVQ_CNT1 0x00000460
879*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_CNT_PRE_FIFO_LBN 120
880*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_CNT_PRE_FIFO_WIDTH 7
881*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_CNT_TOBIU_LBN 100
882*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_CNT_TOBIU_WIDTH 20
883*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_TX_REQ_CNT_LBN 80
884*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_TX_REQ_CNT_WIDTH 20
885*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_RX_REQ_CNT_LBN 60
886*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_RX_REQ_CNT_WIDTH 20
887*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_EM_REQ_CNT_LBN 40
888*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_EM_REQ_CNT_WIDTH 20
889*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_CSR_REQ_CNT_LBN 20
890*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_CSR_REQ_CNT_WIDTH 20
891*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_ERR_REQ_CNT_LBN 0
892*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_ERR_REQ_CNT_WIDTH 20
893*1b481fc3SMaciej Żenczykowski 
894*1b481fc3SMaciej Żenczykowski /* EVQ_CNT2_REG: Event counter 2 register */
895*1b481fc3SMaciej Żenczykowski #define	FR_AZ_EVQ_CNT2 0x00000470
896*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_UPD_REQ_CNT_LBN 104
897*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_UPD_REQ_CNT_WIDTH 20
898*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_CLR_REQ_CNT_LBN 84
899*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_CLR_REQ_CNT_WIDTH 20
900*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_RDY_CNT_LBN 80
901*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_RDY_CNT_WIDTH 4
902*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_WU_REQ_CNT_LBN 60
903*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_WU_REQ_CNT_WIDTH 20
904*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_WET_REQ_CNT_LBN 40
905*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_WET_REQ_CNT_WIDTH 20
906*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_INIT_REQ_CNT_LBN 20
907*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_INIT_REQ_CNT_WIDTH 20
908*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_TM_REQ_CNT_LBN 0
909*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_TM_REQ_CNT_WIDTH 20
910*1b481fc3SMaciej Żenczykowski 
911*1b481fc3SMaciej Żenczykowski /* USR_EV_REG: Event mailbox register */
912*1b481fc3SMaciej Żenczykowski #define	FR_CZ_USR_EV 0x00000540
913*1b481fc3SMaciej Żenczykowski #define	FR_CZ_USR_EV_STEP 8192
914*1b481fc3SMaciej Żenczykowski #define	FR_CZ_USR_EV_ROWS 1024
915*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_USR_EV_DATA_LBN 0
916*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_USR_EV_DATA_WIDTH 32
917*1b481fc3SMaciej Żenczykowski 
918*1b481fc3SMaciej Żenczykowski /* BUF_TBL_CFG_REG: Buffer table configuration register */
919*1b481fc3SMaciej Żenczykowski #define	FR_AZ_BUF_TBL_CFG 0x00000600
920*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_BUF_TBL_MODE_LBN 3
921*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_BUF_TBL_MODE_WIDTH 1
922*1b481fc3SMaciej Żenczykowski 
923*1b481fc3SMaciej Żenczykowski /* SRM_RX_DC_CFG_REG: SRAM receive descriptor cache configuration register */
924*1b481fc3SMaciej Żenczykowski #define	FR_AZ_SRM_RX_DC_CFG 0x00000610
925*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_SRM_CLK_TMP_EN_LBN 21
926*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_SRM_CLK_TMP_EN_WIDTH 1
927*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_SRM_RX_DC_BASE_ADR_LBN 0
928*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_SRM_RX_DC_BASE_ADR_WIDTH 21
929*1b481fc3SMaciej Żenczykowski 
930*1b481fc3SMaciej Żenczykowski /* SRM_TX_DC_CFG_REG: SRAM transmit descriptor cache configuration register */
931*1b481fc3SMaciej Żenczykowski #define	FR_AZ_SRM_TX_DC_CFG 0x00000620
932*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_SRM_TX_DC_BASE_ADR_LBN 0
933*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_SRM_TX_DC_BASE_ADR_WIDTH 21
934*1b481fc3SMaciej Żenczykowski 
935*1b481fc3SMaciej Żenczykowski /* SRM_CFG_REG: SRAM configuration register */
936*1b481fc3SMaciej Żenczykowski #define	FR_AZ_SRM_CFG 0x00000630
937*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_SRM_OOB_ADR_INTEN_LBN 5
938*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_SRM_OOB_ADR_INTEN_WIDTH 1
939*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_SRM_OOB_BUF_INTEN_LBN 4
940*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_SRM_OOB_BUF_INTEN_WIDTH 1
941*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_SRM_INIT_EN_LBN 3
942*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_SRM_INIT_EN_WIDTH 1
943*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_SRM_NUM_BANK_LBN 2
944*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_SRM_NUM_BANK_WIDTH 1
945*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_SRM_BANK_SIZE_LBN 0
946*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_SRM_BANK_SIZE_WIDTH 2
947*1b481fc3SMaciej Żenczykowski 
948*1b481fc3SMaciej Żenczykowski /* BUF_TBL_UPD_REG: Buffer table update register */
949*1b481fc3SMaciej Żenczykowski #define	FR_AZ_BUF_TBL_UPD 0x00000650
950*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_BUF_UPD_CMD_LBN 63
951*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_BUF_UPD_CMD_WIDTH 1
952*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_BUF_CLR_CMD_LBN 62
953*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_BUF_CLR_CMD_WIDTH 1
954*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_BUF_CLR_END_ID_LBN 32
955*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_BUF_CLR_END_ID_WIDTH 20
956*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_BUF_CLR_START_ID_LBN 0
957*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_BUF_CLR_START_ID_WIDTH 20
958*1b481fc3SMaciej Żenczykowski 
959*1b481fc3SMaciej Żenczykowski /* SRM_UPD_EVQ_REG: Buffer table update register */
960*1b481fc3SMaciej Żenczykowski #define	FR_AZ_SRM_UPD_EVQ 0x00000660
961*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_SRM_UPD_EVQ_ID_LBN 0
962*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_SRM_UPD_EVQ_ID_WIDTH 12
963*1b481fc3SMaciej Żenczykowski 
964*1b481fc3SMaciej Żenczykowski /* SRAM_PARITY_REG: SRAM parity register. */
965*1b481fc3SMaciej Żenczykowski #define	FR_AZ_SRAM_PARITY 0x00000670
966*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_BYPASS_ECC_LBN 3
967*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_BYPASS_ECC_WIDTH 1
968*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_SEC_INT_LBN 2
969*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_SEC_INT_WIDTH 1
970*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_FORCE_SRAM_DOUBLE_ERR_LBN 1
971*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_FORCE_SRAM_DOUBLE_ERR_WIDTH 1
972*1b481fc3SMaciej Żenczykowski #define	FRF_AB_FORCE_SRAM_PERR_LBN 0
973*1b481fc3SMaciej Żenczykowski #define	FRF_AB_FORCE_SRAM_PERR_WIDTH 1
974*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_FORCE_SRAM_SINGLE_ERR_LBN 0
975*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_FORCE_SRAM_SINGLE_ERR_WIDTH 1
976*1b481fc3SMaciej Żenczykowski 
977*1b481fc3SMaciej Żenczykowski /* RX_CFG_REG: Receive configuration register */
978*1b481fc3SMaciej Żenczykowski #define	FR_AZ_RX_CFG 0x00000800
979*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RX_MIN_KBUF_SIZE_LBN 72
980*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RX_MIN_KBUF_SIZE_WIDTH 14
981*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RX_HDR_SPLIT_EN_LBN 71
982*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RX_HDR_SPLIT_EN_WIDTH 1
983*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RX_HDR_SPLIT_PLD_BUF_SIZE_LBN 62
984*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RX_HDR_SPLIT_PLD_BUF_SIZE_WIDTH 9
985*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RX_HDR_SPLIT_HDR_BUF_SIZE_LBN 53
986*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RX_HDR_SPLIT_HDR_BUF_SIZE_WIDTH 9
987*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RX_PRE_RFF_IPG_LBN 49
988*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RX_PRE_RFF_IPG_WIDTH 4
989*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RX_TCP_SUP_LBN 48
990*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RX_TCP_SUP_WIDTH 1
991*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RX_INGR_EN_LBN 47
992*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RX_INGR_EN_WIDTH 1
993*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RX_IP_HASH_LBN 46
994*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RX_IP_HASH_WIDTH 1
995*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RX_HASH_ALG_LBN 45
996*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RX_HASH_ALG_WIDTH 1
997*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RX_HASH_INSRT_HDR_LBN 44
998*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RX_HASH_INSRT_HDR_WIDTH 1
999*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RX_DESC_PUSH_EN_LBN 43
1000*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RX_DESC_PUSH_EN_WIDTH 1
1001*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RX_RDW_PATCH_EN_LBN 42
1002*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RX_RDW_PATCH_EN_WIDTH 1
1003*1b481fc3SMaciej Żenczykowski #define	FRF_BB_RX_PCI_BURST_SIZE_LBN 39
1004*1b481fc3SMaciej Żenczykowski #define	FRF_BB_RX_PCI_BURST_SIZE_WIDTH 3
1005*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RX_OWNERR_CTL_LBN 38
1006*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RX_OWNERR_CTL_WIDTH 1
1007*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RX_XON_TX_TH_LBN 33
1008*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RX_XON_TX_TH_WIDTH 5
1009*1b481fc3SMaciej Żenczykowski #define	FRF_AA_RX_DESC_PUSH_EN_LBN 35
1010*1b481fc3SMaciej Żenczykowski #define	FRF_AA_RX_DESC_PUSH_EN_WIDTH 1
1011*1b481fc3SMaciej Żenczykowski #define	FRF_AA_RX_RDW_PATCH_EN_LBN 34
1012*1b481fc3SMaciej Żenczykowski #define	FRF_AA_RX_RDW_PATCH_EN_WIDTH 1
1013*1b481fc3SMaciej Żenczykowski #define	FRF_AA_RX_PCI_BURST_SIZE_LBN 31
1014*1b481fc3SMaciej Żenczykowski #define	FRF_AA_RX_PCI_BURST_SIZE_WIDTH 3
1015*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RX_XOFF_TX_TH_LBN 28
1016*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RX_XOFF_TX_TH_WIDTH 5
1017*1b481fc3SMaciej Żenczykowski #define	FRF_AA_RX_OWNERR_CTL_LBN 30
1018*1b481fc3SMaciej Żenczykowski #define	FRF_AA_RX_OWNERR_CTL_WIDTH 1
1019*1b481fc3SMaciej Żenczykowski #define	FRF_AA_RX_XON_TX_TH_LBN 25
1020*1b481fc3SMaciej Żenczykowski #define	FRF_AA_RX_XON_TX_TH_WIDTH 5
1021*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RX_USR_BUF_SIZE_LBN 19
1022*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RX_USR_BUF_SIZE_WIDTH 9
1023*1b481fc3SMaciej Żenczykowski #define	FRF_AA_RX_XOFF_TX_TH_LBN 20
1024*1b481fc3SMaciej Żenczykowski #define	FRF_AA_RX_XOFF_TX_TH_WIDTH 5
1025*1b481fc3SMaciej Żenczykowski #define	FRF_AA_RX_USR_BUF_SIZE_LBN 11
1026*1b481fc3SMaciej Żenczykowski #define	FRF_AA_RX_USR_BUF_SIZE_WIDTH 9
1027*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RX_XON_MAC_TH_LBN 10
1028*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RX_XON_MAC_TH_WIDTH 9
1029*1b481fc3SMaciej Żenczykowski #define	FRF_AA_RX_XON_MAC_TH_LBN 6
1030*1b481fc3SMaciej Żenczykowski #define	FRF_AA_RX_XON_MAC_TH_WIDTH 5
1031*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RX_XOFF_MAC_TH_LBN 1
1032*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RX_XOFF_MAC_TH_WIDTH 9
1033*1b481fc3SMaciej Żenczykowski #define	FRF_AA_RX_XOFF_MAC_TH_LBN 1
1034*1b481fc3SMaciej Żenczykowski #define	FRF_AA_RX_XOFF_MAC_TH_WIDTH 5
1035*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_XOFF_MAC_EN_LBN 0
1036*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_XOFF_MAC_EN_WIDTH 1
1037*1b481fc3SMaciej Żenczykowski 
1038*1b481fc3SMaciej Żenczykowski /* RX_FILTER_CTL_REG: Receive filter control registers */
1039*1b481fc3SMaciej Żenczykowski #define	FR_BZ_RX_FILTER_CTL 0x00000810
1040*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_ETHERNET_WILDCARD_SEARCH_LIMIT_LBN 94
1041*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_ETHERNET_WILDCARD_SEARCH_LIMIT_WIDTH 8
1042*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_ETHERNET_FULL_SEARCH_LIMIT_LBN 86
1043*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_ETHERNET_FULL_SEARCH_LIMIT_WIDTH 8
1044*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RX_FILTER_ALL_VLAN_ETHERTYPES_LBN 85
1045*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RX_FILTER_ALL_VLAN_ETHERTYPES_WIDTH 1
1046*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RX_VLAN_MATCH_ETHERTYPE_LBN 69
1047*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RX_VLAN_MATCH_ETHERTYPE_WIDTH 16
1048*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_MULTICAST_NOMATCH_Q_ID_LBN 57
1049*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_MULTICAST_NOMATCH_Q_ID_WIDTH 12
1050*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_MULTICAST_NOMATCH_RSS_ENABLED_LBN 56
1051*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_MULTICAST_NOMATCH_RSS_ENABLED_WIDTH 1
1052*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_MULTICAST_NOMATCH_IP_OVERRIDE_LBN 55
1053*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_MULTICAST_NOMATCH_IP_OVERRIDE_WIDTH 1
1054*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_UNICAST_NOMATCH_Q_ID_LBN 43
1055*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_UNICAST_NOMATCH_Q_ID_WIDTH 12
1056*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_UNICAST_NOMATCH_RSS_ENABLED_LBN 42
1057*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_UNICAST_NOMATCH_RSS_ENABLED_WIDTH 1
1058*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_UNICAST_NOMATCH_IP_OVERRIDE_LBN 41
1059*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_UNICAST_NOMATCH_IP_OVERRIDE_WIDTH 1
1060*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_SCATTER_ENBL_NO_MATCH_Q_LBN 40
1061*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_SCATTER_ENBL_NO_MATCH_Q_WIDTH 1
1062*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_UDP_FULL_SRCH_LIMIT_LBN 32
1063*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_UDP_FULL_SRCH_LIMIT_WIDTH 8
1064*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_NUM_KER_LBN 24
1065*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_NUM_KER_WIDTH 2
1066*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_UDP_WILD_SRCH_LIMIT_LBN 16
1067*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_UDP_WILD_SRCH_LIMIT_WIDTH 8
1068*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TCP_WILD_SRCH_LIMIT_LBN 8
1069*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TCP_WILD_SRCH_LIMIT_WIDTH 8
1070*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TCP_FULL_SRCH_LIMIT_LBN 0
1071*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TCP_FULL_SRCH_LIMIT_WIDTH 8
1072*1b481fc3SMaciej Żenczykowski 
1073*1b481fc3SMaciej Żenczykowski /* RX_FLUSH_DESCQ_REG: Receive flush descriptor queue register */
1074*1b481fc3SMaciej Żenczykowski #define	FR_AZ_RX_FLUSH_DESCQ 0x00000820
1075*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_FLUSH_DESCQ_CMD_LBN 24
1076*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_FLUSH_DESCQ_CMD_WIDTH 1
1077*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_FLUSH_DESCQ_LBN 0
1078*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_FLUSH_DESCQ_WIDTH 12
1079*1b481fc3SMaciej Żenczykowski 
1080*1b481fc3SMaciej Żenczykowski /* RX_DESC_UPD_REGP0: Receive descriptor update register. */
1081*1b481fc3SMaciej Żenczykowski #define	FR_BZ_RX_DESC_UPD_P0 0x00000830
1082*1b481fc3SMaciej Żenczykowski #define	FR_BZ_RX_DESC_UPD_P0_STEP 8192
1083*1b481fc3SMaciej Żenczykowski #define	FR_BZ_RX_DESC_UPD_P0_ROWS 1024
1084*1b481fc3SMaciej Żenczykowski /* RX_DESC_UPD_REG_KER: Receive descriptor update register. */
1085*1b481fc3SMaciej Żenczykowski #define	FR_AA_RX_DESC_UPD_KER 0x00000830
1086*1b481fc3SMaciej Żenczykowski #define	FR_AA_RX_DESC_UPD_KER_STEP 8192
1087*1b481fc3SMaciej Żenczykowski #define	FR_AA_RX_DESC_UPD_KER_ROWS 4
1088*1b481fc3SMaciej Żenczykowski /* RX_DESC_UPD_REGP123: Receive descriptor update register. */
1089*1b481fc3SMaciej Żenczykowski #define	FR_BB_RX_DESC_UPD_P123 0x01000830
1090*1b481fc3SMaciej Żenczykowski #define	FR_BB_RX_DESC_UPD_P123_STEP 8192
1091*1b481fc3SMaciej Żenczykowski #define	FR_BB_RX_DESC_UPD_P123_ROWS 3072
1092*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DESC_WPTR_LBN 96
1093*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DESC_WPTR_WIDTH 12
1094*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DESC_PUSH_CMD_LBN 95
1095*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DESC_PUSH_CMD_WIDTH 1
1096*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DESC_LBN 0
1097*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DESC_WIDTH 64
1098*1b481fc3SMaciej Żenczykowski 
1099*1b481fc3SMaciej Żenczykowski /* RX_DC_CFG_REG: Receive descriptor cache configuration register */
1100*1b481fc3SMaciej Żenczykowski #define	FR_AZ_RX_DC_CFG 0x00000840
1101*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RX_MAX_PF_LBN 2
1102*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RX_MAX_PF_WIDTH 2
1103*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DC_SIZE_LBN 0
1104*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DC_SIZE_WIDTH 2
1105*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_RX_DC_SIZE_64 3
1106*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_RX_DC_SIZE_32 2
1107*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_RX_DC_SIZE_16 1
1108*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_RX_DC_SIZE_8 0
1109*1b481fc3SMaciej Żenczykowski 
1110*1b481fc3SMaciej Żenczykowski /* RX_DC_PF_WM_REG: Receive descriptor cache pre-fetch watermark register */
1111*1b481fc3SMaciej Żenczykowski #define	FR_AZ_RX_DC_PF_WM 0x00000850
1112*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DC_PF_HWM_LBN 6
1113*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DC_PF_HWM_WIDTH 6
1114*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DC_PF_LWM_LBN 0
1115*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DC_PF_LWM_WIDTH 6
1116*1b481fc3SMaciej Żenczykowski 
1117*1b481fc3SMaciej Żenczykowski /* RX_RSS_TKEY_REG: RSS Toeplitz hash key */
1118*1b481fc3SMaciej Żenczykowski #define	FR_BZ_RX_RSS_TKEY 0x00000860
1119*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RX_RSS_TKEY_HI_LBN 64
1120*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RX_RSS_TKEY_HI_WIDTH 64
1121*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RX_RSS_TKEY_LO_LBN 0
1122*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RX_RSS_TKEY_LO_WIDTH 64
1123*1b481fc3SMaciej Żenczykowski 
1124*1b481fc3SMaciej Żenczykowski /* RX_NODESC_DROP_REG: Receive dropped packet counter register */
1125*1b481fc3SMaciej Żenczykowski #define	FR_AZ_RX_NODESC_DROP 0x00000880
1126*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RX_NODESC_DROP_CNT_LBN 0
1127*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RX_NODESC_DROP_CNT_WIDTH 32
1128*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RX_NODESC_DROP_CNT_LBN 0
1129*1b481fc3SMaciej Żenczykowski #define	FRF_AB_RX_NODESC_DROP_CNT_WIDTH 16
1130*1b481fc3SMaciej Żenczykowski 
1131*1b481fc3SMaciej Żenczykowski /* RX_SELF_RST_REG: Receive self reset register */
1132*1b481fc3SMaciej Żenczykowski #define	FR_AA_RX_SELF_RST 0x00000890
1133*1b481fc3SMaciej Żenczykowski #define	FRF_AA_RX_ISCSI_DIS_LBN 17
1134*1b481fc3SMaciej Żenczykowski #define	FRF_AA_RX_ISCSI_DIS_WIDTH 1
1135*1b481fc3SMaciej Żenczykowski #define	FRF_AA_RX_SW_RST_REG_LBN 16
1136*1b481fc3SMaciej Żenczykowski #define	FRF_AA_RX_SW_RST_REG_WIDTH 1
1137*1b481fc3SMaciej Żenczykowski #define FRF_AA_RX_NODESC_WAIT_DIS_LBN 9
1138*1b481fc3SMaciej Żenczykowski #define FRF_AA_RX_NODESC_WAIT_DIS_WIDTH 1
1139*1b481fc3SMaciej Żenczykowski #define	FRF_AA_RX_SELF_RST_EN_LBN 8
1140*1b481fc3SMaciej Żenczykowski #define	FRF_AA_RX_SELF_RST_EN_WIDTH 1
1141*1b481fc3SMaciej Żenczykowski #define	FRF_AA_RX_MAX_PF_LAT_LBN 4
1142*1b481fc3SMaciej Żenczykowski #define	FRF_AA_RX_MAX_PF_LAT_WIDTH 4
1143*1b481fc3SMaciej Żenczykowski #define	FRF_AA_RX_MAX_LU_LAT_LBN 0
1144*1b481fc3SMaciej Żenczykowski #define	FRF_AA_RX_MAX_LU_LAT_WIDTH 4
1145*1b481fc3SMaciej Żenczykowski 
1146*1b481fc3SMaciej Żenczykowski /* RX_DEBUG_REG: undocumented register */
1147*1b481fc3SMaciej Żenczykowski #define	FR_AZ_RX_DEBUG 0x000008a0
1148*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DEBUG_LBN 0
1149*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DEBUG_WIDTH 64
1150*1b481fc3SMaciej Żenczykowski 
1151*1b481fc3SMaciej Żenczykowski /* RX_PUSH_DROP_REG: Receive descriptor push dropped counter register */
1152*1b481fc3SMaciej Żenczykowski #define	FR_AZ_RX_PUSH_DROP 0x000008b0
1153*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_PUSH_DROP_CNT_LBN 0
1154*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_PUSH_DROP_CNT_WIDTH 32
1155*1b481fc3SMaciej Żenczykowski 
1156*1b481fc3SMaciej Żenczykowski /* RX_RSS_IPV6_REG1: IPv6 RSS Toeplitz hash key low bytes */
1157*1b481fc3SMaciej Żenczykowski #define	FR_CZ_RX_RSS_IPV6_REG1 0x000008d0
1158*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RX_RSS_IPV6_TKEY_LO_LBN 0
1159*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RX_RSS_IPV6_TKEY_LO_WIDTH 128
1160*1b481fc3SMaciej Żenczykowski 
1161*1b481fc3SMaciej Żenczykowski /* RX_RSS_IPV6_REG2: IPv6 RSS Toeplitz hash key middle bytes */
1162*1b481fc3SMaciej Żenczykowski #define	FR_CZ_RX_RSS_IPV6_REG2 0x000008e0
1163*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RX_RSS_IPV6_TKEY_MID_LBN 0
1164*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RX_RSS_IPV6_TKEY_MID_WIDTH 128
1165*1b481fc3SMaciej Żenczykowski 
1166*1b481fc3SMaciej Żenczykowski /* RX_RSS_IPV6_REG3: IPv6 RSS Toeplitz hash key upper bytes and IPv6 RSS settings */
1167*1b481fc3SMaciej Żenczykowski #define	FR_CZ_RX_RSS_IPV6_REG3 0x000008f0
1168*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RX_RSS_IPV6_THASH_ENABLE_LBN 66
1169*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RX_RSS_IPV6_THASH_ENABLE_WIDTH 1
1170*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RX_RSS_IPV6_IP_THASH_ENABLE_LBN 65
1171*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RX_RSS_IPV6_IP_THASH_ENABLE_WIDTH 1
1172*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RX_RSS_IPV6_TCP_SUPPRESS_LBN 64
1173*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RX_RSS_IPV6_TCP_SUPPRESS_WIDTH 1
1174*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RX_RSS_IPV6_TKEY_HI_LBN 0
1175*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RX_RSS_IPV6_TKEY_HI_WIDTH 64
1176*1b481fc3SMaciej Żenczykowski 
1177*1b481fc3SMaciej Żenczykowski /* TX_FLUSH_DESCQ_REG: Transmit flush descriptor queue register */
1178*1b481fc3SMaciej Żenczykowski #define	FR_AZ_TX_FLUSH_DESCQ 0x00000a00
1179*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_FLUSH_DESCQ_CMD_LBN 12
1180*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_FLUSH_DESCQ_CMD_WIDTH 1
1181*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_FLUSH_DESCQ_LBN 0
1182*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_FLUSH_DESCQ_WIDTH 12
1183*1b481fc3SMaciej Żenczykowski 
1184*1b481fc3SMaciej Żenczykowski /* TX_DESC_UPD_REGP0: Transmit descriptor update register. */
1185*1b481fc3SMaciej Żenczykowski #define	FR_BZ_TX_DESC_UPD_P0 0x00000a10
1186*1b481fc3SMaciej Żenczykowski #define	FR_BZ_TX_DESC_UPD_P0_STEP 8192
1187*1b481fc3SMaciej Żenczykowski #define	FR_BZ_TX_DESC_UPD_P0_ROWS 1024
1188*1b481fc3SMaciej Żenczykowski /* TX_DESC_UPD_REG_KER: Transmit descriptor update register. */
1189*1b481fc3SMaciej Żenczykowski #define	FR_AA_TX_DESC_UPD_KER 0x00000a10
1190*1b481fc3SMaciej Żenczykowski #define	FR_AA_TX_DESC_UPD_KER_STEP 8192
1191*1b481fc3SMaciej Żenczykowski #define	FR_AA_TX_DESC_UPD_KER_ROWS 8
1192*1b481fc3SMaciej Żenczykowski /* TX_DESC_UPD_REGP123: Transmit descriptor update register. */
1193*1b481fc3SMaciej Żenczykowski #define	FR_BB_TX_DESC_UPD_P123 0x01000a10
1194*1b481fc3SMaciej Żenczykowski #define	FR_BB_TX_DESC_UPD_P123_STEP 8192
1195*1b481fc3SMaciej Żenczykowski #define	FR_BB_TX_DESC_UPD_P123_ROWS 3072
1196*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DESC_WPTR_LBN 96
1197*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DESC_WPTR_WIDTH 12
1198*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DESC_PUSH_CMD_LBN 95
1199*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DESC_PUSH_CMD_WIDTH 1
1200*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DESC_LBN 0
1201*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DESC_WIDTH 95
1202*1b481fc3SMaciej Żenczykowski 
1203*1b481fc3SMaciej Żenczykowski /* TX_DC_CFG_REG: Transmit descriptor cache configuration register */
1204*1b481fc3SMaciej Żenczykowski #define	FR_AZ_TX_DC_CFG 0x00000a20
1205*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DC_SIZE_LBN 0
1206*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DC_SIZE_WIDTH 2
1207*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_TX_DC_SIZE_32 2
1208*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_TX_DC_SIZE_16 1
1209*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_TX_DC_SIZE_8 0
1210*1b481fc3SMaciej Żenczykowski 
1211*1b481fc3SMaciej Żenczykowski /* TX_CHKSM_CFG_REG: Transmit checksum configuration register */
1212*1b481fc3SMaciej Żenczykowski #define	FR_AA_TX_CHKSM_CFG 0x00000a30
1213*1b481fc3SMaciej Żenczykowski #define	FRF_AA_TX_Q_CHKSM_DIS_96_127_LBN 96
1214*1b481fc3SMaciej Żenczykowski #define	FRF_AA_TX_Q_CHKSM_DIS_96_127_WIDTH 32
1215*1b481fc3SMaciej Żenczykowski #define	FRF_AA_TX_Q_CHKSM_DIS_64_95_LBN 64
1216*1b481fc3SMaciej Żenczykowski #define	FRF_AA_TX_Q_CHKSM_DIS_64_95_WIDTH 32
1217*1b481fc3SMaciej Żenczykowski #define	FRF_AA_TX_Q_CHKSM_DIS_32_63_LBN 32
1218*1b481fc3SMaciej Żenczykowski #define	FRF_AA_TX_Q_CHKSM_DIS_32_63_WIDTH 32
1219*1b481fc3SMaciej Żenczykowski #define	FRF_AA_TX_Q_CHKSM_DIS_0_31_LBN 0
1220*1b481fc3SMaciej Żenczykowski #define	FRF_AA_TX_Q_CHKSM_DIS_0_31_WIDTH 32
1221*1b481fc3SMaciej Żenczykowski 
1222*1b481fc3SMaciej Żenczykowski /* TX_CFG_REG: Transmit configuration register */
1223*1b481fc3SMaciej Żenczykowski #define	FR_AZ_TX_CFG 0x00000a50
1224*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TX_CONT_LOOKUP_THRESH_RANGE_LBN 114
1225*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TX_CONT_LOOKUP_THRESH_RANGE_WIDTH 8
1226*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TX_FILTER_TEST_MODE_BIT_LBN 113
1227*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TX_FILTER_TEST_MODE_BIT_WIDTH 1
1228*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TX_ETH_FILTER_WILD_SEARCH_RANGE_LBN 105
1229*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TX_ETH_FILTER_WILD_SEARCH_RANGE_WIDTH 8
1230*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TX_ETH_FILTER_FULL_SEARCH_RANGE_LBN 97
1231*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TX_ETH_FILTER_FULL_SEARCH_RANGE_WIDTH 8
1232*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TX_UDPIP_FILTER_WILD_SEARCH_RANGE_LBN 89
1233*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TX_UDPIP_FILTER_WILD_SEARCH_RANGE_WIDTH 8
1234*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TX_UDPIP_FILTER_FULL_SEARCH_RANGE_LBN 81
1235*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TX_UDPIP_FILTER_FULL_SEARCH_RANGE_WIDTH 8
1236*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TX_TCPIP_FILTER_WILD_SEARCH_RANGE_LBN 73
1237*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TX_TCPIP_FILTER_WILD_SEARCH_RANGE_WIDTH 8
1238*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TX_TCPIP_FILTER_FULL_SEARCH_RANGE_LBN 65
1239*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TX_TCPIP_FILTER_FULL_SEARCH_RANGE_WIDTH 8
1240*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TX_FILTER_ALL_VLAN_ETHERTYPES_BIT_LBN 64
1241*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TX_FILTER_ALL_VLAN_ETHERTYPES_BIT_WIDTH 1
1242*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TX_VLAN_MATCH_ETHERTYPE_RANGE_LBN 48
1243*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TX_VLAN_MATCH_ETHERTYPE_RANGE_WIDTH 16
1244*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TX_FILTER_EN_BIT_LBN 47
1245*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TX_FILTER_EN_BIT_WIDTH 1
1246*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_IP_ID_P0_OFS_LBN 16
1247*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_IP_ID_P0_OFS_WIDTH 15
1248*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_NO_EOP_DISC_EN_LBN 5
1249*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_NO_EOP_DISC_EN_WIDTH 1
1250*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_P1_PRI_EN_LBN 4
1251*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_P1_PRI_EN_WIDTH 1
1252*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_OWNERR_CTL_LBN 2
1253*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_OWNERR_CTL_WIDTH 1
1254*1b481fc3SMaciej Żenczykowski #define	FRF_AA_TX_NON_IP_DROP_DIS_LBN 1
1255*1b481fc3SMaciej Żenczykowski #define	FRF_AA_TX_NON_IP_DROP_DIS_WIDTH 1
1256*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_IP_ID_REP_EN_LBN 0
1257*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_IP_ID_REP_EN_WIDTH 1
1258*1b481fc3SMaciej Żenczykowski 
1259*1b481fc3SMaciej Żenczykowski /* TX_PUSH_DROP_REG: Transmit push dropped register */
1260*1b481fc3SMaciej Żenczykowski #define	FR_AZ_TX_PUSH_DROP 0x00000a60
1261*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_PUSH_DROP_CNT_LBN 0
1262*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_PUSH_DROP_CNT_WIDTH 32
1263*1b481fc3SMaciej Żenczykowski 
1264*1b481fc3SMaciej Żenczykowski /* TX_RESERVED_REG: Transmit configuration register */
1265*1b481fc3SMaciej Żenczykowski #define	FR_AZ_TX_RESERVED 0x00000a80
1266*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_EVT_CNT_LBN 121
1267*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_EVT_CNT_WIDTH 7
1268*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_PREF_AGE_CNT_LBN 119
1269*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_PREF_AGE_CNT_WIDTH 2
1270*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_RD_COMP_TMR_LBN 96
1271*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_RD_COMP_TMR_WIDTH 23
1272*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_PUSH_EN_LBN 89
1273*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_PUSH_EN_WIDTH 1
1274*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_PUSH_CHK_DIS_LBN 88
1275*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_PUSH_CHK_DIS_WIDTH 1
1276*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_D_FF_FULL_P0_LBN 85
1277*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_D_FF_FULL_P0_WIDTH 1
1278*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DMAR_ST_P0_LBN 81
1279*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DMAR_ST_P0_WIDTH 1
1280*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DMAQ_ST_LBN 78
1281*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DMAQ_ST_WIDTH 1
1282*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_RX_SPACER_LBN 64
1283*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_RX_SPACER_WIDTH 8
1284*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DROP_ABORT_EN_LBN 60
1285*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DROP_ABORT_EN_WIDTH 1
1286*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_SOFT_EVT_EN_LBN 59
1287*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_SOFT_EVT_EN_WIDTH 1
1288*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_PS_EVT_DIS_LBN 58
1289*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_PS_EVT_DIS_WIDTH 1
1290*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_RX_SPACER_EN_LBN 57
1291*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_RX_SPACER_EN_WIDTH 1
1292*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_XP_TIMER_LBN 52
1293*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_XP_TIMER_WIDTH 5
1294*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_PREF_SPACER_LBN 44
1295*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_PREF_SPACER_WIDTH 8
1296*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_PREF_WD_TMR_LBN 22
1297*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_PREF_WD_TMR_WIDTH 22
1298*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_ONLY1TAG_LBN 21
1299*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_ONLY1TAG_WIDTH 1
1300*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_PREF_THRESHOLD_LBN 19
1301*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_PREF_THRESHOLD_WIDTH 2
1302*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_ONE_PKT_PER_Q_LBN 18
1303*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_ONE_PKT_PER_Q_WIDTH 1
1304*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DIS_NON_IP_EV_LBN 17
1305*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DIS_NON_IP_EV_WIDTH 1
1306*1b481fc3SMaciej Żenczykowski #define	FRF_AA_TX_DMA_FF_THR_LBN 16
1307*1b481fc3SMaciej Żenczykowski #define	FRF_AA_TX_DMA_FF_THR_WIDTH 1
1308*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DMA_SPACER_LBN 8
1309*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DMA_SPACER_WIDTH 8
1310*1b481fc3SMaciej Żenczykowski #define	FRF_AA_TX_TCP_DIS_LBN 7
1311*1b481fc3SMaciej Żenczykowski #define	FRF_AA_TX_TCP_DIS_WIDTH 1
1312*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TX_FLUSH_MIN_LEN_EN_LBN 7
1313*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TX_FLUSH_MIN_LEN_EN_WIDTH 1
1314*1b481fc3SMaciej Żenczykowski #define	FRF_AA_TX_IP_DIS_LBN 6
1315*1b481fc3SMaciej Żenczykowski #define	FRF_AA_TX_IP_DIS_WIDTH 1
1316*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_MAX_CPL_LBN 2
1317*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_MAX_CPL_WIDTH 2
1318*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_TX_MAX_CPL_16 3
1319*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_TX_MAX_CPL_8 2
1320*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_TX_MAX_CPL_4 1
1321*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_TX_MAX_CPL_NOLIMIT 0
1322*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_MAX_PREF_LBN 0
1323*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_MAX_PREF_WIDTH 2
1324*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_TX_MAX_PREF_32 3
1325*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_TX_MAX_PREF_16 2
1326*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_TX_MAX_PREF_8 1
1327*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_TX_MAX_PREF_OFF 0
1328*1b481fc3SMaciej Żenczykowski 
1329*1b481fc3SMaciej Żenczykowski /* TX_PACE_REG: Transmit pace control register */
1330*1b481fc3SMaciej Żenczykowski #define	FR_BZ_TX_PACE 0x00000a90
1331*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TX_PACE_SB_NOT_AF_LBN 19
1332*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TX_PACE_SB_NOT_AF_WIDTH 10
1333*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TX_PACE_SB_AF_LBN 9
1334*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TX_PACE_SB_AF_WIDTH 10
1335*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TX_PACE_FB_BASE_LBN 5
1336*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TX_PACE_FB_BASE_WIDTH 4
1337*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TX_PACE_BIN_TH_LBN 0
1338*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TX_PACE_BIN_TH_WIDTH 5
1339*1b481fc3SMaciej Żenczykowski 
1340*1b481fc3SMaciej Żenczykowski /* TX_PACE_DROP_QID_REG: PACE Drop QID Counter */
1341*1b481fc3SMaciej Żenczykowski #define	FR_BZ_TX_PACE_DROP_QID 0x00000aa0
1342*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TX_PACE_QID_DRP_CNT_LBN 0
1343*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TX_PACE_QID_DRP_CNT_WIDTH 16
1344*1b481fc3SMaciej Żenczykowski 
1345*1b481fc3SMaciej Żenczykowski /* TX_VLAN_REG: Transmit VLAN tag register */
1346*1b481fc3SMaciej Żenczykowski #define	FR_BB_TX_VLAN 0x00000ae0
1347*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN_EN_LBN 127
1348*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN_EN_WIDTH 1
1349*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN7_PORT1_EN_LBN 125
1350*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN7_PORT1_EN_WIDTH 1
1351*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN7_PORT0_EN_LBN 124
1352*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN7_PORT0_EN_WIDTH 1
1353*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN7_LBN 112
1354*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN7_WIDTH 12
1355*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN6_PORT1_EN_LBN 109
1356*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN6_PORT1_EN_WIDTH 1
1357*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN6_PORT0_EN_LBN 108
1358*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN6_PORT0_EN_WIDTH 1
1359*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN6_LBN 96
1360*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN6_WIDTH 12
1361*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN5_PORT1_EN_LBN 93
1362*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN5_PORT1_EN_WIDTH 1
1363*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN5_PORT0_EN_LBN 92
1364*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN5_PORT0_EN_WIDTH 1
1365*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN5_LBN 80
1366*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN5_WIDTH 12
1367*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN4_PORT1_EN_LBN 77
1368*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN4_PORT1_EN_WIDTH 1
1369*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN4_PORT0_EN_LBN 76
1370*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN4_PORT0_EN_WIDTH 1
1371*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN4_LBN 64
1372*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN4_WIDTH 12
1373*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN3_PORT1_EN_LBN 61
1374*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN3_PORT1_EN_WIDTH 1
1375*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN3_PORT0_EN_LBN 60
1376*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN3_PORT0_EN_WIDTH 1
1377*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN3_LBN 48
1378*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN3_WIDTH 12
1379*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN2_PORT1_EN_LBN 45
1380*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN2_PORT1_EN_WIDTH 1
1381*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN2_PORT0_EN_LBN 44
1382*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN2_PORT0_EN_WIDTH 1
1383*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN2_LBN 32
1384*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN2_WIDTH 12
1385*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN1_PORT1_EN_LBN 29
1386*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN1_PORT1_EN_WIDTH 1
1387*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN1_PORT0_EN_LBN 28
1388*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN1_PORT0_EN_WIDTH 1
1389*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN1_LBN 16
1390*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN1_WIDTH 12
1391*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN0_PORT1_EN_LBN 13
1392*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN0_PORT1_EN_WIDTH 1
1393*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN0_PORT0_EN_LBN 12
1394*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN0_PORT0_EN_WIDTH 1
1395*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN0_LBN 0
1396*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_VLAN0_WIDTH 12
1397*1b481fc3SMaciej Żenczykowski 
1398*1b481fc3SMaciej Żenczykowski /* TX_IPFIL_PORTEN_REG: Transmit filter control register */
1399*1b481fc3SMaciej Żenczykowski #define	FR_BZ_TX_IPFIL_PORTEN 0x00000af0
1400*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TX_MADR0_FIL_EN_LBN 64
1401*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TX_MADR0_FIL_EN_WIDTH 1
1402*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL31_PORT_EN_LBN 62
1403*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL31_PORT_EN_WIDTH 1
1404*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL30_PORT_EN_LBN 60
1405*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL30_PORT_EN_WIDTH 1
1406*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL29_PORT_EN_LBN 58
1407*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL29_PORT_EN_WIDTH 1
1408*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL28_PORT_EN_LBN 56
1409*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL28_PORT_EN_WIDTH 1
1410*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL27_PORT_EN_LBN 54
1411*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL27_PORT_EN_WIDTH 1
1412*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL26_PORT_EN_LBN 52
1413*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL26_PORT_EN_WIDTH 1
1414*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL25_PORT_EN_LBN 50
1415*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL25_PORT_EN_WIDTH 1
1416*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL24_PORT_EN_LBN 48
1417*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL24_PORT_EN_WIDTH 1
1418*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL23_PORT_EN_LBN 46
1419*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL23_PORT_EN_WIDTH 1
1420*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL22_PORT_EN_LBN 44
1421*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL22_PORT_EN_WIDTH 1
1422*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL21_PORT_EN_LBN 42
1423*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL21_PORT_EN_WIDTH 1
1424*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL20_PORT_EN_LBN 40
1425*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL20_PORT_EN_WIDTH 1
1426*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL19_PORT_EN_LBN 38
1427*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL19_PORT_EN_WIDTH 1
1428*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL18_PORT_EN_LBN 36
1429*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL18_PORT_EN_WIDTH 1
1430*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL17_PORT_EN_LBN 34
1431*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL17_PORT_EN_WIDTH 1
1432*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL16_PORT_EN_LBN 32
1433*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL16_PORT_EN_WIDTH 1
1434*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL15_PORT_EN_LBN 30
1435*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL15_PORT_EN_WIDTH 1
1436*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL14_PORT_EN_LBN 28
1437*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL14_PORT_EN_WIDTH 1
1438*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL13_PORT_EN_LBN 26
1439*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL13_PORT_EN_WIDTH 1
1440*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL12_PORT_EN_LBN 24
1441*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL12_PORT_EN_WIDTH 1
1442*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL11_PORT_EN_LBN 22
1443*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL11_PORT_EN_WIDTH 1
1444*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL10_PORT_EN_LBN 20
1445*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL10_PORT_EN_WIDTH 1
1446*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL9_PORT_EN_LBN 18
1447*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL9_PORT_EN_WIDTH 1
1448*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL8_PORT_EN_LBN 16
1449*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL8_PORT_EN_WIDTH 1
1450*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL7_PORT_EN_LBN 14
1451*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL7_PORT_EN_WIDTH 1
1452*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL6_PORT_EN_LBN 12
1453*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL6_PORT_EN_WIDTH 1
1454*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL5_PORT_EN_LBN 10
1455*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL5_PORT_EN_WIDTH 1
1456*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL4_PORT_EN_LBN 8
1457*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL4_PORT_EN_WIDTH 1
1458*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL3_PORT_EN_LBN 6
1459*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL3_PORT_EN_WIDTH 1
1460*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL2_PORT_EN_LBN 4
1461*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL2_PORT_EN_WIDTH 1
1462*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL1_PORT_EN_LBN 2
1463*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL1_PORT_EN_WIDTH 1
1464*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL0_PORT_EN_LBN 0
1465*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL0_PORT_EN_WIDTH 1
1466*1b481fc3SMaciej Żenczykowski 
1467*1b481fc3SMaciej Żenczykowski /* TX_IPFIL_TBL: Transmit IP source address filter table */
1468*1b481fc3SMaciej Żenczykowski #define	FR_BB_TX_IPFIL_TBL 0x00000b00
1469*1b481fc3SMaciej Żenczykowski #define	FR_BB_TX_IPFIL_TBL_STEP 16
1470*1b481fc3SMaciej Żenczykowski #define	FR_BB_TX_IPFIL_TBL_ROWS 16
1471*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL_MASK_1_LBN 96
1472*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL_MASK_1_WIDTH 32
1473*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IP_SRC_ADR_1_LBN 64
1474*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IP_SRC_ADR_1_WIDTH 32
1475*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL_MASK_0_LBN 32
1476*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IPFIL_MASK_0_WIDTH 32
1477*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IP_SRC_ADR_0_LBN 0
1478*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_IP_SRC_ADR_0_WIDTH 32
1479*1b481fc3SMaciej Żenczykowski 
1480*1b481fc3SMaciej Żenczykowski /* MD_TXD_REG: PHY management transmit data register */
1481*1b481fc3SMaciej Żenczykowski #define	FR_AB_MD_TXD 0x00000c00
1482*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_TXD_LBN 0
1483*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_TXD_WIDTH 16
1484*1b481fc3SMaciej Żenczykowski 
1485*1b481fc3SMaciej Żenczykowski /* MD_RXD_REG: PHY management receive data register */
1486*1b481fc3SMaciej Żenczykowski #define	FR_AB_MD_RXD 0x00000c10
1487*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_RXD_LBN 0
1488*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_RXD_WIDTH 16
1489*1b481fc3SMaciej Żenczykowski 
1490*1b481fc3SMaciej Żenczykowski /* MD_CS_REG: PHY management configuration & status register */
1491*1b481fc3SMaciej Żenczykowski #define	FR_AB_MD_CS 0x00000c20
1492*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_RD_EN_CMD_LBN 15
1493*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_RD_EN_CMD_WIDTH 1
1494*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_WR_EN_CMD_LBN 14
1495*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_WR_EN_CMD_WIDTH 1
1496*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_ADDR_CMD_LBN 13
1497*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_ADDR_CMD_WIDTH 1
1498*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_PT_LBN 7
1499*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_PT_WIDTH 3
1500*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_PL_LBN 6
1501*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_PL_WIDTH 1
1502*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_INT_CLR_LBN 5
1503*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_INT_CLR_WIDTH 1
1504*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_GC_LBN 4
1505*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_GC_WIDTH 1
1506*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_PRSP_LBN 3
1507*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_PRSP_WIDTH 1
1508*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_RIC_LBN 2
1509*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_RIC_WIDTH 1
1510*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_RDC_LBN 1
1511*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_RDC_WIDTH 1
1512*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_WRC_LBN 0
1513*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_WRC_WIDTH 1
1514*1b481fc3SMaciej Żenczykowski 
1515*1b481fc3SMaciej Żenczykowski /* MD_PHY_ADR_REG: PHY management PHY address register */
1516*1b481fc3SMaciej Żenczykowski #define	FR_AB_MD_PHY_ADR 0x00000c30
1517*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_PHY_ADR_LBN 0
1518*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_PHY_ADR_WIDTH 16
1519*1b481fc3SMaciej Żenczykowski 
1520*1b481fc3SMaciej Żenczykowski /* MD_ID_REG: PHY management ID register */
1521*1b481fc3SMaciej Żenczykowski #define	FR_AB_MD_ID 0x00000c40
1522*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_PRT_ADR_LBN 11
1523*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_PRT_ADR_WIDTH 5
1524*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_DEV_ADR_LBN 6
1525*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_DEV_ADR_WIDTH 5
1526*1b481fc3SMaciej Żenczykowski 
1527*1b481fc3SMaciej Żenczykowski /* MD_STAT_REG: PHY management status & mask register */
1528*1b481fc3SMaciej Żenczykowski #define	FR_AB_MD_STAT 0x00000c50
1529*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_PINT_LBN 4
1530*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_PINT_WIDTH 1
1531*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_DONE_LBN 3
1532*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_DONE_WIDTH 1
1533*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_BSERR_LBN 2
1534*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_BSERR_WIDTH 1
1535*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_LNFL_LBN 1
1536*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_LNFL_WIDTH 1
1537*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_BSY_LBN 0
1538*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MD_BSY_WIDTH 1
1539*1b481fc3SMaciej Żenczykowski 
1540*1b481fc3SMaciej Żenczykowski /* MAC_STAT_DMA_REG: Port MAC statistical counter DMA register */
1541*1b481fc3SMaciej Żenczykowski #define	FR_AB_MAC_STAT_DMA 0x00000c60
1542*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MAC_STAT_DMA_CMD_LBN 48
1543*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MAC_STAT_DMA_CMD_WIDTH 1
1544*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MAC_STAT_DMA_ADR_LBN 0
1545*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MAC_STAT_DMA_ADR_WIDTH 48
1546*1b481fc3SMaciej Żenczykowski 
1547*1b481fc3SMaciej Żenczykowski /* MAC_CTRL_REG: Port MAC control register */
1548*1b481fc3SMaciej Żenczykowski #define	FR_AB_MAC_CTRL 0x00000c80
1549*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MAC_XOFF_VAL_LBN 16
1550*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MAC_XOFF_VAL_WIDTH 16
1551*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TXFIFO_DRAIN_EN_LBN 7
1552*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TXFIFO_DRAIN_EN_WIDTH 1
1553*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MAC_XG_DISTXCRC_LBN 5
1554*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MAC_XG_DISTXCRC_WIDTH 1
1555*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MAC_BCAD_ACPT_LBN 4
1556*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MAC_BCAD_ACPT_WIDTH 1
1557*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MAC_UC_PROM_LBN 3
1558*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MAC_UC_PROM_WIDTH 1
1559*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MAC_LINK_STATUS_LBN 2
1560*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MAC_LINK_STATUS_WIDTH 1
1561*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MAC_SPEED_LBN 0
1562*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MAC_SPEED_WIDTH 2
1563*1b481fc3SMaciej Żenczykowski #define	FFE_AB_MAC_SPEED_10G 3
1564*1b481fc3SMaciej Żenczykowski #define	FFE_AB_MAC_SPEED_1G 2
1565*1b481fc3SMaciej Żenczykowski #define	FFE_AB_MAC_SPEED_100M 1
1566*1b481fc3SMaciej Żenczykowski #define	FFE_AB_MAC_SPEED_10M 0
1567*1b481fc3SMaciej Żenczykowski 
1568*1b481fc3SMaciej Żenczykowski /* GEN_MODE_REG: General Purpose mode register (external interrupt mask) */
1569*1b481fc3SMaciej Żenczykowski #define	FR_BB_GEN_MODE 0x00000c90
1570*1b481fc3SMaciej Żenczykowski #define	FRF_BB_XFP_PHY_INT_POL_SEL_LBN 3
1571*1b481fc3SMaciej Żenczykowski #define	FRF_BB_XFP_PHY_INT_POL_SEL_WIDTH 1
1572*1b481fc3SMaciej Żenczykowski #define	FRF_BB_XG_PHY_INT_POL_SEL_LBN 2
1573*1b481fc3SMaciej Żenczykowski #define	FRF_BB_XG_PHY_INT_POL_SEL_WIDTH 1
1574*1b481fc3SMaciej Żenczykowski #define	FRF_BB_XFP_PHY_INT_MASK_LBN 1
1575*1b481fc3SMaciej Żenczykowski #define	FRF_BB_XFP_PHY_INT_MASK_WIDTH 1
1576*1b481fc3SMaciej Żenczykowski #define	FRF_BB_XG_PHY_INT_MASK_LBN 0
1577*1b481fc3SMaciej Żenczykowski #define	FRF_BB_XG_PHY_INT_MASK_WIDTH 1
1578*1b481fc3SMaciej Żenczykowski 
1579*1b481fc3SMaciej Żenczykowski /* MAC_MC_HASH_REG0: Multicast address hash table */
1580*1b481fc3SMaciej Żenczykowski #define	FR_AB_MAC_MC_HASH_REG0 0x00000ca0
1581*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MAC_MCAST_HASH0_LBN 0
1582*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MAC_MCAST_HASH0_WIDTH 128
1583*1b481fc3SMaciej Żenczykowski 
1584*1b481fc3SMaciej Żenczykowski /* MAC_MC_HASH_REG1: Multicast address hash table */
1585*1b481fc3SMaciej Żenczykowski #define	FR_AB_MAC_MC_HASH_REG1 0x00000cb0
1586*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MAC_MCAST_HASH1_LBN 0
1587*1b481fc3SMaciej Żenczykowski #define	FRF_AB_MAC_MCAST_HASH1_WIDTH 128
1588*1b481fc3SMaciej Żenczykowski 
1589*1b481fc3SMaciej Żenczykowski /* GM_CFG1_REG: GMAC configuration register 1 */
1590*1b481fc3SMaciej Żenczykowski #define	FR_AB_GM_CFG1 0x00000e00
1591*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_SW_RST_LBN 31
1592*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_SW_RST_WIDTH 1
1593*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_SIM_RST_LBN 30
1594*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_SIM_RST_WIDTH 1
1595*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_RST_RX_MAC_CTL_LBN 19
1596*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_RST_RX_MAC_CTL_WIDTH 1
1597*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_RST_TX_MAC_CTL_LBN 18
1598*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_RST_TX_MAC_CTL_WIDTH 1
1599*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_RST_RX_FUNC_LBN 17
1600*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_RST_RX_FUNC_WIDTH 1
1601*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_RST_TX_FUNC_LBN 16
1602*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_RST_TX_FUNC_WIDTH 1
1603*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_LOOP_LBN 8
1604*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_LOOP_WIDTH 1
1605*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_RX_FC_EN_LBN 5
1606*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_RX_FC_EN_WIDTH 1
1607*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_TX_FC_EN_LBN 4
1608*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_TX_FC_EN_WIDTH 1
1609*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_SYNC_RXEN_LBN 3
1610*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_SYNC_RXEN_WIDTH 1
1611*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_RX_EN_LBN 2
1612*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_RX_EN_WIDTH 1
1613*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_SYNC_TXEN_LBN 1
1614*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_SYNC_TXEN_WIDTH 1
1615*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_TX_EN_LBN 0
1616*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_TX_EN_WIDTH 1
1617*1b481fc3SMaciej Żenczykowski 
1618*1b481fc3SMaciej Żenczykowski /* GM_CFG2_REG: GMAC configuration register 2 */
1619*1b481fc3SMaciej Żenczykowski #define	FR_AB_GM_CFG2 0x00000e10
1620*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_PAMBL_LEN_LBN 12
1621*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_PAMBL_LEN_WIDTH 4
1622*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_IF_MODE_LBN 8
1623*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_IF_MODE_WIDTH 2
1624*1b481fc3SMaciej Żenczykowski #define	FFE_AB_IF_MODE_BYTE_MODE 2
1625*1b481fc3SMaciej Żenczykowski #define	FFE_AB_IF_MODE_NIBBLE_MODE 1
1626*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_HUGE_FRM_EN_LBN 5
1627*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_HUGE_FRM_EN_WIDTH 1
1628*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_LEN_CHK_LBN 4
1629*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_LEN_CHK_WIDTH 1
1630*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_PAD_CRC_EN_LBN 2
1631*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_PAD_CRC_EN_WIDTH 1
1632*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_CRC_EN_LBN 1
1633*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_CRC_EN_WIDTH 1
1634*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_FD_LBN 0
1635*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_FD_WIDTH 1
1636*1b481fc3SMaciej Żenczykowski 
1637*1b481fc3SMaciej Żenczykowski /* GM_IPG_REG: GMAC IPG register */
1638*1b481fc3SMaciej Żenczykowski #define	FR_AB_GM_IPG 0x00000e20
1639*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_NONB2B_IPG1_LBN 24
1640*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_NONB2B_IPG1_WIDTH 7
1641*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_NONB2B_IPG2_LBN 16
1642*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_NONB2B_IPG2_WIDTH 7
1643*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_MIN_IPG_ENF_LBN 8
1644*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_MIN_IPG_ENF_WIDTH 8
1645*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_B2B_IPG_LBN 0
1646*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_B2B_IPG_WIDTH 7
1647*1b481fc3SMaciej Żenczykowski 
1648*1b481fc3SMaciej Żenczykowski /* GM_HD_REG: GMAC half duplex register */
1649*1b481fc3SMaciej Żenczykowski #define	FR_AB_GM_HD 0x00000e30
1650*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_ALT_BOFF_VAL_LBN 20
1651*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_ALT_BOFF_VAL_WIDTH 4
1652*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_ALT_BOFF_EN_LBN 19
1653*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_ALT_BOFF_EN_WIDTH 1
1654*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_BP_NO_BOFF_LBN 18
1655*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_BP_NO_BOFF_WIDTH 1
1656*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_DIS_BOFF_LBN 17
1657*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_DIS_BOFF_WIDTH 1
1658*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_EXDEF_TX_EN_LBN 16
1659*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_EXDEF_TX_EN_WIDTH 1
1660*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_RTRY_LIMIT_LBN 12
1661*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_RTRY_LIMIT_WIDTH 4
1662*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_COL_WIN_LBN 0
1663*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_COL_WIN_WIDTH 10
1664*1b481fc3SMaciej Żenczykowski 
1665*1b481fc3SMaciej Żenczykowski /* GM_MAX_FLEN_REG: GMAC maximum frame length register */
1666*1b481fc3SMaciej Żenczykowski #define	FR_AB_GM_MAX_FLEN 0x00000e40
1667*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_MAX_FLEN_LBN 0
1668*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_MAX_FLEN_WIDTH 16
1669*1b481fc3SMaciej Żenczykowski 
1670*1b481fc3SMaciej Żenczykowski /* GM_TEST_REG: GMAC test register */
1671*1b481fc3SMaciej Żenczykowski #define	FR_AB_GM_TEST 0x00000e70
1672*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_MAX_BOFF_LBN 3
1673*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_MAX_BOFF_WIDTH 1
1674*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_REG_TX_FLOW_EN_LBN 2
1675*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_REG_TX_FLOW_EN_WIDTH 1
1676*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_TEST_PAUSE_LBN 1
1677*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_TEST_PAUSE_WIDTH 1
1678*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_SHORT_SLOT_LBN 0
1679*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_SHORT_SLOT_WIDTH 1
1680*1b481fc3SMaciej Żenczykowski 
1681*1b481fc3SMaciej Żenczykowski /* GM_ADR1_REG: GMAC station address register 1 */
1682*1b481fc3SMaciej Żenczykowski #define	FR_AB_GM_ADR1 0x00000f00
1683*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_ADR_B0_LBN 24
1684*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_ADR_B0_WIDTH 8
1685*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_ADR_B1_LBN 16
1686*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_ADR_B1_WIDTH 8
1687*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_ADR_B2_LBN 8
1688*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_ADR_B2_WIDTH 8
1689*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_ADR_B3_LBN 0
1690*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_ADR_B3_WIDTH 8
1691*1b481fc3SMaciej Żenczykowski 
1692*1b481fc3SMaciej Żenczykowski /* GM_ADR2_REG: GMAC station address register 2 */
1693*1b481fc3SMaciej Żenczykowski #define	FR_AB_GM_ADR2 0x00000f10
1694*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_ADR_B4_LBN 24
1695*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_ADR_B4_WIDTH 8
1696*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_ADR_B5_LBN 16
1697*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GM_ADR_B5_WIDTH 8
1698*1b481fc3SMaciej Żenczykowski 
1699*1b481fc3SMaciej Żenczykowski /* GMF_CFG0_REG: GMAC FIFO configuration register 0 */
1700*1b481fc3SMaciej Żenczykowski #define	FR_AB_GMF_CFG0 0x00000f20
1701*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_FTFENRPLY_LBN 20
1702*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_FTFENRPLY_WIDTH 1
1703*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_STFENRPLY_LBN 19
1704*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_STFENRPLY_WIDTH 1
1705*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_FRFENRPLY_LBN 18
1706*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_FRFENRPLY_WIDTH 1
1707*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_SRFENRPLY_LBN 17
1708*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_SRFENRPLY_WIDTH 1
1709*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_WTMENRPLY_LBN 16
1710*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_WTMENRPLY_WIDTH 1
1711*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_FTFENREQ_LBN 12
1712*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_FTFENREQ_WIDTH 1
1713*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_STFENREQ_LBN 11
1714*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_STFENREQ_WIDTH 1
1715*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_FRFENREQ_LBN 10
1716*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_FRFENREQ_WIDTH 1
1717*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_SRFENREQ_LBN 9
1718*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_SRFENREQ_WIDTH 1
1719*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_WTMENREQ_LBN 8
1720*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_WTMENREQ_WIDTH 1
1721*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_HSTRSTFT_LBN 4
1722*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_HSTRSTFT_WIDTH 1
1723*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_HSTRSTST_LBN 3
1724*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_HSTRSTST_WIDTH 1
1725*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_HSTRSTFR_LBN 2
1726*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_HSTRSTFR_WIDTH 1
1727*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_HSTRSTSR_LBN 1
1728*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_HSTRSTSR_WIDTH 1
1729*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_HSTRSTWT_LBN 0
1730*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_HSTRSTWT_WIDTH 1
1731*1b481fc3SMaciej Żenczykowski 
1732*1b481fc3SMaciej Żenczykowski /* GMF_CFG1_REG: GMAC FIFO configuration register 1 */
1733*1b481fc3SMaciej Żenczykowski #define	FR_AB_GMF_CFG1 0x00000f30
1734*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_CFGFRTH_LBN 16
1735*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_CFGFRTH_WIDTH 5
1736*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_CFGXOFFRTX_LBN 0
1737*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_CFGXOFFRTX_WIDTH 16
1738*1b481fc3SMaciej Żenczykowski 
1739*1b481fc3SMaciej Żenczykowski /* GMF_CFG2_REG: GMAC FIFO configuration register 2 */
1740*1b481fc3SMaciej Żenczykowski #define	FR_AB_GMF_CFG2 0x00000f40
1741*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_CFGHWM_LBN 16
1742*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_CFGHWM_WIDTH 6
1743*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_CFGLWM_LBN 0
1744*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_CFGLWM_WIDTH 6
1745*1b481fc3SMaciej Żenczykowski 
1746*1b481fc3SMaciej Żenczykowski /* GMF_CFG3_REG: GMAC FIFO configuration register 3 */
1747*1b481fc3SMaciej Żenczykowski #define	FR_AB_GMF_CFG3 0x00000f50
1748*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_CFGHWMFT_LBN 16
1749*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_CFGHWMFT_WIDTH 6
1750*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_CFGFTTH_LBN 0
1751*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_CFGFTTH_WIDTH 6
1752*1b481fc3SMaciej Żenczykowski 
1753*1b481fc3SMaciej Żenczykowski /* GMF_CFG4_REG: GMAC FIFO configuration register 4 */
1754*1b481fc3SMaciej Żenczykowski #define	FR_AB_GMF_CFG4 0x00000f60
1755*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_HSTFLTRFRM_LBN 0
1756*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_HSTFLTRFRM_WIDTH 18
1757*1b481fc3SMaciej Żenczykowski 
1758*1b481fc3SMaciej Żenczykowski /* GMF_CFG5_REG: GMAC FIFO configuration register 5 */
1759*1b481fc3SMaciej Żenczykowski #define	FR_AB_GMF_CFG5 0x00000f70
1760*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_CFGHDPLX_LBN 22
1761*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_CFGHDPLX_WIDTH 1
1762*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_SRFULL_LBN 21
1763*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_SRFULL_WIDTH 1
1764*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_HSTSRFULLCLR_LBN 20
1765*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_HSTSRFULLCLR_WIDTH 1
1766*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_CFGBYTMODE_LBN 19
1767*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_CFGBYTMODE_WIDTH 1
1768*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_HSTDRPLT64_LBN 18
1769*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_HSTDRPLT64_WIDTH 1
1770*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_HSTFLTRFRMDC_LBN 0
1771*1b481fc3SMaciej Żenczykowski #define	FRF_AB_GMF_HSTFLTRFRMDC_WIDTH 18
1772*1b481fc3SMaciej Żenczykowski 
1773*1b481fc3SMaciej Żenczykowski /* TX_SRC_MAC_TBL: Transmit IP source address filter table */
1774*1b481fc3SMaciej Żenczykowski #define	FR_BB_TX_SRC_MAC_TBL 0x00001000
1775*1b481fc3SMaciej Żenczykowski #define	FR_BB_TX_SRC_MAC_TBL_STEP 16
1776*1b481fc3SMaciej Żenczykowski #define	FR_BB_TX_SRC_MAC_TBL_ROWS 16
1777*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_SRC_MAC_ADR_1_LBN 64
1778*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_SRC_MAC_ADR_1_WIDTH 48
1779*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_SRC_MAC_ADR_0_LBN 0
1780*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_SRC_MAC_ADR_0_WIDTH 48
1781*1b481fc3SMaciej Żenczykowski 
1782*1b481fc3SMaciej Żenczykowski /* TX_SRC_MAC_CTL_REG: Transmit MAC source address filter control */
1783*1b481fc3SMaciej Żenczykowski #define	FR_BB_TX_SRC_MAC_CTL 0x00001100
1784*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_SRC_DROP_CTR_LBN 16
1785*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_SRC_DROP_CTR_WIDTH 16
1786*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_SRC_FLTR_EN_LBN 15
1787*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_SRC_FLTR_EN_WIDTH 1
1788*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_DROP_CTR_CLR_LBN 12
1789*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_DROP_CTR_CLR_WIDTH 1
1790*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_MAC_QID_SEL_LBN 0
1791*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TX_MAC_QID_SEL_WIDTH 3
1792*1b481fc3SMaciej Żenczykowski 
1793*1b481fc3SMaciej Żenczykowski /* XM_ADR_LO_REG: XGMAC address register low */
1794*1b481fc3SMaciej Żenczykowski #define	FR_AB_XM_ADR_LO 0x00001200
1795*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_ADR_LO_LBN 0
1796*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_ADR_LO_WIDTH 32
1797*1b481fc3SMaciej Żenczykowski 
1798*1b481fc3SMaciej Żenczykowski /* XM_ADR_HI_REG: XGMAC address register high */
1799*1b481fc3SMaciej Żenczykowski #define	FR_AB_XM_ADR_HI 0x00001210
1800*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_ADR_HI_LBN 0
1801*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_ADR_HI_WIDTH 16
1802*1b481fc3SMaciej Żenczykowski 
1803*1b481fc3SMaciej Żenczykowski /* XM_GLB_CFG_REG: XGMAC global configuration */
1804*1b481fc3SMaciej Żenczykowski #define	FR_AB_XM_GLB_CFG 0x00001220
1805*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_RMTFLT_GEN_LBN 17
1806*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_RMTFLT_GEN_WIDTH 1
1807*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_DEBUG_MODE_LBN 16
1808*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_DEBUG_MODE_WIDTH 1
1809*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_RX_STAT_EN_LBN 11
1810*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_RX_STAT_EN_WIDTH 1
1811*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_TX_STAT_EN_LBN 10
1812*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_TX_STAT_EN_WIDTH 1
1813*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_RX_JUMBO_MODE_LBN 6
1814*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_RX_JUMBO_MODE_WIDTH 1
1815*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_WAN_MODE_LBN 5
1816*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_WAN_MODE_WIDTH 1
1817*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_INTCLR_MODE_LBN 3
1818*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_INTCLR_MODE_WIDTH 1
1819*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_CORE_RST_LBN 0
1820*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_CORE_RST_WIDTH 1
1821*1b481fc3SMaciej Żenczykowski 
1822*1b481fc3SMaciej Żenczykowski /* XM_TX_CFG_REG: XGMAC transmit configuration */
1823*1b481fc3SMaciej Żenczykowski #define	FR_AB_XM_TX_CFG 0x00001230
1824*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_TX_PROG_LBN 24
1825*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_TX_PROG_WIDTH 1
1826*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_IPG_LBN 16
1827*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_IPG_WIDTH 4
1828*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_FCNTL_LBN 10
1829*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_FCNTL_WIDTH 1
1830*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_TXCRC_LBN 8
1831*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_TXCRC_WIDTH 1
1832*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_EDRC_LBN 6
1833*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_EDRC_WIDTH 1
1834*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_AUTO_PAD_LBN 5
1835*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_AUTO_PAD_WIDTH 1
1836*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_TX_PRMBL_LBN 2
1837*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_TX_PRMBL_WIDTH 1
1838*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_TXEN_LBN 1
1839*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_TXEN_WIDTH 1
1840*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_TX_RST_LBN 0
1841*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_TX_RST_WIDTH 1
1842*1b481fc3SMaciej Żenczykowski 
1843*1b481fc3SMaciej Żenczykowski /* XM_RX_CFG_REG: XGMAC receive configuration */
1844*1b481fc3SMaciej Żenczykowski #define	FR_AB_XM_RX_CFG 0x00001240
1845*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_PASS_LENERR_LBN 26
1846*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_PASS_LENERR_WIDTH 1
1847*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_PASS_CRC_ERR_LBN 25
1848*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_PASS_CRC_ERR_WIDTH 1
1849*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_PASS_PRMBLE_ERR_LBN 24
1850*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_PASS_PRMBLE_ERR_WIDTH 1
1851*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_REJ_BCAST_LBN 20
1852*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_REJ_BCAST_WIDTH 1
1853*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_ACPT_ALL_MCAST_LBN 11
1854*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_ACPT_ALL_MCAST_WIDTH 1
1855*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_ACPT_ALL_UCAST_LBN 9
1856*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_ACPT_ALL_UCAST_WIDTH 1
1857*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_AUTO_DEPAD_LBN 8
1858*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_AUTO_DEPAD_WIDTH 1
1859*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_RXCRC_LBN 3
1860*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_RXCRC_WIDTH 1
1861*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_RX_PRMBL_LBN 2
1862*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_RX_PRMBL_WIDTH 1
1863*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_RXEN_LBN 1
1864*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_RXEN_WIDTH 1
1865*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_RX_RST_LBN 0
1866*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_RX_RST_WIDTH 1
1867*1b481fc3SMaciej Żenczykowski 
1868*1b481fc3SMaciej Żenczykowski /* XM_MGT_INT_MASK: documentation to be written for sum_XM_MGT_INT_MASK */
1869*1b481fc3SMaciej Żenczykowski #define	FR_AB_XM_MGT_INT_MASK 0x00001250
1870*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_MSK_STA_INTR_LBN 16
1871*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_MSK_STA_INTR_WIDTH 1
1872*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_MSK_STAT_CNTR_HF_LBN 9
1873*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_MSK_STAT_CNTR_HF_WIDTH 1
1874*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_MSK_STAT_CNTR_OF_LBN 8
1875*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_MSK_STAT_CNTR_OF_WIDTH 1
1876*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_MSK_PRMBLE_ERR_LBN 2
1877*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_MSK_PRMBLE_ERR_WIDTH 1
1878*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_MSK_RMTFLT_LBN 1
1879*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_MSK_RMTFLT_WIDTH 1
1880*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_MSK_LCLFLT_LBN 0
1881*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_MSK_LCLFLT_WIDTH 1
1882*1b481fc3SMaciej Żenczykowski 
1883*1b481fc3SMaciej Żenczykowski /* XM_FC_REG: XGMAC flow control register */
1884*1b481fc3SMaciej Żenczykowski #define	FR_AB_XM_FC 0x00001270
1885*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_PAUSE_TIME_LBN 16
1886*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_PAUSE_TIME_WIDTH 16
1887*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_RX_MAC_STAT_LBN 11
1888*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_RX_MAC_STAT_WIDTH 1
1889*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_TX_MAC_STAT_LBN 10
1890*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_TX_MAC_STAT_WIDTH 1
1891*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_MCNTL_PASS_LBN 8
1892*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_MCNTL_PASS_WIDTH 2
1893*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_REJ_CNTL_UCAST_LBN 6
1894*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_REJ_CNTL_UCAST_WIDTH 1
1895*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_REJ_CNTL_MCAST_LBN 5
1896*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_REJ_CNTL_MCAST_WIDTH 1
1897*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_ZPAUSE_LBN 2
1898*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_ZPAUSE_WIDTH 1
1899*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_XMIT_PAUSE_LBN 1
1900*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_XMIT_PAUSE_WIDTH 1
1901*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_DIS_FCNTL_LBN 0
1902*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_DIS_FCNTL_WIDTH 1
1903*1b481fc3SMaciej Żenczykowski 
1904*1b481fc3SMaciej Żenczykowski /* XM_PAUSE_TIME_REG: XGMAC pause time register */
1905*1b481fc3SMaciej Żenczykowski #define	FR_AB_XM_PAUSE_TIME 0x00001290
1906*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_TX_PAUSE_CNT_LBN 16
1907*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_TX_PAUSE_CNT_WIDTH 16
1908*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_RX_PAUSE_CNT_LBN 0
1909*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_RX_PAUSE_CNT_WIDTH 16
1910*1b481fc3SMaciej Żenczykowski 
1911*1b481fc3SMaciej Żenczykowski /* XM_TX_PARAM_REG: XGMAC transmit parameter register */
1912*1b481fc3SMaciej Żenczykowski #define	FR_AB_XM_TX_PARAM 0x000012d0
1913*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_TX_JUMBO_MODE_LBN 31
1914*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_TX_JUMBO_MODE_WIDTH 1
1915*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_MAX_TX_FRM_SIZE_HI_LBN 19
1916*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_MAX_TX_FRM_SIZE_HI_WIDTH 11
1917*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_MAX_TX_FRM_SIZE_LO_LBN 16
1918*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_MAX_TX_FRM_SIZE_LO_WIDTH 3
1919*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_PAD_CHAR_LBN 0
1920*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_PAD_CHAR_WIDTH 8
1921*1b481fc3SMaciej Żenczykowski 
1922*1b481fc3SMaciej Żenczykowski /* XM_RX_PARAM_REG: XGMAC receive parameter register */
1923*1b481fc3SMaciej Żenczykowski #define	FR_AB_XM_RX_PARAM 0x000012e0
1924*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_MAX_RX_FRM_SIZE_HI_LBN 3
1925*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_MAX_RX_FRM_SIZE_HI_WIDTH 11
1926*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_MAX_RX_FRM_SIZE_LO_LBN 0
1927*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_MAX_RX_FRM_SIZE_LO_WIDTH 3
1928*1b481fc3SMaciej Żenczykowski 
1929*1b481fc3SMaciej Żenczykowski /* XM_MGT_INT_MSK_REG: XGMAC management interrupt mask register */
1930*1b481fc3SMaciej Żenczykowski #define	FR_AB_XM_MGT_INT_MSK 0x000012f0
1931*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_STAT_CNTR_OF_LBN 9
1932*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_STAT_CNTR_OF_WIDTH 1
1933*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_STAT_CNTR_HF_LBN 8
1934*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_STAT_CNTR_HF_WIDTH 1
1935*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_PRMBLE_ERR_LBN 2
1936*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_PRMBLE_ERR_WIDTH 1
1937*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_RMTFLT_LBN 1
1938*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_RMTFLT_WIDTH 1
1939*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_LCLFLT_LBN 0
1940*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XM_LCLFLT_WIDTH 1
1941*1b481fc3SMaciej Żenczykowski 
1942*1b481fc3SMaciej Żenczykowski /* XX_PWR_RST_REG: XGXS/XAUI powerdown/reset register */
1943*1b481fc3SMaciej Żenczykowski #define	FR_AB_XX_PWR_RST 0x00001300
1944*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_PWRDND_SIG_LBN 31
1945*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_PWRDND_SIG_WIDTH 1
1946*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_PWRDNC_SIG_LBN 30
1947*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_PWRDNC_SIG_WIDTH 1
1948*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_PWRDNB_SIG_LBN 29
1949*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_PWRDNB_SIG_WIDTH 1
1950*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_PWRDNA_SIG_LBN 28
1951*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_PWRDNA_SIG_WIDTH 1
1952*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_SIM_MODE_LBN 27
1953*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_SIM_MODE_WIDTH 1
1954*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RSTPLLCD_SIG_LBN 25
1955*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RSTPLLCD_SIG_WIDTH 1
1956*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RSTPLLAB_SIG_LBN 24
1957*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RSTPLLAB_SIG_WIDTH 1
1958*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RESETD_SIG_LBN 23
1959*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RESETD_SIG_WIDTH 1
1960*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RESETC_SIG_LBN 22
1961*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RESETC_SIG_WIDTH 1
1962*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RESETB_SIG_LBN 21
1963*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RESETB_SIG_WIDTH 1
1964*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RESETA_SIG_LBN 20
1965*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RESETA_SIG_WIDTH 1
1966*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RSTXGXSRX_SIG_LBN 18
1967*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RSTXGXSRX_SIG_WIDTH 1
1968*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RSTXGXSTX_SIG_LBN 17
1969*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RSTXGXSTX_SIG_WIDTH 1
1970*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_SD_RST_ACT_LBN 16
1971*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_SD_RST_ACT_WIDTH 1
1972*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_PWRDND_EN_LBN 15
1973*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_PWRDND_EN_WIDTH 1
1974*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_PWRDNC_EN_LBN 14
1975*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_PWRDNC_EN_WIDTH 1
1976*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_PWRDNB_EN_LBN 13
1977*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_PWRDNB_EN_WIDTH 1
1978*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_PWRDNA_EN_LBN 12
1979*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_PWRDNA_EN_WIDTH 1
1980*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RSTPLLCD_EN_LBN 9
1981*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RSTPLLCD_EN_WIDTH 1
1982*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RSTPLLAB_EN_LBN 8
1983*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RSTPLLAB_EN_WIDTH 1
1984*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RESETD_EN_LBN 7
1985*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RESETD_EN_WIDTH 1
1986*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RESETC_EN_LBN 6
1987*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RESETC_EN_WIDTH 1
1988*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RESETB_EN_LBN 5
1989*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RESETB_EN_WIDTH 1
1990*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RESETA_EN_LBN 4
1991*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RESETA_EN_WIDTH 1
1992*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RSTXGXSRX_EN_LBN 2
1993*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RSTXGXSRX_EN_WIDTH 1
1994*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RSTXGXSTX_EN_LBN 1
1995*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RSTXGXSTX_EN_WIDTH 1
1996*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RST_XX_EN_LBN 0
1997*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_RST_XX_EN_WIDTH 1
1998*1b481fc3SMaciej Żenczykowski 
1999*1b481fc3SMaciej Żenczykowski /* XX_SD_CTL_REG: XGXS/XAUI powerdown/reset control register */
2000*1b481fc3SMaciej Żenczykowski #define	FR_AB_XX_SD_CTL 0x00001310
2001*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_TERMADJ1_LBN 17
2002*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_TERMADJ1_WIDTH 1
2003*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_TERMADJ0_LBN 16
2004*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_TERMADJ0_WIDTH 1
2005*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_HIDRVD_LBN 15
2006*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_HIDRVD_WIDTH 1
2007*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_LODRVD_LBN 14
2008*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_LODRVD_WIDTH 1
2009*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_HIDRVC_LBN 13
2010*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_HIDRVC_WIDTH 1
2011*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_LODRVC_LBN 12
2012*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_LODRVC_WIDTH 1
2013*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_HIDRVB_LBN 11
2014*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_HIDRVB_WIDTH 1
2015*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_LODRVB_LBN 10
2016*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_LODRVB_WIDTH 1
2017*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_HIDRVA_LBN 9
2018*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_HIDRVA_WIDTH 1
2019*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_LODRVA_LBN 8
2020*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_LODRVA_WIDTH 1
2021*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_LPBKD_LBN 3
2022*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_LPBKD_WIDTH 1
2023*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_LPBKC_LBN 2
2024*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_LPBKC_WIDTH 1
2025*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_LPBKB_LBN 1
2026*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_LPBKB_WIDTH 1
2027*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_LPBKA_LBN 0
2028*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_LPBKA_WIDTH 1
2029*1b481fc3SMaciej Żenczykowski 
2030*1b481fc3SMaciej Żenczykowski /* XX_TXDRV_CTL_REG: XAUI SerDes transmit drive control register */
2031*1b481fc3SMaciej Żenczykowski #define	FR_AB_XX_TXDRV_CTL 0x00001320
2032*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_DEQD_LBN 28
2033*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_DEQD_WIDTH 4
2034*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_DEQC_LBN 24
2035*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_DEQC_WIDTH 4
2036*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_DEQB_LBN 20
2037*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_DEQB_WIDTH 4
2038*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_DEQA_LBN 16
2039*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_DEQA_WIDTH 4
2040*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_DTXD_LBN 12
2041*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_DTXD_WIDTH 4
2042*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_DTXC_LBN 8
2043*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_DTXC_WIDTH 4
2044*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_DTXB_LBN 4
2045*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_DTXB_WIDTH 4
2046*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_DTXA_LBN 0
2047*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_DTXA_WIDTH 4
2048*1b481fc3SMaciej Żenczykowski 
2049*1b481fc3SMaciej Żenczykowski /* XX_PRBS_CTL_REG: documentation to be written for sum_XX_PRBS_CTL_REG */
2050*1b481fc3SMaciej Żenczykowski #define	FR_AB_XX_PRBS_CTL 0x00001330
2051*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH3_RX_PRBS_SEL_LBN 30
2052*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH3_RX_PRBS_SEL_WIDTH 2
2053*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH3_RX_PRBS_INV_LBN 29
2054*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH3_RX_PRBS_INV_WIDTH 1
2055*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH3_RX_PRBS_CHKEN_LBN 28
2056*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH3_RX_PRBS_CHKEN_WIDTH 1
2057*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH2_RX_PRBS_SEL_LBN 26
2058*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH2_RX_PRBS_SEL_WIDTH 2
2059*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH2_RX_PRBS_INV_LBN 25
2060*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH2_RX_PRBS_INV_WIDTH 1
2061*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH2_RX_PRBS_CHKEN_LBN 24
2062*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH2_RX_PRBS_CHKEN_WIDTH 1
2063*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH1_RX_PRBS_SEL_LBN 22
2064*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH1_RX_PRBS_SEL_WIDTH 2
2065*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH1_RX_PRBS_INV_LBN 21
2066*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH1_RX_PRBS_INV_WIDTH 1
2067*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH1_RX_PRBS_CHKEN_LBN 20
2068*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH1_RX_PRBS_CHKEN_WIDTH 1
2069*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH0_RX_PRBS_SEL_LBN 18
2070*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH0_RX_PRBS_SEL_WIDTH 2
2071*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH0_RX_PRBS_INV_LBN 17
2072*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH0_RX_PRBS_INV_WIDTH 1
2073*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH0_RX_PRBS_CHKEN_LBN 16
2074*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH0_RX_PRBS_CHKEN_WIDTH 1
2075*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH3_TX_PRBS_SEL_LBN 14
2076*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH3_TX_PRBS_SEL_WIDTH 2
2077*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH3_TX_PRBS_INV_LBN 13
2078*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH3_TX_PRBS_INV_WIDTH 1
2079*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH3_TX_PRBS_CHKEN_LBN 12
2080*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH3_TX_PRBS_CHKEN_WIDTH 1
2081*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH2_TX_PRBS_SEL_LBN 10
2082*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH2_TX_PRBS_SEL_WIDTH 2
2083*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH2_TX_PRBS_INV_LBN 9
2084*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH2_TX_PRBS_INV_WIDTH 1
2085*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH2_TX_PRBS_CHKEN_LBN 8
2086*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH2_TX_PRBS_CHKEN_WIDTH 1
2087*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH1_TX_PRBS_SEL_LBN 6
2088*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH1_TX_PRBS_SEL_WIDTH 2
2089*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH1_TX_PRBS_INV_LBN 5
2090*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH1_TX_PRBS_INV_WIDTH 1
2091*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH1_TX_PRBS_CHKEN_LBN 4
2092*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH1_TX_PRBS_CHKEN_WIDTH 1
2093*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH0_TX_PRBS_SEL_LBN 2
2094*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH0_TX_PRBS_SEL_WIDTH 2
2095*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH0_TX_PRBS_INV_LBN 1
2096*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH0_TX_PRBS_INV_WIDTH 1
2097*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH0_TX_PRBS_CHKEN_LBN 0
2098*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH0_TX_PRBS_CHKEN_WIDTH 1
2099*1b481fc3SMaciej Żenczykowski 
2100*1b481fc3SMaciej Żenczykowski /* XX_PRBS_CHK_REG: documentation to be written for sum_XX_PRBS_CHK_REG */
2101*1b481fc3SMaciej Żenczykowski #define	FR_AB_XX_PRBS_CHK 0x00001340
2102*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_REV_LB_EN_LBN 16
2103*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_REV_LB_EN_WIDTH 1
2104*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH3_DEG_DET_LBN 15
2105*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH3_DEG_DET_WIDTH 1
2106*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH3_LFSR_LOCK_IND_LBN 14
2107*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH3_LFSR_LOCK_IND_WIDTH 1
2108*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH3_PRBS_FRUN_LBN 13
2109*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH3_PRBS_FRUN_WIDTH 1
2110*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH3_ERR_CHK_LBN 12
2111*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH3_ERR_CHK_WIDTH 1
2112*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH2_DEG_DET_LBN 11
2113*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH2_DEG_DET_WIDTH 1
2114*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH2_LFSR_LOCK_IND_LBN 10
2115*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH2_LFSR_LOCK_IND_WIDTH 1
2116*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH2_PRBS_FRUN_LBN 9
2117*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH2_PRBS_FRUN_WIDTH 1
2118*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH2_ERR_CHK_LBN 8
2119*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH2_ERR_CHK_WIDTH 1
2120*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH1_DEG_DET_LBN 7
2121*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH1_DEG_DET_WIDTH 1
2122*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH1_LFSR_LOCK_IND_LBN 6
2123*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH1_LFSR_LOCK_IND_WIDTH 1
2124*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH1_PRBS_FRUN_LBN 5
2125*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH1_PRBS_FRUN_WIDTH 1
2126*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH1_ERR_CHK_LBN 4
2127*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH1_ERR_CHK_WIDTH 1
2128*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH0_DEG_DET_LBN 3
2129*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH0_DEG_DET_WIDTH 1
2130*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH0_LFSR_LOCK_IND_LBN 2
2131*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH0_LFSR_LOCK_IND_WIDTH 1
2132*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH0_PRBS_FRUN_LBN 1
2133*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH0_PRBS_FRUN_WIDTH 1
2134*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH0_ERR_CHK_LBN 0
2135*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH0_ERR_CHK_WIDTH 1
2136*1b481fc3SMaciej Żenczykowski 
2137*1b481fc3SMaciej Żenczykowski /* XX_PRBS_ERR_REG: documentation to be written for sum_XX_PRBS_ERR_REG */
2138*1b481fc3SMaciej Żenczykowski #define	FR_AB_XX_PRBS_ERR 0x00001350
2139*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH3_PRBS_ERR_CNT_LBN 24
2140*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH3_PRBS_ERR_CNT_WIDTH 8
2141*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH2_PRBS_ERR_CNT_LBN 16
2142*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH2_PRBS_ERR_CNT_WIDTH 8
2143*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH1_PRBS_ERR_CNT_LBN 8
2144*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH1_PRBS_ERR_CNT_WIDTH 8
2145*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH0_PRBS_ERR_CNT_LBN 0
2146*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CH0_PRBS_ERR_CNT_WIDTH 8
2147*1b481fc3SMaciej Żenczykowski 
2148*1b481fc3SMaciej Żenczykowski /* XX_CORE_STAT_REG: XAUI XGXS core status register */
2149*1b481fc3SMaciej Żenczykowski #define	FR_AB_XX_CORE_STAT 0x00001360
2150*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_FORCE_SIG3_LBN 31
2151*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_FORCE_SIG3_WIDTH 1
2152*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_FORCE_SIG3_VAL_LBN 30
2153*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_FORCE_SIG3_VAL_WIDTH 1
2154*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_FORCE_SIG2_LBN 29
2155*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_FORCE_SIG2_WIDTH 1
2156*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_FORCE_SIG2_VAL_LBN 28
2157*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_FORCE_SIG2_VAL_WIDTH 1
2158*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_FORCE_SIG1_LBN 27
2159*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_FORCE_SIG1_WIDTH 1
2160*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_FORCE_SIG1_VAL_LBN 26
2161*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_FORCE_SIG1_VAL_WIDTH 1
2162*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_FORCE_SIG0_LBN 25
2163*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_FORCE_SIG0_WIDTH 1
2164*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_FORCE_SIG0_VAL_LBN 24
2165*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_FORCE_SIG0_VAL_WIDTH 1
2166*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_XGXS_LB_EN_LBN 23
2167*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_XGXS_LB_EN_WIDTH 1
2168*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_XGMII_LB_EN_LBN 22
2169*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_XGMII_LB_EN_WIDTH 1
2170*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_MATCH_FAULT_LBN 21
2171*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_MATCH_FAULT_WIDTH 1
2172*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_ALIGN_DONE_LBN 20
2173*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_ALIGN_DONE_WIDTH 1
2174*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_SYNC_STAT3_LBN 19
2175*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_SYNC_STAT3_WIDTH 1
2176*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_SYNC_STAT2_LBN 18
2177*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_SYNC_STAT2_WIDTH 1
2178*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_SYNC_STAT1_LBN 17
2179*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_SYNC_STAT1_WIDTH 1
2180*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_SYNC_STAT0_LBN 16
2181*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_SYNC_STAT0_WIDTH 1
2182*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_COMMA_DET_CH3_LBN 15
2183*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_COMMA_DET_CH3_WIDTH 1
2184*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_COMMA_DET_CH2_LBN 14
2185*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_COMMA_DET_CH2_WIDTH 1
2186*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_COMMA_DET_CH1_LBN 13
2187*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_COMMA_DET_CH1_WIDTH 1
2188*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_COMMA_DET_CH0_LBN 12
2189*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_COMMA_DET_CH0_WIDTH 1
2190*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CGRP_ALIGN_CH3_LBN 11
2191*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CGRP_ALIGN_CH3_WIDTH 1
2192*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CGRP_ALIGN_CH2_LBN 10
2193*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CGRP_ALIGN_CH2_WIDTH 1
2194*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CGRP_ALIGN_CH1_LBN 9
2195*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CGRP_ALIGN_CH1_WIDTH 1
2196*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CGRP_ALIGN_CH0_LBN 8
2197*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CGRP_ALIGN_CH0_WIDTH 1
2198*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CHAR_ERR_CH3_LBN 7
2199*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CHAR_ERR_CH3_WIDTH 1
2200*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CHAR_ERR_CH2_LBN 6
2201*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CHAR_ERR_CH2_WIDTH 1
2202*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CHAR_ERR_CH1_LBN 5
2203*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CHAR_ERR_CH1_WIDTH 1
2204*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CHAR_ERR_CH0_LBN 4
2205*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_CHAR_ERR_CH0_WIDTH 1
2206*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_DISPERR_CH3_LBN 3
2207*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_DISPERR_CH3_WIDTH 1
2208*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_DISPERR_CH2_LBN 2
2209*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_DISPERR_CH2_WIDTH 1
2210*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_DISPERR_CH1_LBN 1
2211*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_DISPERR_CH1_WIDTH 1
2212*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_DISPERR_CH0_LBN 0
2213*1b481fc3SMaciej Żenczykowski #define	FRF_AB_XX_DISPERR_CH0_WIDTH 1
2214*1b481fc3SMaciej Żenczykowski 
2215*1b481fc3SMaciej Żenczykowski /* RX_DESC_PTR_TBL_KER: Receive descriptor pointer table */
2216*1b481fc3SMaciej Żenczykowski #define	FR_AA_RX_DESC_PTR_TBL_KER 0x00011800
2217*1b481fc3SMaciej Żenczykowski #define	FR_AA_RX_DESC_PTR_TBL_KER_STEP 16
2218*1b481fc3SMaciej Żenczykowski #define	FR_AA_RX_DESC_PTR_TBL_KER_ROWS 4
2219*1b481fc3SMaciej Żenczykowski /* RX_DESC_PTR_TBL: Receive descriptor pointer table */
2220*1b481fc3SMaciej Żenczykowski #define	FR_BZ_RX_DESC_PTR_TBL 0x00f40000
2221*1b481fc3SMaciej Żenczykowski #define	FR_BZ_RX_DESC_PTR_TBL_STEP 16
2222*1b481fc3SMaciej Żenczykowski #define	FR_BB_RX_DESC_PTR_TBL_ROWS 4096
2223*1b481fc3SMaciej Żenczykowski #define	FR_CZ_RX_DESC_PTR_TBL_ROWS 1024
2224*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RX_HDR_SPLIT_LBN 90
2225*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RX_HDR_SPLIT_WIDTH 1
2226*1b481fc3SMaciej Żenczykowski #define	FRF_AA_RX_RESET_LBN 89
2227*1b481fc3SMaciej Żenczykowski #define	FRF_AA_RX_RESET_WIDTH 1
2228*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_ISCSI_DDIG_EN_LBN 88
2229*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_ISCSI_DDIG_EN_WIDTH 1
2230*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_ISCSI_HDIG_EN_LBN 87
2231*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_ISCSI_HDIG_EN_WIDTH 1
2232*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DESC_PREF_ACT_LBN 86
2233*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DESC_PREF_ACT_WIDTH 1
2234*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DC_HW_RPTR_LBN 80
2235*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DC_HW_RPTR_WIDTH 6
2236*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DESCQ_HW_RPTR_LBN 68
2237*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DESCQ_HW_RPTR_WIDTH 12
2238*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DESCQ_SW_WPTR_LBN 56
2239*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DESCQ_SW_WPTR_WIDTH 12
2240*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DESCQ_BUF_BASE_ID_LBN 36
2241*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DESCQ_BUF_BASE_ID_WIDTH 20
2242*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DESCQ_EVQ_ID_LBN 24
2243*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DESCQ_EVQ_ID_WIDTH 12
2244*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DESCQ_OWNER_ID_LBN 10
2245*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DESCQ_OWNER_ID_WIDTH 14
2246*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DESCQ_LABEL_LBN 5
2247*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DESCQ_LABEL_WIDTH 5
2248*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DESCQ_SIZE_LBN 3
2249*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DESCQ_SIZE_WIDTH 2
2250*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_RX_DESCQ_SIZE_4K 3
2251*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_RX_DESCQ_SIZE_2K 2
2252*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_RX_DESCQ_SIZE_1K 1
2253*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_RX_DESCQ_SIZE_512 0
2254*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DESCQ_TYPE_LBN 2
2255*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DESCQ_TYPE_WIDTH 1
2256*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DESCQ_JUMBO_LBN 1
2257*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DESCQ_JUMBO_WIDTH 1
2258*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DESCQ_EN_LBN 0
2259*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_RX_DESCQ_EN_WIDTH 1
2260*1b481fc3SMaciej Żenczykowski 
2261*1b481fc3SMaciej Żenczykowski /* TX_DESC_PTR_TBL_KER: Transmit descriptor pointer */
2262*1b481fc3SMaciej Żenczykowski #define	FR_AA_TX_DESC_PTR_TBL_KER 0x00011900
2263*1b481fc3SMaciej Żenczykowski #define	FR_AA_TX_DESC_PTR_TBL_KER_STEP 16
2264*1b481fc3SMaciej Żenczykowski #define	FR_AA_TX_DESC_PTR_TBL_KER_ROWS 8
2265*1b481fc3SMaciej Żenczykowski /* TX_DESC_PTR_TBL: Transmit descriptor pointer */
2266*1b481fc3SMaciej Żenczykowski #define	FR_BZ_TX_DESC_PTR_TBL 0x00f50000
2267*1b481fc3SMaciej Żenczykowski #define	FR_BZ_TX_DESC_PTR_TBL_STEP 16
2268*1b481fc3SMaciej Żenczykowski #define	FR_BB_TX_DESC_PTR_TBL_ROWS 4096
2269*1b481fc3SMaciej Żenczykowski #define	FR_CZ_TX_DESC_PTR_TBL_ROWS 1024
2270*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TX_DPT_Q_MASK_WIDTH_LBN 94
2271*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TX_DPT_Q_MASK_WIDTH_WIDTH 2
2272*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TX_DPT_ETH_FILT_EN_LBN 93
2273*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TX_DPT_ETH_FILT_EN_WIDTH 1
2274*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TX_DPT_IP_FILT_EN_LBN 92
2275*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TX_DPT_IP_FILT_EN_WIDTH 1
2276*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TX_NON_IP_DROP_DIS_LBN 91
2277*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TX_NON_IP_DROP_DIS_WIDTH 1
2278*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TX_IP_CHKSM_DIS_LBN 90
2279*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TX_IP_CHKSM_DIS_WIDTH 1
2280*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TX_TCP_CHKSM_DIS_LBN 89
2281*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TX_TCP_CHKSM_DIS_WIDTH 1
2282*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DESCQ_EN_LBN 88
2283*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DESCQ_EN_WIDTH 1
2284*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_ISCSI_DDIG_EN_LBN 87
2285*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_ISCSI_DDIG_EN_WIDTH 1
2286*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_ISCSI_HDIG_EN_LBN 86
2287*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_ISCSI_HDIG_EN_WIDTH 1
2288*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DC_HW_RPTR_LBN 80
2289*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DC_HW_RPTR_WIDTH 6
2290*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DESCQ_HW_RPTR_LBN 68
2291*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DESCQ_HW_RPTR_WIDTH 12
2292*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DESCQ_SW_WPTR_LBN 56
2293*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DESCQ_SW_WPTR_WIDTH 12
2294*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DESCQ_BUF_BASE_ID_LBN 36
2295*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DESCQ_BUF_BASE_ID_WIDTH 20
2296*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DESCQ_EVQ_ID_LBN 24
2297*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DESCQ_EVQ_ID_WIDTH 12
2298*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DESCQ_OWNER_ID_LBN 10
2299*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DESCQ_OWNER_ID_WIDTH 14
2300*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DESCQ_LABEL_LBN 5
2301*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DESCQ_LABEL_WIDTH 5
2302*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DESCQ_SIZE_LBN 3
2303*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DESCQ_SIZE_WIDTH 2
2304*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_TX_DESCQ_SIZE_4K 3
2305*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_TX_DESCQ_SIZE_2K 2
2306*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_TX_DESCQ_SIZE_1K 1
2307*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_TX_DESCQ_SIZE_512 0
2308*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DESCQ_TYPE_LBN 1
2309*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DESCQ_TYPE_WIDTH 2
2310*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DESCQ_FLUSH_LBN 0
2311*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_TX_DESCQ_FLUSH_WIDTH 1
2312*1b481fc3SMaciej Żenczykowski 
2313*1b481fc3SMaciej Żenczykowski /* EVQ_PTR_TBL_KER: Event queue pointer table */
2314*1b481fc3SMaciej Żenczykowski #define	FR_AA_EVQ_PTR_TBL_KER 0x00011a00
2315*1b481fc3SMaciej Żenczykowski #define	FR_AA_EVQ_PTR_TBL_KER_STEP 16
2316*1b481fc3SMaciej Żenczykowski #define	FR_AA_EVQ_PTR_TBL_KER_ROWS 4
2317*1b481fc3SMaciej Żenczykowski /* EVQ_PTR_TBL: Event queue pointer table */
2318*1b481fc3SMaciej Żenczykowski #define	FR_BZ_EVQ_PTR_TBL 0x00f60000
2319*1b481fc3SMaciej Żenczykowski #define	FR_BZ_EVQ_PTR_TBL_STEP 16
2320*1b481fc3SMaciej Żenczykowski #define	FR_CZ_EVQ_PTR_TBL_ROWS 1024
2321*1b481fc3SMaciej Żenczykowski #define	FR_BB_EVQ_PTR_TBL_ROWS 4096
2322*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_EVQ_RPTR_IGN_LBN 40
2323*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_EVQ_RPTR_IGN_WIDTH 1
2324*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EVQ_WKUP_OR_INT_EN_LBN 39
2325*1b481fc3SMaciej Żenczykowski #define	FRF_AB_EVQ_WKUP_OR_INT_EN_WIDTH 1
2326*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_EVQ_DOS_PROTECT_EN_LBN 39
2327*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_EVQ_DOS_PROTECT_EN_WIDTH 1
2328*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_NXT_WPTR_LBN 24
2329*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_NXT_WPTR_WIDTH 15
2330*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_EN_LBN 23
2331*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_EN_WIDTH 1
2332*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_SIZE_LBN 20
2333*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_SIZE_WIDTH 3
2334*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_EVQ_SIZE_32K 6
2335*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_EVQ_SIZE_16K 5
2336*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_EVQ_SIZE_8K 4
2337*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_EVQ_SIZE_4K 3
2338*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_EVQ_SIZE_2K 2
2339*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_EVQ_SIZE_1K 1
2340*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_EVQ_SIZE_512 0
2341*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_BUF_BASE_ID_LBN 0
2342*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_EVQ_BUF_BASE_ID_WIDTH 20
2343*1b481fc3SMaciej Żenczykowski 
2344*1b481fc3SMaciej Żenczykowski /* BUF_HALF_TBL_KER: Buffer table in half buffer table mode direct access by driver */
2345*1b481fc3SMaciej Żenczykowski #define	FR_AA_BUF_HALF_TBL_KER 0x00018000
2346*1b481fc3SMaciej Żenczykowski #define	FR_AA_BUF_HALF_TBL_KER_STEP 8
2347*1b481fc3SMaciej Żenczykowski #define	FR_AA_BUF_HALF_TBL_KER_ROWS 4096
2348*1b481fc3SMaciej Żenczykowski /* BUF_HALF_TBL: Buffer table in half buffer table mode direct access by driver */
2349*1b481fc3SMaciej Żenczykowski #define	FR_BZ_BUF_HALF_TBL 0x00800000
2350*1b481fc3SMaciej Żenczykowski #define	FR_BZ_BUF_HALF_TBL_STEP 8
2351*1b481fc3SMaciej Żenczykowski #define	FR_CZ_BUF_HALF_TBL_ROWS 147456
2352*1b481fc3SMaciej Żenczykowski #define	FR_BB_BUF_HALF_TBL_ROWS 524288
2353*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_BUF_ADR_HBUF_ODD_LBN 44
2354*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_BUF_ADR_HBUF_ODD_WIDTH 20
2355*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_BUF_OWNER_ID_HBUF_ODD_LBN 32
2356*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_BUF_OWNER_ID_HBUF_ODD_WIDTH 12
2357*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_BUF_ADR_HBUF_EVEN_LBN 12
2358*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_BUF_ADR_HBUF_EVEN_WIDTH 20
2359*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_BUF_OWNER_ID_HBUF_EVEN_LBN 0
2360*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_BUF_OWNER_ID_HBUF_EVEN_WIDTH 12
2361*1b481fc3SMaciej Żenczykowski 
2362*1b481fc3SMaciej Żenczykowski /* BUF_FULL_TBL_KER: Buffer table in full buffer table mode direct access by driver */
2363*1b481fc3SMaciej Żenczykowski #define	FR_AA_BUF_FULL_TBL_KER 0x00018000
2364*1b481fc3SMaciej Żenczykowski #define	FR_AA_BUF_FULL_TBL_KER_STEP 8
2365*1b481fc3SMaciej Żenczykowski #define	FR_AA_BUF_FULL_TBL_KER_ROWS 4096
2366*1b481fc3SMaciej Żenczykowski /* BUF_FULL_TBL: Buffer table in full buffer table mode direct access by driver */
2367*1b481fc3SMaciej Żenczykowski #define	FR_BZ_BUF_FULL_TBL 0x00800000
2368*1b481fc3SMaciej Żenczykowski #define	FR_BZ_BUF_FULL_TBL_STEP 8
2369*1b481fc3SMaciej Żenczykowski #define	FR_CZ_BUF_FULL_TBL_ROWS 147456
2370*1b481fc3SMaciej Żenczykowski #define	FR_BB_BUF_FULL_TBL_ROWS 917504
2371*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_BUF_FULL_UNUSED_LBN 51
2372*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_BUF_FULL_UNUSED_WIDTH 13
2373*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_IP_DAT_BUF_SIZE_LBN 50
2374*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_IP_DAT_BUF_SIZE_WIDTH 1
2375*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_BUF_ADR_REGION_LBN 48
2376*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_BUF_ADR_REGION_WIDTH 2
2377*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_BUF_ADR_REGN3 3
2378*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_BUF_ADR_REGN2 2
2379*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_BUF_ADR_REGN1 1
2380*1b481fc3SMaciej Żenczykowski #define	FFE_AZ_BUF_ADR_REGN0 0
2381*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_BUF_ADR_FBUF_LBN 14
2382*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_BUF_ADR_FBUF_WIDTH 34
2383*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_BUF_OWNER_ID_FBUF_LBN 0
2384*1b481fc3SMaciej Żenczykowski #define	FRF_AZ_BUF_OWNER_ID_FBUF_WIDTH 14
2385*1b481fc3SMaciej Żenczykowski 
2386*1b481fc3SMaciej Żenczykowski /* RX_FILTER_TBL0: TCP/IPv4 Receive filter table */
2387*1b481fc3SMaciej Żenczykowski #define	FR_BZ_RX_FILTER_TBL0 0x00f00000
2388*1b481fc3SMaciej Żenczykowski #define	FR_BZ_RX_FILTER_TBL0_STEP 32
2389*1b481fc3SMaciej Żenczykowski #define	FR_BZ_RX_FILTER_TBL0_ROWS 8192
2390*1b481fc3SMaciej Żenczykowski /* RX_FILTER_TBL1: TCP/IPv4 Receive filter table */
2391*1b481fc3SMaciej Żenczykowski #define	FR_BB_RX_FILTER_TBL1 0x00f00010
2392*1b481fc3SMaciej Żenczykowski #define	FR_BB_RX_FILTER_TBL1_STEP 32
2393*1b481fc3SMaciej Żenczykowski #define	FR_BB_RX_FILTER_TBL1_ROWS 8192
2394*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RSS_EN_LBN 110
2395*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RSS_EN_WIDTH 1
2396*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_SCATTER_EN_LBN 109
2397*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_SCATTER_EN_WIDTH 1
2398*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TCP_UDP_LBN 108
2399*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TCP_UDP_WIDTH 1
2400*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RXQ_ID_LBN 96
2401*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_RXQ_ID_WIDTH 12
2402*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_DEST_IP_LBN 64
2403*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_DEST_IP_WIDTH 32
2404*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_DEST_PORT_TCP_LBN 48
2405*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_DEST_PORT_TCP_WIDTH 16
2406*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_SRC_IP_LBN 16
2407*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_SRC_IP_WIDTH 32
2408*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_SRC_TCP_DEST_UDP_LBN 0
2409*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_SRC_TCP_DEST_UDP_WIDTH 16
2410*1b481fc3SMaciej Żenczykowski 
2411*1b481fc3SMaciej Żenczykowski /* RX_MAC_FILTER_TBL0: Receive Ethernet filter table */
2412*1b481fc3SMaciej Żenczykowski #define	FR_CZ_RX_MAC_FILTER_TBL0 0x00f00010
2413*1b481fc3SMaciej Żenczykowski #define	FR_CZ_RX_MAC_FILTER_TBL0_STEP 32
2414*1b481fc3SMaciej Żenczykowski #define	FR_CZ_RX_MAC_FILTER_TBL0_ROWS 512
2415*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RMFT_RSS_EN_LBN 75
2416*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RMFT_RSS_EN_WIDTH 1
2417*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RMFT_SCATTER_EN_LBN 74
2418*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RMFT_SCATTER_EN_WIDTH 1
2419*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RMFT_IP_OVERRIDE_LBN 73
2420*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RMFT_IP_OVERRIDE_WIDTH 1
2421*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RMFT_RXQ_ID_LBN 61
2422*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RMFT_RXQ_ID_WIDTH 12
2423*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RMFT_WILDCARD_MATCH_LBN 60
2424*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RMFT_WILDCARD_MATCH_WIDTH 1
2425*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RMFT_DEST_MAC_LBN 12
2426*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RMFT_DEST_MAC_WIDTH 48
2427*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RMFT_VLAN_ID_LBN 0
2428*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RMFT_VLAN_ID_WIDTH 12
2429*1b481fc3SMaciej Żenczykowski 
2430*1b481fc3SMaciej Żenczykowski /* TIMER_TBL: Timer table */
2431*1b481fc3SMaciej Żenczykowski #define	FR_BZ_TIMER_TBL 0x00f70000
2432*1b481fc3SMaciej Żenczykowski #define	FR_BZ_TIMER_TBL_STEP 16
2433*1b481fc3SMaciej Żenczykowski #define	FR_CZ_TIMER_TBL_ROWS 1024
2434*1b481fc3SMaciej Żenczykowski #define	FR_BB_TIMER_TBL_ROWS 4096
2435*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TIMER_Q_EN_LBN 33
2436*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TIMER_Q_EN_WIDTH 1
2437*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_INT_ARMD_LBN 32
2438*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_INT_ARMD_WIDTH 1
2439*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_INT_PEND_LBN 31
2440*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_INT_PEND_WIDTH 1
2441*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_HOST_NOTIFY_MODE_LBN 30
2442*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_HOST_NOTIFY_MODE_WIDTH 1
2443*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RELOAD_TIMER_VAL_LBN 16
2444*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_RELOAD_TIMER_VAL_WIDTH 14
2445*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TIMER_MODE_LBN 14
2446*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TIMER_MODE_WIDTH 2
2447*1b481fc3SMaciej Żenczykowski #define	FFE_CZ_TIMER_MODE_INT_HLDOFF 3
2448*1b481fc3SMaciej Żenczykowski #define	FFE_CZ_TIMER_MODE_TRIG_START 2
2449*1b481fc3SMaciej Żenczykowski #define	FFE_CZ_TIMER_MODE_IMMED_START 1
2450*1b481fc3SMaciej Żenczykowski #define	FFE_CZ_TIMER_MODE_DIS 0
2451*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TIMER_MODE_LBN 12
2452*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TIMER_MODE_WIDTH 2
2453*1b481fc3SMaciej Żenczykowski #define	FFE_BB_TIMER_MODE_INT_HLDOFF 2
2454*1b481fc3SMaciej Żenczykowski #define	FFE_BB_TIMER_MODE_TRIG_START 2
2455*1b481fc3SMaciej Żenczykowski #define	FFE_BB_TIMER_MODE_IMMED_START 1
2456*1b481fc3SMaciej Żenczykowski #define	FFE_BB_TIMER_MODE_DIS 0
2457*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TIMER_VAL_LBN 0
2458*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TIMER_VAL_WIDTH 14
2459*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TIMER_VAL_LBN 0
2460*1b481fc3SMaciej Żenczykowski #define	FRF_BB_TIMER_VAL_WIDTH 12
2461*1b481fc3SMaciej Żenczykowski 
2462*1b481fc3SMaciej Żenczykowski /* TX_PACE_TBL: Transmit pacing table */
2463*1b481fc3SMaciej Żenczykowski #define	FR_BZ_TX_PACE_TBL 0x00f80000
2464*1b481fc3SMaciej Żenczykowski #define	FR_BZ_TX_PACE_TBL_STEP 16
2465*1b481fc3SMaciej Żenczykowski #define	FR_CZ_TX_PACE_TBL_ROWS 1024
2466*1b481fc3SMaciej Żenczykowski #define	FR_BB_TX_PACE_TBL_ROWS 4096
2467*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TX_PACE_LBN 0
2468*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_TX_PACE_WIDTH 5
2469*1b481fc3SMaciej Żenczykowski 
2470*1b481fc3SMaciej Żenczykowski /* RX_INDIRECTION_TBL: RX Indirection Table */
2471*1b481fc3SMaciej Żenczykowski #define	FR_BZ_RX_INDIRECTION_TBL 0x00fb0000
2472*1b481fc3SMaciej Żenczykowski #define	FR_BZ_RX_INDIRECTION_TBL_STEP 16
2473*1b481fc3SMaciej Żenczykowski #define	FR_BZ_RX_INDIRECTION_TBL_ROWS 128
2474*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_IT_QUEUE_LBN 0
2475*1b481fc3SMaciej Żenczykowski #define	FRF_BZ_IT_QUEUE_WIDTH 6
2476*1b481fc3SMaciej Żenczykowski 
2477*1b481fc3SMaciej Żenczykowski /* TX_FILTER_TBL0: TCP/IPv4 Transmit filter table */
2478*1b481fc3SMaciej Żenczykowski #define	FR_CZ_TX_FILTER_TBL0 0x00fc0000
2479*1b481fc3SMaciej Żenczykowski #define	FR_CZ_TX_FILTER_TBL0_STEP 16
2480*1b481fc3SMaciej Żenczykowski #define	FR_CZ_TX_FILTER_TBL0_ROWS 8192
2481*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TIFT_TCP_UDP_LBN 108
2482*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TIFT_TCP_UDP_WIDTH 1
2483*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TIFT_TXQ_ID_LBN 96
2484*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TIFT_TXQ_ID_WIDTH 12
2485*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TIFT_DEST_IP_LBN 64
2486*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TIFT_DEST_IP_WIDTH 32
2487*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TIFT_DEST_PORT_TCP_LBN 48
2488*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TIFT_DEST_PORT_TCP_WIDTH 16
2489*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TIFT_SRC_IP_LBN 16
2490*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TIFT_SRC_IP_WIDTH 32
2491*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TIFT_SRC_TCP_DEST_UDP_LBN 0
2492*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TIFT_SRC_TCP_DEST_UDP_WIDTH 16
2493*1b481fc3SMaciej Żenczykowski 
2494*1b481fc3SMaciej Żenczykowski /* TX_MAC_FILTER_TBL0: Transmit Ethernet filter table */
2495*1b481fc3SMaciej Żenczykowski #define	FR_CZ_TX_MAC_FILTER_TBL0 0x00fe0000
2496*1b481fc3SMaciej Żenczykowski #define	FR_CZ_TX_MAC_FILTER_TBL0_STEP 16
2497*1b481fc3SMaciej Żenczykowski #define	FR_CZ_TX_MAC_FILTER_TBL0_ROWS 512
2498*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TMFT_TXQ_ID_LBN 61
2499*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TMFT_TXQ_ID_WIDTH 12
2500*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TMFT_WILDCARD_MATCH_LBN 60
2501*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TMFT_WILDCARD_MATCH_WIDTH 1
2502*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TMFT_SRC_MAC_LBN 12
2503*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TMFT_SRC_MAC_WIDTH 48
2504*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TMFT_VLAN_ID_LBN 0
2505*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_TMFT_VLAN_ID_WIDTH 12
2506*1b481fc3SMaciej Żenczykowski 
2507*1b481fc3SMaciej Żenczykowski /* MC_TREG_SMEM: MC Shared Memory */
2508*1b481fc3SMaciej Żenczykowski #define	FR_CZ_MC_TREG_SMEM 0x00ff0000
2509*1b481fc3SMaciej Żenczykowski #define	FR_CZ_MC_TREG_SMEM_STEP 4
2510*1b481fc3SMaciej Żenczykowski #define	FR_CZ_MC_TREG_SMEM_ROWS 512
2511*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_MC_TREG_SMEM_ROW_LBN 0
2512*1b481fc3SMaciej Żenczykowski #define	FRF_CZ_MC_TREG_SMEM_ROW_WIDTH 32
2513*1b481fc3SMaciej Żenczykowski 
2514*1b481fc3SMaciej Żenczykowski /* EF10 architecture register definitions
2515*1b481fc3SMaciej Żenczykowski  * (from linux/drivers/net/ethernet/sfc/ef10_regs.h)
2516*1b481fc3SMaciej Żenczykowski  */
2517*1b481fc3SMaciej Żenczykowski 
2518*1b481fc3SMaciej Żenczykowski /* BIU_HW_REV_ID_REG:  */
2519*1b481fc3SMaciej Żenczykowski #define	ER_DZ_BIU_HW_REV_ID 0x00000000
2520*1b481fc3SMaciej Żenczykowski #define	ERF_DZ_HW_REV_ID_LBN 0
2521*1b481fc3SMaciej Żenczykowski #define	ERF_DZ_HW_REV_ID_WIDTH 32
2522*1b481fc3SMaciej Żenczykowski 
2523*1b481fc3SMaciej Żenczykowski /* BIU_MC_SFT_STATUS_REG:  */
2524*1b481fc3SMaciej Żenczykowski #define	ER_DZ_BIU_MC_SFT_STATUS 0x00000010
2525*1b481fc3SMaciej Żenczykowski #define	ER_DZ_BIU_MC_SFT_STATUS_STEP 4
2526*1b481fc3SMaciej Żenczykowski #define	ER_DZ_BIU_MC_SFT_STATUS_ROWS 8
2527*1b481fc3SMaciej Żenczykowski #define	ERF_DZ_MC_SFT_STATUS_LBN 0
2528*1b481fc3SMaciej Żenczykowski #define	ERF_DZ_MC_SFT_STATUS_WIDTH 32
2529*1b481fc3SMaciej Żenczykowski 
2530*1b481fc3SMaciej Żenczykowski /* BIU_INT_ISR_REG:  */
2531*1b481fc3SMaciej Żenczykowski #define	ER_DZ_BIU_INT_ISR 0x00000090
2532*1b481fc3SMaciej Żenczykowski #define	ERF_DZ_ISR_REG_LBN 0
2533*1b481fc3SMaciej Żenczykowski #define	ERF_DZ_ISR_REG_WIDTH 32
2534*1b481fc3SMaciej Żenczykowski 
2535*1b481fc3SMaciej Żenczykowski /* MC_DB_LWRD_REG:  */
2536*1b481fc3SMaciej Żenczykowski #define	ER_DZ_MC_DB_LWRD 0x00000200
2537*1b481fc3SMaciej Żenczykowski #define	ERF_DZ_MC_DOORBELL_L_LBN 0
2538*1b481fc3SMaciej Żenczykowski #define	ERF_DZ_MC_DOORBELL_L_WIDTH 32
2539*1b481fc3SMaciej Żenczykowski 
2540*1b481fc3SMaciej Żenczykowski /* MC_DB_HWRD_REG:  */
2541*1b481fc3SMaciej Żenczykowski #define	ER_DZ_MC_DB_HWRD 0x00000204
2542*1b481fc3SMaciej Żenczykowski #define	ERF_DZ_MC_DOORBELL_H_LBN 0
2543*1b481fc3SMaciej Żenczykowski #define	ERF_DZ_MC_DOORBELL_H_WIDTH 32
2544*1b481fc3SMaciej Żenczykowski 
2545*1b481fc3SMaciej Żenczykowski /*
2546*1b481fc3SMaciej Żenczykowski  * Register dump definition.  This is mostly taken from
2547*1b481fc3SMaciej Żenczykowski  * linux/drivers/net/ethernet/sfc/nic.c but has names and bitfield
2548*1b481fc3SMaciej Żenczykowski  * definitions added.
2549*1b481fc3SMaciej Żenczykowski  *
2550*1b481fc3SMaciej Żenczykowski  * The definitions of efx_nic_regs and efx_nic_reg_tables should be
2551*1b481fc3SMaciej Żenczykowski  * textually identical to those in the driver, though the structure
2552*1b481fc3SMaciej Żenczykowski  * definitions and the macros REGISTER and REGISTER_TABLE_DIMENSIONS
2553*1b481fc3SMaciej Żenczykowski  * are defined differently.
2554*1b481fc3SMaciej Żenczykowski  */
2555*1b481fc3SMaciej Żenczykowski 
2556*1b481fc3SMaciej Żenczykowski #define REGISTER_REVISION_FA	1
2557*1b481fc3SMaciej Żenczykowski #define REGISTER_REVISION_FB	2
2558*1b481fc3SMaciej Żenczykowski #define REGISTER_REVISION_FC	3
2559*1b481fc3SMaciej Żenczykowski #define REGISTER_REVISION_FZ	3	/* last Falcon arch revision */
2560*1b481fc3SMaciej Żenczykowski #define REGISTER_REVISION_ED	4
2561*1b481fc3SMaciej Żenczykowski #define REGISTER_REVISION_EZ	4	/* latest EF10 arch revision */
2562*1b481fc3SMaciej Żenczykowski 
2563*1b481fc3SMaciej Żenczykowski struct efx_nic_reg_field {
2564*1b481fc3SMaciej Żenczykowski 	const char *name;
2565*1b481fc3SMaciej Żenczykowski 	u8 lbn, width;
2566*1b481fc3SMaciej Żenczykowski 	u8 min_revision, max_revision;
2567*1b481fc3SMaciej Żenczykowski };
2568*1b481fc3SMaciej Żenczykowski 
2569*1b481fc3SMaciej Żenczykowski #define REGISTER_FIELD_RENAME(name, display_name, arch, min_rev, max_rev) { \
2570*1b481fc3SMaciej Żenczykowski 	display_name,							\
2571*1b481fc3SMaciej Żenczykowski 	arch ## RF_ ## min_rev ## max_rev ## _ ## name ## _LBN,		\
2572*1b481fc3SMaciej Żenczykowski 	arch ## RF_ ## min_rev ## max_rev ## _ ## name ## _WIDTH,	\
2573*1b481fc3SMaciej Żenczykowski 	REGISTER_REVISION_ ## arch ## min_rev,				\
2574*1b481fc3SMaciej Żenczykowski 	REGISTER_REVISION_ ## arch ## max_rev				\
2575*1b481fc3SMaciej Żenczykowski }
2576*1b481fc3SMaciej Żenczykowski #define REGISTER_FIELD(name, arch, min_rev, max_rev)			\
2577*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_RENAME(name, #name, arch, min_rev, max_rev)
2578*1b481fc3SMaciej Żenczykowski #define REGISTER_FIELD_AA(name) REGISTER_FIELD(name, F, A, A)
2579*1b481fc3SMaciej Żenczykowski #define REGISTER_FIELD_AB(name) REGISTER_FIELD(name, F, A, B)
2580*1b481fc3SMaciej Żenczykowski #define REGISTER_FIELD_AZ(name) REGISTER_FIELD(name, F, A, Z)
2581*1b481fc3SMaciej Żenczykowski #define REGISTER_FIELD_BB(name) REGISTER_FIELD(name, F, B, B)
2582*1b481fc3SMaciej Żenczykowski #define REGISTER_FIELD_BZ(name) REGISTER_FIELD(name, F, B, Z)
2583*1b481fc3SMaciej Żenczykowski #define REGISTER_FIELD_CZ(name) REGISTER_FIELD(name, F, C, Z)
2584*1b481fc3SMaciej Żenczykowski #define REGISTER_FIELD_DZ(name) REGISTER_FIELD(name, E, D, Z)
2585*1b481fc3SMaciej Żenczykowski #define REGISTER_FIELD_AZ_RENAME(name, display_name)	\
2586*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_RENAME(name, display_name, F, A, Z)
2587*1b481fc3SMaciej Żenczykowski #define REGISTER_FIELD_BZ_RENAME(name, display_name)	\
2588*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_RENAME(name, display_name, F, B, Z)
2589*1b481fc3SMaciej Żenczykowski #define REGISTER_FIELD_CZ_RENAME(name, display_name)	\
2590*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_RENAME(name, display_name, F, C, Z)
2591*1b481fc3SMaciej Żenczykowski 
2592*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_ADR_REGION[] = {
2593*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(ADR_REGION0),
2594*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(ADR_REGION1),
2595*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(ADR_REGION2),
2596*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(ADR_REGION3),
2597*1b481fc3SMaciej Żenczykowski };
2598*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_INT_EN_KER[] = {
2599*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(DRV_INT_EN_KER),
2600*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(KER_INT_KER),
2601*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(KER_INT_CHAR),
2602*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(KER_INT_LEVE_SEL),
2603*1b481fc3SMaciej Żenczykowski };
2604*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_INT_EN_CHAR[] = {
2605*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(DRV_INT_EN_CHAR),
2606*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(CHAR_INT_KER),
2607*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(CHAR_INT_CHAR),
2608*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(CHAR_INT_LEVE_SEL),
2609*1b481fc3SMaciej Żenczykowski };
2610*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_INT_ADR_KER[] = {
2611*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(INT_ADR_KER),
2612*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(NORM_INT_VEC_DIS_KER),
2613*1b481fc3SMaciej Żenczykowski };
2614*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_INT_ADR_CHAR[] = {
2615*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(INT_ADR_CHAR),
2616*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(NORM_INT_VEC_DIS_CHAR),
2617*1b481fc3SMaciej Żenczykowski };
2618*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_HW_INIT[] = {
2619*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TLP_TD),
2620*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TD_SEL),
2621*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(ATTR_SEL),
2622*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TLP_EP),
2623*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(US_DISABLE),
2624*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(WD_TIMER),
2625*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(INTA_VEC),
2626*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(INTB_VEC),
2627*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TLP_ATTR),
2628*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TLP_TC),
2629*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(POST_WR_MASK),
2630*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(FC_BLOCKING_EN),
2631*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AA(B2B_REQ_EN),
2632*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(B2B_REQ_EN),
2633*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AA(FC_BLOCKING_EN),
2634*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PE_EIDLE_DIS),
2635*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(TX_RREQ_MASK_EN),
2636*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(DOORBELL_DROP),
2637*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(TRGT_MASK_ALL),
2638*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(TX_MRG_TAGS),
2639*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(PCIE_CPL_TIMEOUT_CTRL),
2640*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(BDMRD_CPLF_FULL),
2641*1b481fc3SMaciej Żenczykowski };
2642*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_USR_EV_CFG[] = {
2643*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(DFLT_EVQ),
2644*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(USREV_DIS),
2645*1b481fc3SMaciej Żenczykowski };
2646*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_EE_SPI_HCMD[] = {
2647*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_SPI_HCMD_ENC),
2648*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_SPI_HCMD_ADBCNT),
2649*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_SPI_HCMD_DUBCNT),
2650*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_SPI_HCMD_READ),
2651*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_SPI_HCMD_DABCNT),
2652*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_SPI_HCMD_SF_SEL),
2653*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_WR_TIMER_ACTIVE),
2654*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_SPI_HCMD_CMD_EN),
2655*1b481fc3SMaciej Żenczykowski };
2656*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_EE_SPI_HADR[] = {
2657*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_SPI_HADR_ADR),
2658*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_SPI_HADR_DUBYTE),
2659*1b481fc3SMaciej Żenczykowski };
2660*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_EE_SPI_HDATA[] = {
2661*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_SPI_HDATA0),
2662*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_SPI_HDATA1),
2663*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_SPI_HDATA2),
2664*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_SPI_HDATA3),
2665*1b481fc3SMaciej Żenczykowski };
2666*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_EE_BASE_PAGE[] = {
2667*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_EXP_ROM_WINDOW_BASE),
2668*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_EXPROM_MASK),
2669*1b481fc3SMaciej Żenczykowski };
2670*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_EE_VPD_CFG0[] = {
2671*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_VPD_EN),
2672*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_VPD_EN_AD9_MODE),
2673*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_VPD_DEV_SF_SEL),
2674*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_VPD_ACCESS_BLOCK),
2675*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_VPD_ACCESS_ON),
2676*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_VPD_AD_SIZE),
2677*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_VPD_LENGTH),
2678*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_VPD_BASE),
2679*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_VPD_WR_CMD_EN),
2680*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_VPDW_BASE),
2681*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_VPDW_LENGTH),
2682*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_EE_WR_TMR_VALUE),
2683*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_EE_CLOCK_DIV),
2684*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_VPD_WIP_POLL),
2685*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_SF_CLOCK_DIV),
2686*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_SF_FASTRD_EN),
2687*1b481fc3SMaciej Żenczykowski };
2688*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_NIC_STAT[] = {
2689*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(STRAP_PINS),
2690*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(ATE_MODE),
2691*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_PRST),
2692*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(SF_PRST),
2693*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(ONCHIP_SRAM),
2694*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(REVISION_ID),
2695*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(EE_STRAP),
2696*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(EE_STRAP_EN),
2697*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(AER_DIS),
2698*1b481fc3SMaciej Żenczykowski };
2699*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_GPIO_CTL[] = {
2700*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO0_PWRUP_VALUE),
2701*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO1_PWRUP_VALUE),
2702*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO2_PWRUP_VALUE),
2703*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO3_PWRUP_VALUE),
2704*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO4_PWRUP_VALUE),
2705*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO5_PWRUP_VALUE),
2706*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO6_PWRUP_VALUE),
2707*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO7_PWRUP_VALUE),
2708*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO0_IN),
2709*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO1_IN),
2710*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO2_IN),
2711*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO3_IN),
2712*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO4_IN),
2713*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO5_IN),
2714*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO6_IN),
2715*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO7_IN),
2716*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO0_OUT),
2717*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO1_OUT),
2718*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO2_OUT),
2719*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO3_OUT),
2720*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO4_OUT),
2721*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO5_OUT),
2722*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO6_OUT),
2723*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO7_OUT),
2724*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO0_OEN),
2725*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO1_OEN),
2726*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO2_OEN),
2727*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO3_OEN),
2728*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO4_OEN),
2729*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO5_OEN),
2730*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(USE_NIC_CLK),
2731*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(CLK156_OUT_EN),
2732*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO8_PWRUP_VALUE),
2733*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO9_PWRUP_VALUE),
2734*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO10_PWRUP_VALUE),
2735*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO11_PWRUP_VALUE),
2736*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO12_PWRUP_VALUE),
2737*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO13_PWRUP_VALUE),
2738*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO14_PWRUP_VALUE),
2739*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO15_PWRUP_VALUE),
2740*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO8_IN),
2741*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO9_IN),
2742*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO10_IN),
2743*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO11_IN),
2744*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO12_IN),
2745*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO13_IN),
2746*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO14_IN),
2747*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO15_IN),
2748*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO8_OUT),
2749*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO9_OUT),
2750*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO10_OUT),
2751*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO11_OUT),
2752*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO12_OUT),
2753*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO13_OUT),
2754*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO14_OUT),
2755*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO15_OUT),
2756*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO8_OEN),
2757*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO9_OEN),
2758*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO10_OEN),
2759*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO11_OEN),
2760*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO12_OEN),
2761*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO13_OEN),
2762*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO14_OEN),
2763*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO15_OEN),
2764*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO_PWRUP_VALUE2),
2765*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO_IN2),
2766*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO_OUT2),
2767*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO_PWRUP_VALUE3),
2768*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO_IN3),
2769*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GPIO_OUT3),
2770*1b481fc3SMaciej Żenczykowski };
2771*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_GLB_CTL[] = {
2772*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(SWRST),
2773*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EXT_PHY_RST_DUR),
2774*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(INT_RST_DUR),
2775*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(RST_CS),
2776*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(RST_SF),
2777*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(RST_TX),
2778*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(RST_RX),
2779*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(RST_SR),
2780*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(RST_EV),
2781*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(RST_EM),
2782*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(RST_XGTX),
2783*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(RST_XGRX),
2784*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(RST_PCIE_CORE),
2785*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(RST_PCIE_NSTKY),
2786*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(RST_PCIE_STKY),
2787*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(RST_BIU),
2788*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AA(RST_PCIX),
2789*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(RST_PCIE_SD),
2790*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(RST_XAUI_SD),
2791*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(RST_EXT_PHY),
2792*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(HOT_RST_CTL),
2793*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(CS_RST_CTL),
2794*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EE_RST_CTL),
2795*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(TX_RST_CTL),
2796*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(RX_RST_CTL),
2797*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(SR_RST_CTL),
2798*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EV_RST_CTL),
2799*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EM_RST_CTL),
2800*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XGTX_RST_CTL),
2801*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XGRX_RST_CTL),
2802*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_CORE_RST_CTL),
2803*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_NSTKY_RST_CTL),
2804*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_STKY_RST_CTL),
2805*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(BIU_RST_CTL),
2806*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AA(PCIX_RST_CTL),
2807*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_SD_RST_CTL),
2808*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XAUI_SD_RST_CTL),
2809*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EXT_PHY_RST_CTL),
2810*1b481fc3SMaciej Żenczykowski };
2811*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_DP_CTRL[] = {
2812*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(FLS_EVQ_ID),
2813*1b481fc3SMaciej Żenczykowski };
2814*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_MEM_STAT[] = {
2815*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(MEM_PERR_VEC),
2816*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(MBIST_ERR),
2817*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(MBIST_CORR),
2818*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(MEM_PERR_VEC),
2819*1b481fc3SMaciej Żenczykowski };
2820*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_CS_DEBUG[] = {
2821*1b481fc3SMaciej Żenczykowski 	/* This is not a complete list of fields */
2822*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(CS_DEBUG_EN),
2823*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(CS_PORT_NUM),
2824*1b481fc3SMaciej Żenczykowski };
2825*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_ALTERA_BUILD[] = {
2826*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(ALTERA_BUILD_VER),
2827*1b481fc3SMaciej Żenczykowski };
2828*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_CSR_SPARE[] = {
2829*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(CSR_SPARE_BITS),
2830*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(MEM_PERR_EN_TX_DATA),
2831*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(MEM_PERR_EN),
2832*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(MEM_PERR_EN),
2833*1b481fc3SMaciej Żenczykowski };
2834*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_PCIE_SD_CTL0123[] = {
2835*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_LODRV),
2836*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_HIDRV),
2837*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_RXEQCTL_L),
2838*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_RXEQCTL_H),
2839*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_TXTERMADJ_L),
2840*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_TXTERMADJ_H),
2841*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_RXTERMADJ_L),
2842*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_RXTERMADJ_H),
2843*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_PARLPBK),
2844*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_LPBK),
2845*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_LPBKWDRV_L),
2846*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_LPBKWDRV_H),
2847*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_PARRESET_L),
2848*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_PARRESET_H),
2849*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_HIVMODE_L),
2850*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_HIVMODE_H),
2851*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_OFFSETEN_L),
2852*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_OFFSETEN_H),
2853*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_OFFSET),
2854*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_TESTSIG_L),
2855*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_TESTSIG_H),
2856*1b481fc3SMaciej Żenczykowski };
2857*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_PCIE_SD_CTL45[] = {
2858*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_DEQ0),
2859*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_DEQ1),
2860*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_DEQ2),
2861*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_DEQ3),
2862*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_DEQ4),
2863*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_DEQ5),
2864*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_DEQ6),
2865*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_DEQ7),
2866*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_DTX0),
2867*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_DTX1),
2868*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_DTX2),
2869*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_DTX3),
2870*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_DTX4),
2871*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_DTX5),
2872*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_DTX6),
2873*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_DTX7),
2874*1b481fc3SMaciej Żenczykowski };
2875*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_PCIE_PCS_CTL_STAT[] = {
2876*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_PRBSSEL),
2877*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_PRBSERRACK_L),
2878*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_PRBSERRACK_H),
2879*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_PRBSSYNC_L),
2880*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_PRBSSYNC_H),
2881*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_CTCDISABLE_L),
2882*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_CTCDISABLE_H),
2883*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_FASTINIT_L),
2884*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_FASTINIT_H),
2885*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_PRBSERRH0),
2886*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_PRBSERR),
2887*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_PRBSERRCOUNT0_L),
2888*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(PCIE_PRBSERRCOUNT0_H),
2889*1b481fc3SMaciej Żenczykowski };
2890*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_EVQ_CTL[] = {
2891*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(EVQ_FIFO_NOTAF_TH),
2892*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(EVQ_FIFO_AF_TH),
2893*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(EVQ_OWNERR_CTL),
2894*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(RX_EVQ_WAKEUP_MASK),
2895*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(RX_EVQ_WAKEUP_MASK),
2896*1b481fc3SMaciej Żenczykowski };
2897*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_EVQ_CNT1[] = {
2898*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(EVQ_ERR_REQ_CNT),
2899*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(EVQ_CSR_REQ_CNT),
2900*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(EVQ_EM_REQ_CNT),
2901*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(EVQ_RX_REQ_CNT),
2902*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(EVQ_TX_REQ_CNT),
2903*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(EVQ_CNT_TOBIU),
2904*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(EVQ_CNT_PRE_FIFO),
2905*1b481fc3SMaciej Żenczykowski };
2906*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_EVQ_CNT2[] = {
2907*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(EVQ_TM_REQ_CNT),
2908*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(EVQ_INIT_REQ_CNT),
2909*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(EVQ_WET_REQ_CNT),
2910*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(EVQ_WU_REQ_CNT),
2911*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(EVQ_RDY_CNT),
2912*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(EVQ_CLR_REQ_CNT),
2913*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(EVQ_UPD_REQ_CNT),
2914*1b481fc3SMaciej Żenczykowski };
2915*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_BUF_TBL_CFG[] = {
2916*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(BUF_TBL_MODE),
2917*1b481fc3SMaciej Żenczykowski };
2918*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_SRM_RX_DC_CFG[] = {
2919*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(SRM_RX_DC_BASE_ADR),
2920*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(SRM_CLK_TMP_EN),
2921*1b481fc3SMaciej Żenczykowski };
2922*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_SRM_TX_DC_CFG[] = {
2923*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(SRM_TX_DC_BASE_ADR),
2924*1b481fc3SMaciej Żenczykowski };
2925*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_SRM_CFG[] = {
2926*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(SRM_BANK_SIZE),
2927*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(SRM_NUM_BANK),
2928*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(SRM_INIT_EN),
2929*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(SRM_OOB_BUF_INTEN),
2930*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(SRM_OOB_ADR_INTEN),
2931*1b481fc3SMaciej Żenczykowski };
2932*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_SRM_UPD_EVQ[] = {
2933*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(SRM_UPD_EVQ_ID),
2934*1b481fc3SMaciej Żenczykowski };
2935*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_SRAM_PARITY[] = {
2936*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(FORCE_SRAM_SINGLE_ERR),
2937*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(FORCE_SRAM_PERR),
2938*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(FORCE_SRAM_DOUBLE_ERR),
2939*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(SEC_INT),
2940*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(BYPASS_ECC),
2941*1b481fc3SMaciej Żenczykowski };
2942*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_RX_CFG[] = {
2943*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(RX_XOFF_MAC_EN),
2944*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AA(RX_XOFF_MAC_TH),
2945*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(RX_XOFF_MAC_TH),
2946*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AA(RX_XON_MAC_TH),
2947*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(RX_XON_MAC_TH),
2948*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AA(RX_USR_BUF_SIZE),
2949*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AA(RX_XOFF_TX_TH),
2950*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(RX_USR_BUF_SIZE),
2951*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AA(RX_XON_TX_TH),
2952*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AA(RX_OWNERR_CTL),
2953*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(RX_XOFF_TX_TH),
2954*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AA(RX_PCI_BURST_SIZE),
2955*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AA(RX_RDW_PATCH_EN),
2956*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AA(RX_DESC_PUSH_EN),
2957*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(RX_XON_TX_TH),
2958*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(RX_OWNERR_CTL),
2959*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(RX_PCI_BURST_SIZE),
2960*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(RX_RDW_PATCH_EN),
2961*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(RX_DESC_PUSH_EN),
2962*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(RX_HASH_INSRT_HDR),
2963*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(RX_HASH_ALG),
2964*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(RX_IP_HASH),
2965*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(RX_INGR_EN),
2966*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(RX_TCP_SUP),
2967*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(RX_PRE_RFF_IPG),
2968*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(RX_HDR_SPLIT_HDR_BUF_SIZE),
2969*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(RX_HDR_SPLIT_PLD_BUF_SIZE),
2970*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(RX_HDR_SPLIT_EN),
2971*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(RX_MIN_KBUF_SIZE),
2972*1b481fc3SMaciej Żenczykowski };
2973*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_RX_FILTER_CTL[] = {
2974*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(TCP_FULL_SRCH_LIMIT),
2975*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(TCP_WILD_SRCH_LIMIT),
2976*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(UDP_WILD_SRCH_LIMIT),
2977*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(NUM_KER),
2978*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(UDP_FULL_SRCH_LIMIT),
2979*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(SCATTER_ENBL_NO_MATCH_Q),
2980*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(UNICAST_NOMATCH_IP_OVERRIDE),
2981*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(UNICAST_NOMATCH_RSS_ENABLED),
2982*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(UNICAST_NOMATCH_Q_ID),
2983*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(MULTICAST_NOMATCH_IP_OVERRIDE),
2984*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(MULTICAST_NOMATCH_RSS_ENABLED),
2985*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(MULTICAST_NOMATCH_Q_ID),
2986*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(RX_VLAN_MATCH_ETHERTYPE),
2987*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(RX_FILTER_ALL_VLAN_ETHERTYPES),
2988*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(ETHERNET_FULL_SEARCH_LIMIT),
2989*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(ETHERNET_WILDCARD_SEARCH_LIMIT),
2990*1b481fc3SMaciej Żenczykowski };
2991*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_RX_DC_CFG[] = {
2992*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(RX_DC_SIZE),
2993*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(RX_MAX_PF),
2994*1b481fc3SMaciej Żenczykowski };
2995*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_RX_DC_PF_WM[] = {
2996*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(RX_DC_PF_LWM),
2997*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(RX_DC_PF_HWM),
2998*1b481fc3SMaciej Żenczykowski };
2999*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_RX_RSS_TKEY[] = {
3000*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(RX_RSS_TKEY_LO),
3001*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(RX_RSS_TKEY_HI),
3002*1b481fc3SMaciej Żenczykowski };
3003*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_RX_SELF_RST[] = {
3004*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AA(RX_MAX_LU_LAT),
3005*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AA(RX_MAX_PF_LAT),
3006*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AA(RX_SELF_RST_EN),
3007*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AA(RX_NODESC_WAIT_DIS),
3008*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AA(RX_SW_RST_REG),
3009*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AA(RX_ISCSI_DIS),
3010*1b481fc3SMaciej Żenczykowski };
3011*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_RX_RSS_IPV6_REG1[] = {
3012*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(RX_RSS_IPV6_TKEY_LO),
3013*1b481fc3SMaciej Żenczykowski };
3014*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_RX_RSS_IPV6_REG2[] = {
3015*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(RX_RSS_IPV6_TKEY_MID),
3016*1b481fc3SMaciej Żenczykowski };
3017*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_RX_RSS_IPV6_REG3[] = {
3018*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(RX_RSS_IPV6_TKEY_HI),
3019*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(RX_RSS_IPV6_TCP_SUPPRESS),
3020*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(RX_RSS_IPV6_IP_THASH_ENABLE),
3021*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(RX_RSS_IPV6_THASH_ENABLE),
3022*1b481fc3SMaciej Żenczykowski };
3023*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_TX_DC_CFG[] = {
3024*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TX_DC_SIZE),
3025*1b481fc3SMaciej Żenczykowski };
3026*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_TX_CHKSM_CFG[] = {
3027*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AA(TX_Q_CHKSM_DIS_0_31),
3028*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AA(TX_Q_CHKSM_DIS_32_63),
3029*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AA(TX_Q_CHKSM_DIS_64_95),
3030*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AA(TX_Q_CHKSM_DIS_96_127),
3031*1b481fc3SMaciej Żenczykowski };
3032*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_TX_CFG[] = {
3033*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TX_IP_ID_REP_EN),
3034*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AA(TX_NON_IP_DROP_DIS),
3035*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TX_OWNERR_CTL),
3036*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TX_P1_PRI_EN),
3037*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TX_NO_EOP_DISC_EN),
3038*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TX_IP_ID_P0_OFS),
3039*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(TX_FILTER_EN_BIT),
3040*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(TX_VLAN_MATCH_ETHERTYPE_RANGE),
3041*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(TX_FILTER_ALL_VLAN_ETHERTYPES_BIT),
3042*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(TX_TCPIP_FILTER_FULL_SEARCH_RANGE),
3043*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(TX_TCPIP_FILTER_WILD_SEARCH_RANGE),
3044*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(TX_UDPIP_FILTER_FULL_SEARCH_RANGE),
3045*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(TX_UDPIP_FILTER_WILD_SEARCH_RANGE),
3046*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(TX_ETH_FILTER_FULL_SEARCH_RANGE),
3047*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(TX_ETH_FILTER_WILD_SEARCH_RANGE),
3048*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(TX_FILTER_TEST_MODE_BIT),
3049*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(TX_CONT_LOOKUP_THRESH_RANGE),
3050*1b481fc3SMaciej Żenczykowski };
3051*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_TX_RESERVED[] = {
3052*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TX_MAX_PREF),
3053*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TX_MAX_CPL),
3054*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AA(TX_IP_DIS),
3055*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(TX_FLUSH_MIN_LEN_EN),
3056*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AA(TX_TCP_DIS),
3057*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TX_DMA_SPACER),
3058*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AA(TX_DMA_FF_THR),
3059*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TX_DIS_NON_IP_EV),
3060*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TX_ONE_PKT_PER_Q),
3061*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TX_PREF_THRESHOLD),
3062*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TX_ONLY1TAG),
3063*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TX_PREF_WD_TMR),
3064*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TX_PREF_SPACER),
3065*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TX_XP_TIMER),
3066*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TX_RX_SPACER_EN),
3067*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TX_PS_EVT_DIS),
3068*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TX_SOFT_EVT_EN),
3069*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TX_DROP_ABORT_EN),
3070*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TX_RX_SPACER),
3071*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TX_DMAQ_ST),
3072*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TX_DMAR_ST_P0),
3073*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TX_D_FF_FULL_P0),
3074*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TX_PUSH_CHK_DIS),
3075*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TX_PUSH_EN),
3076*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TX_RD_COMP_TMR),
3077*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TX_PREF_AGE_CNT),
3078*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(TX_EVT_CNT),
3079*1b481fc3SMaciej Żenczykowski };
3080*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_TX_PACE[] = {
3081*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(TX_PACE_BIN_TH),
3082*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(TX_PACE_FB_BASE),
3083*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(TX_PACE_SB_AF),
3084*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(TX_PACE_SB_NOT_AF),
3085*1b481fc3SMaciej Żenczykowski };
3086*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_TX_VLAN[] = {
3087*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_VLAN0),
3088*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_VLAN0_PORT0_EN),
3089*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_VLAN0_PORT1_EN),
3090*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_VLAN1),
3091*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_VLAN1_PORT0_EN),
3092*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_VLAN1_PORT1_EN),
3093*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_VLAN2),
3094*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_VLAN2_PORT0_EN),
3095*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_VLAN2_PORT1_EN),
3096*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_VLAN3),
3097*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_VLAN3_PORT0_EN),
3098*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_VLAN3_PORT1_EN),
3099*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_VLAN4),
3100*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_VLAN4_PORT0_EN),
3101*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_VLAN4_PORT1_EN),
3102*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_VLAN5),
3103*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_VLAN5_PORT0_EN),
3104*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_VLAN5_PORT1_EN),
3105*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_VLAN6),
3106*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_VLAN6_PORT0_EN),
3107*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_VLAN6_PORT1_EN),
3108*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_VLAN7),
3109*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_VLAN7_PORT0_EN),
3110*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_VLAN7_PORT1_EN),
3111*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_VLAN_EN),
3112*1b481fc3SMaciej Żenczykowski };
3113*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_TX_IPFIL_PORTEN[] = {
3114*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL0_PORT_EN),
3115*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL1_PORT_EN),
3116*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL2_PORT_EN),
3117*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL3_PORT_EN),
3118*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL4_PORT_EN),
3119*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL5_PORT_EN),
3120*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL6_PORT_EN),
3121*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL7_PORT_EN),
3122*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL8_PORT_EN),
3123*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL9_PORT_EN),
3124*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL10_PORT_EN),
3125*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL11_PORT_EN),
3126*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL12_PORT_EN),
3127*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL13_PORT_EN),
3128*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL14_PORT_EN),
3129*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL15_PORT_EN),
3130*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL16_PORT_EN),
3131*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL17_PORT_EN),
3132*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL18_PORT_EN),
3133*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL19_PORT_EN),
3134*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL20_PORT_EN),
3135*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL21_PORT_EN),
3136*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL22_PORT_EN),
3137*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL23_PORT_EN),
3138*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL24_PORT_EN),
3139*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL25_PORT_EN),
3140*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL26_PORT_EN),
3141*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL27_PORT_EN),
3142*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL28_PORT_EN),
3143*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL29_PORT_EN),
3144*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL30_PORT_EN),
3145*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL31_PORT_EN),
3146*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(TX_MADR0_FIL_EN),
3147*1b481fc3SMaciej Żenczykowski };
3148*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_TX_IPFIL_TBL[] = {
3149*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IP_SRC_ADR_0),
3150*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL_MASK_0),
3151*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IP_SRC_ADR_1),
3152*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_IPFIL_MASK_1),
3153*1b481fc3SMaciej Żenczykowski };
3154*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_MD_TXD[] = {
3155*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(MD_TXD),
3156*1b481fc3SMaciej Żenczykowski };
3157*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_MD_RXD[] = {
3158*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(MD_RXD),
3159*1b481fc3SMaciej Żenczykowski };
3160*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_MD_CS[] = {
3161*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(MD_WRC),
3162*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(MD_RDC),
3163*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(MD_RIC),
3164*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(MD_PRSP),
3165*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(MD_GC),
3166*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(MD_INT_CLR),
3167*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(MD_PL),
3168*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(MD_PT),
3169*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(MD_ADDR_CMD),
3170*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(MD_WR_EN_CMD),
3171*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(MD_RD_EN_CMD),
3172*1b481fc3SMaciej Żenczykowski };
3173*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_MD_PHY_ADR[] = {
3174*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(MD_PHY_ADR),
3175*1b481fc3SMaciej Żenczykowski };
3176*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_MD_ID[] = {
3177*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(MD_DEV_ADR),
3178*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(MD_PRT_ADR),
3179*1b481fc3SMaciej Żenczykowski };
3180*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_MAC_STAT_DMA[] = {
3181*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(MAC_STAT_DMA_ADR),
3182*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(MAC_STAT_DMA_CMD),
3183*1b481fc3SMaciej Żenczykowski };
3184*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_MAC_CTRL[] = {
3185*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(MAC_SPEED),
3186*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(MAC_LINK_STATUS),
3187*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(MAC_UC_PROM),
3188*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(MAC_BCAD_ACPT),
3189*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(MAC_XG_DISTXCRC),
3190*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TXFIFO_DRAIN_EN),
3191*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(MAC_XOFF_VAL),
3192*1b481fc3SMaciej Żenczykowski };
3193*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_GEN_MODE[] = {
3194*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(XG_PHY_INT_MASK),
3195*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(XFP_PHY_INT_MASK),
3196*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(XG_PHY_INT_POL_SEL),
3197*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(XFP_PHY_INT_POL_SEL),
3198*1b481fc3SMaciej Żenczykowski };
3199*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_MAC_MC_HASH_REG0[] = {
3200*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(MAC_MCAST_HASH0),
3201*1b481fc3SMaciej Żenczykowski };
3202*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_MAC_MC_HASH_REG1[] = {
3203*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(MAC_MCAST_HASH1),
3204*1b481fc3SMaciej Żenczykowski };
3205*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_GM_CFG1[] = {
3206*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GM_TX_EN),
3207*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GM_SYNC_TXEN),
3208*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GM_RX_EN),
3209*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GM_SYNC_RXEN),
3210*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GM_TX_FC_EN),
3211*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GM_RX_FC_EN),
3212*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GM_LOOP),
3213*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GM_RST_TX_FUNC),
3214*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GM_RST_RX_FUNC),
3215*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GM_RST_TX_MAC_CTL),
3216*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GM_RST_RX_MAC_CTL),
3217*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GM_SIM_RST),
3218*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GM_SW_RST),
3219*1b481fc3SMaciej Żenczykowski };
3220*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_GM_CFG2[] = {
3221*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GM_FD),
3222*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GM_CRC_EN),
3223*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GM_PAD_CRC_EN),
3224*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GM_LEN_CHK),
3225*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GM_HUGE_FRM_EN),
3226*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GM_IF_MODE),
3227*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GM_PAMBL_LEN),
3228*1b481fc3SMaciej Żenczykowski };
3229*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_GM_MAX_FLEN[] = {
3230*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GM_MAX_FLEN),
3231*1b481fc3SMaciej Żenczykowski };
3232*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_GM_ADR1[] = {
3233*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GM_ADR_B3),
3234*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GM_ADR_B2),
3235*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GM_ADR_B1),
3236*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GM_ADR_B0),
3237*1b481fc3SMaciej Żenczykowski };
3238*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_GM_ADR2[] = {
3239*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GM_ADR_B5),
3240*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GM_ADR_B4),
3241*1b481fc3SMaciej Żenczykowski };
3242*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_GMF_CFG0[] = {
3243*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GMF_HSTRSTWT),
3244*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GMF_HSTRSTSR),
3245*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GMF_HSTRSTFR),
3246*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GMF_HSTRSTST),
3247*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GMF_HSTRSTFT),
3248*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GMF_WTMENREQ),
3249*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GMF_SRFENREQ),
3250*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GMF_FRFENREQ),
3251*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GMF_STFENREQ),
3252*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GMF_FTFENREQ),
3253*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GMF_WTMENRPLY),
3254*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GMF_SRFENRPLY),
3255*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GMF_FRFENRPLY),
3256*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GMF_STFENRPLY),
3257*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GMF_FTFENRPLY),
3258*1b481fc3SMaciej Żenczykowski };
3259*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_GMF_CFG1[] = {
3260*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GMF_CFGXOFFRTX),
3261*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GMF_CFGFRTH),
3262*1b481fc3SMaciej Żenczykowski };
3263*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_GMF_CFG2[] = {
3264*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GMF_CFGLWM),
3265*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GMF_CFGHWM),
3266*1b481fc3SMaciej Żenczykowski };
3267*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_GMF_CFG3[] = {
3268*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GMF_CFGFTTH),
3269*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GMF_CFGHWMFT),
3270*1b481fc3SMaciej Żenczykowski };
3271*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_GMF_CFG4[] = {
3272*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GMF_HSTFLTRFRM),
3273*1b481fc3SMaciej Żenczykowski };
3274*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_GMF_CFG5[] = {
3275*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GMF_HSTFLTRFRMDC),
3276*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GMF_HSTDRPLT64),
3277*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GMF_CFGBYTMODE),
3278*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GMF_HSTSRFULLCLR),
3279*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GMF_SRFULL),
3280*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(GMF_CFGHDPLX),
3281*1b481fc3SMaciej Żenczykowski };
3282*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_TX_SRC_MAC_TBL[] = {
3283*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_SRC_MAC_ADR_0),
3284*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_SRC_MAC_ADR_1),
3285*1b481fc3SMaciej Żenczykowski };
3286*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_TX_SRC_MAC_CTL[] = {
3287*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_MAC_QID_SEL),
3288*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_DROP_CTR_CLR),
3289*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_SRC_FLTR_EN),
3290*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TX_SRC_DROP_CTR),
3291*1b481fc3SMaciej Żenczykowski };
3292*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_XM_ADR_LO[] = {
3293*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_ADR_LO),
3294*1b481fc3SMaciej Żenczykowski };
3295*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_XM_ADR_HI[] = {
3296*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_ADR_HI),
3297*1b481fc3SMaciej Żenczykowski };
3298*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_XM_GLB_CFG[] = {
3299*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_CORE_RST),
3300*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_INTCLR_MODE),
3301*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_WAN_MODE),
3302*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_RX_JUMBO_MODE),
3303*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_TX_STAT_EN),
3304*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_RX_STAT_EN),
3305*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_DEBUG_MODE),
3306*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_RMTFLT_GEN),
3307*1b481fc3SMaciej Żenczykowski };
3308*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_XM_TX_CFG[] = {
3309*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_TX_RST),
3310*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_TXEN),
3311*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_TX_PRMBL),
3312*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_AUTO_PAD),
3313*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_EDRC),
3314*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_TXCRC),
3315*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_FCNTL),
3316*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_IPG),
3317*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_TX_PROG),
3318*1b481fc3SMaciej Żenczykowski };
3319*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_XM_RX_CFG[] = {
3320*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_RX_RST),
3321*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_RXEN),
3322*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_RX_PRMBL),
3323*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_RXCRC),
3324*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_AUTO_DEPAD),
3325*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_ACPT_ALL_UCAST),
3326*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_ACPT_ALL_MCAST),
3327*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_REJ_BCAST),
3328*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_PASS_PRMBLE_ERR),
3329*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_PASS_CRC_ERR),
3330*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_PASS_LENERR),
3331*1b481fc3SMaciej Żenczykowski };
3332*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_XM_MGT_INT_MASK[] = {
3333*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_MSK_LCLFLT),
3334*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_MSK_RMTFLT),
3335*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_MSK_PRMBLE_ERR),
3336*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_MSK_STAT_CNTR_OF),
3337*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_MSK_STAT_CNTR_HF),
3338*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_MSK_STA_INTR),
3339*1b481fc3SMaciej Żenczykowski };
3340*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_XM_FC[] = {
3341*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_DIS_FCNTL),
3342*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_XMIT_PAUSE),
3343*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_ZPAUSE),
3344*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_REJ_CNTL_MCAST),
3345*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_REJ_CNTL_UCAST),
3346*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_MCNTL_PASS),
3347*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_TX_MAC_STAT),
3348*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_RX_MAC_STAT),
3349*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_PAUSE_TIME),
3350*1b481fc3SMaciej Żenczykowski };
3351*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_XM_PAUSE_TIME[] = {
3352*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_RX_PAUSE_CNT),
3353*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_TX_PAUSE_CNT),
3354*1b481fc3SMaciej Żenczykowski };
3355*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_XM_TX_PARAM[] = {
3356*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_PAD_CHAR),
3357*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_MAX_TX_FRM_SIZE_LO),
3358*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_MAX_TX_FRM_SIZE_HI),
3359*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_TX_JUMBO_MODE),
3360*1b481fc3SMaciej Żenczykowski };
3361*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_XM_RX_PARAM[] = {
3362*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_MAX_RX_FRM_SIZE_LO),
3363*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XM_MAX_RX_FRM_SIZE_HI),
3364*1b481fc3SMaciej Żenczykowski };
3365*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_XX_PWR_RST[] = {
3366*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_RST_XX_EN),
3367*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_RSTXGXSTX_EN),
3368*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_RSTXGXSRX_EN),
3369*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_RESETA_EN),
3370*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_RESETB_EN),
3371*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_RESETC_EN),
3372*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_RESETD_EN),
3373*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_RSTPLLAB_EN),
3374*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_RSTPLLCD_EN),
3375*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_PWRDNA_EN),
3376*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_PWRDNB_EN),
3377*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_PWRDNC_EN),
3378*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_PWRDND_EN),
3379*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_SD_RST_ACT),
3380*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_RSTXGXSTX_SIG),
3381*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_RSTXGXSRX_SIG),
3382*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_RESETA_SIG),
3383*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_RESETB_SIG),
3384*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_RESETC_SIG),
3385*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_RESETD_SIG),
3386*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_RSTPLLAB_SIG),
3387*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_RSTPLLCD_SIG),
3388*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_SIM_MODE),
3389*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_PWRDNA_SIG),
3390*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_PWRDNB_SIG),
3391*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_PWRDNC_SIG),
3392*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_PWRDND_SIG),
3393*1b481fc3SMaciej Żenczykowski };
3394*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_XX_SD_CTL[] = {
3395*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_LPBKA),
3396*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_LPBKB),
3397*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_LPBKC),
3398*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_LPBKD),
3399*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_LODRVA),
3400*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_HIDRVA),
3401*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_LODRVB),
3402*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_HIDRVB),
3403*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_LODRVC),
3404*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_HIDRVC),
3405*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_LODRVD),
3406*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_HIDRVD),
3407*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_TERMADJ0),
3408*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_TERMADJ1),
3409*1b481fc3SMaciej Żenczykowski };
3410*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_XX_TXDRV_CTL[] = {
3411*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_DTXA),
3412*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_DTXB),
3413*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_DTXC),
3414*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_DTXD),
3415*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_DEQA),
3416*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_DEQB),
3417*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_DEQC),
3418*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(XX_DEQD),
3419*1b481fc3SMaciej Żenczykowski };
3420*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_BIU_HW_REV_ID[] = {
3421*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_DZ(HW_REV_ID),
3422*1b481fc3SMaciej Żenczykowski };
3423*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_MC_DB_LWRD[] = {
3424*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_DZ(MC_DOORBELL_L),
3425*1b481fc3SMaciej Żenczykowski };
3426*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_MC_DB_HWRD[] = {
3427*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_DZ(MC_DOORBELL_H),
3428*1b481fc3SMaciej Żenczykowski };
3429*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_RX_DESC_PTR_TBL[] = {
3430*1b481fc3SMaciej Żenczykowski 	/* Abbreviate field names to reduce the table width */
3431*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ_RENAME(RX_DESCQ_EN, "EN"),
3432*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ_RENAME(RX_DESCQ_JUMBO, "JUMBO"),
3433*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ_RENAME(RX_DESCQ_TYPE, "TYPE"),
3434*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ_RENAME(RX_DESCQ_SIZE, "SIZE"),
3435*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ_RENAME(RX_DESCQ_LABEL, "LABEL"),
3436*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ_RENAME(RX_DESCQ_OWNER_ID, "OWNER"),
3437*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ_RENAME(RX_DESCQ_EVQ_ID, "EVQ"),
3438*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ_RENAME(RX_DESCQ_BUF_BASE_ID, "BUF_BASE"),
3439*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ_RENAME(RX_DESCQ_SW_WPTR, "SW_WPTR"),
3440*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ_RENAME(RX_DESCQ_HW_RPTR, "HW_RPTR"),
3441*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ_RENAME(RX_DC_HW_RPTR, "DC_HW_RPTR"),
3442*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ_RENAME(RX_DESC_PREF_ACT, "PREF_ACT"),
3443*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ_RENAME(RX_ISCSI_HDIG_EN, "HDIG"),
3444*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ_RENAME(RX_ISCSI_DDIG_EN, "DDIG"),
3445*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AA(RX_RESET),
3446*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ_RENAME(RX_HDR_SPLIT, "HDR_SPLIT"),
3447*1b481fc3SMaciej Żenczykowski };
3448*1b481fc3SMaciej Żenczykowski #define efx_nic_reg_fields_RX_DESC_PTR_TBL_KER efx_nic_reg_fields_RX_DESC_PTR_TBL
3449*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_TX_DESC_PTR_TBL[] = {
3450*1b481fc3SMaciej Żenczykowski 	/* Abbreviate field names to reduce the table width */
3451*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ_RENAME(TX_DESCQ_FLUSH, "FLUSH"),
3452*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ_RENAME(TX_DESCQ_TYPE, "TYPE"),
3453*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ_RENAME(TX_DESCQ_SIZE, "SIZE"),
3454*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ_RENAME(TX_DESCQ_LABEL, "LABEL"),
3455*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ_RENAME(TX_DESCQ_OWNER_ID, "OWNER"),
3456*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ_RENAME(TX_DESCQ_EVQ_ID, "EVQ"),
3457*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ_RENAME(TX_DESCQ_BUF_BASE_ID, "BUF_BASE"),
3458*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ_RENAME(TX_DESCQ_SW_WPTR, "SW_WPTR"),
3459*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ_RENAME(TX_DESCQ_HW_RPTR, "HW_RPTR"),
3460*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ_RENAME(TX_DC_HW_RPTR, "DC_HW_RPTR"),
3461*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ_RENAME(TX_ISCSI_HDIG_EN, "HDIG"),
3462*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ_RENAME(TX_ISCSI_DDIG_EN, "DDIG"),
3463*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ_RENAME(TX_DESCQ_EN, "EN"),
3464*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ_RENAME(TX_TCP_CHKSM_DIS, "!TCP_CHKSM"),
3465*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ_RENAME(TX_IP_CHKSM_DIS, "!IP_CHKSM"),
3466*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ_RENAME(TX_NON_IP_DROP_DIS, "!NON_IP_DROP"),
3467*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ_RENAME(TX_DPT_IP_FILT_EN, "IP_FILT"),
3468*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ_RENAME(TX_DPT_ETH_FILT_EN, "ETH_FILT"),
3469*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ_RENAME(TX_DPT_Q_MASK_WIDTH, "Q_MASK_WIDTH"),
3470*1b481fc3SMaciej Żenczykowski };
3471*1b481fc3SMaciej Żenczykowski #define efx_nic_reg_fields_TX_DESC_PTR_TBL_KER efx_nic_reg_fields_TX_DESC_PTR_TBL
3472*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_EVQ_PTR_TBL[] = {
3473*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(EVQ_BUF_BASE_ID),
3474*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(EVQ_SIZE),
3475*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(EVQ_EN),
3476*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(EVQ_NXT_WPTR),
3477*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(EVQ_DOS_PROTECT_EN),
3478*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AB(EVQ_WKUP_OR_INT_EN),
3479*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(EVQ_RPTR_IGN),
3480*1b481fc3SMaciej Żenczykowski };
3481*1b481fc3SMaciej Żenczykowski #define efx_nic_reg_fields_EVQ_PTR_TBL_KER efx_nic_reg_fields_EVQ_PTR_TBL
3482*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_BUF_FULL_TBL[] = {
3483*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(BUF_OWNER_ID_FBUF),
3484*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(BUF_ADR_FBUF),
3485*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(BUF_ADR_REGION),
3486*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(IP_DAT_BUF_SIZE),
3487*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_AZ(BUF_FULL_UNUSED),
3488*1b481fc3SMaciej Żenczykowski };
3489*1b481fc3SMaciej Żenczykowski #define efx_nic_reg_fields_BUF_FULL_TBL_KER efx_nic_reg_fields_BUF_FULL_TBL
3490*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_RX_FILTER_TBL0[] = {
3491*1b481fc3SMaciej Żenczykowski 	/* Source port for full match; destination port for UDP wild match */
3492*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ_RENAME(SRC_TCP_DEST_UDP, "SRC_PORT"),
3493*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(SRC_IP),
3494*1b481fc3SMaciej Żenczykowski 	/* Destination port for full match or TCP wild match */
3495*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ_RENAME(DEST_PORT_TCP, "DEST_PORT"),
3496*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(DEST_IP),
3497*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(RXQ_ID),
3498*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(TCP_UDP),
3499*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(SCATTER_EN),
3500*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(RSS_EN),
3501*1b481fc3SMaciej Żenczykowski };
3502*1b481fc3SMaciej Żenczykowski #define efx_nic_reg_fields_RX_FILTER_TBL1 efx_nic_reg_fields_RX_FILTER_TBL0
3503*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_RX_MAC_FILTER_TBL0[] = {
3504*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(RMFT_VLAN_ID),
3505*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(RMFT_DEST_MAC),
3506*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(RMFT_WILDCARD_MATCH),
3507*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(RMFT_RXQ_ID),
3508*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(RMFT_IP_OVERRIDE),
3509*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(RMFT_SCATTER_EN),
3510*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(RMFT_RSS_EN),
3511*1b481fc3SMaciej Żenczykowski };
3512*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_TIMER_TBL[] = {
3513*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TIMER_VAL),
3514*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(TIMER_VAL),
3515*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BB(TIMER_MODE),
3516*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(TIMER_MODE),
3517*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(RELOAD_TIMER_VAL),
3518*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(HOST_NOTIFY_MODE),
3519*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(INT_PEND),
3520*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(INT_ARMD),
3521*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(TIMER_Q_EN),
3522*1b481fc3SMaciej Żenczykowski };
3523*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_TX_PACE_TBL[] = {
3524*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(TX_PACE),
3525*1b481fc3SMaciej Żenczykowski };
3526*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_RX_INDIRECTION_TBL[] = {
3527*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_BZ(IT_QUEUE),
3528*1b481fc3SMaciej Żenczykowski };
3529*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_TX_MAC_FILTER_TBL0[] = {
3530*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(TMFT_VLAN_ID),
3531*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(TMFT_SRC_MAC),
3532*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(TMFT_WILDCARD_MATCH),
3533*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(TMFT_TXQ_ID),
3534*1b481fc3SMaciej Żenczykowski };
3535*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_MC_TREG_SMEM[] = {
3536*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_CZ(MC_TREG_SMEM_ROW),
3537*1b481fc3SMaciej Żenczykowski };
3538*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_field efx_nic_reg_fields_BIU_MC_SFT_STATUS[] = {
3539*1b481fc3SMaciej Żenczykowski 	REGISTER_FIELD_DZ(MC_SFT_STATUS),
3540*1b481fc3SMaciej Żenczykowski };
3541*1b481fc3SMaciej Żenczykowski 
3542*1b481fc3SMaciej Żenczykowski struct efx_nic_reg {
3543*1b481fc3SMaciej Żenczykowski 	const char *name;
3544*1b481fc3SMaciej Żenczykowski 	const struct efx_nic_reg_field *fields;
3545*1b481fc3SMaciej Żenczykowski 	u8 field_count;
3546*1b481fc3SMaciej Żenczykowski 	u8 min_revision, max_revision;
3547*1b481fc3SMaciej Żenczykowski };
3548*1b481fc3SMaciej Żenczykowski 
3549*1b481fc3SMaciej Żenczykowski #define REGISTER(name, arch, min_rev, max_rev) {			\
3550*1b481fc3SMaciej Żenczykowski 	#name,								\
3551*1b481fc3SMaciej Żenczykowski 	efx_nic_reg_fields_ ## name,					\
3552*1b481fc3SMaciej Żenczykowski 	ARRAY_SIZE(efx_nic_reg_fields_ ## name),			\
3553*1b481fc3SMaciej Żenczykowski 	REGISTER_REVISION_ ## arch ## min_rev,				\
3554*1b481fc3SMaciej Żenczykowski 	REGISTER_REVISION_ ## arch ## max_rev				\
3555*1b481fc3SMaciej Żenczykowski }
3556*1b481fc3SMaciej Żenczykowski #define REGISTER_AA(name) REGISTER(name, F, A, A)
3557*1b481fc3SMaciej Żenczykowski #define REGISTER_AB(name) REGISTER(name, F, A, B)
3558*1b481fc3SMaciej Żenczykowski #define REGISTER_AZ(name) REGISTER(name, F, A, Z)
3559*1b481fc3SMaciej Żenczykowski #define REGISTER_BB(name) REGISTER(name, F, B, B)
3560*1b481fc3SMaciej Żenczykowski #define REGISTER_BZ(name) REGISTER(name, F, B, Z)
3561*1b481fc3SMaciej Żenczykowski #define REGISTER_CZ(name) REGISTER(name, F, C, Z)
3562*1b481fc3SMaciej Żenczykowski #define REGISTER_DZ(name) REGISTER(name, E, D, Z)
3563*1b481fc3SMaciej Żenczykowski 
3564*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg efx_nic_regs[] = {
3565*1b481fc3SMaciej Żenczykowski 	REGISTER_AZ(ADR_REGION),
3566*1b481fc3SMaciej Żenczykowski 	REGISTER_AZ(INT_EN_KER),
3567*1b481fc3SMaciej Żenczykowski 	REGISTER_BZ(INT_EN_CHAR),
3568*1b481fc3SMaciej Żenczykowski 	REGISTER_AZ(INT_ADR_KER),
3569*1b481fc3SMaciej Żenczykowski 	REGISTER_BZ(INT_ADR_CHAR),
3570*1b481fc3SMaciej Żenczykowski 	/* INT_ACK_KER is WO */
3571*1b481fc3SMaciej Żenczykowski 	/* INT_ISR0 is RC */
3572*1b481fc3SMaciej Żenczykowski 	REGISTER_AZ(HW_INIT),
3573*1b481fc3SMaciej Żenczykowski 	REGISTER_CZ(USR_EV_CFG),
3574*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(EE_SPI_HCMD),
3575*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(EE_SPI_HADR),
3576*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(EE_SPI_HDATA),
3577*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(EE_BASE_PAGE),
3578*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(EE_VPD_CFG0),
3579*1b481fc3SMaciej Żenczykowski 	/* EE_VPD_SW_CNTL and EE_VPD_SW_DATA are not used */
3580*1b481fc3SMaciej Żenczykowski 	/* PMBX_DBG_IADDR and PBMX_DBG_IDATA are indirect */
3581*1b481fc3SMaciej Żenczykowski 	/* PCIE_CORE_INDIRECT is indirect */
3582*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(NIC_STAT),
3583*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(GPIO_CTL),
3584*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(GLB_CTL),
3585*1b481fc3SMaciej Żenczykowski 	/* FATAL_INTR_KER and FATAL_INTR_CHAR are partly RC */
3586*1b481fc3SMaciej Żenczykowski 	REGISTER_BZ(DP_CTRL),
3587*1b481fc3SMaciej Żenczykowski 	REGISTER_AZ(MEM_STAT),
3588*1b481fc3SMaciej Żenczykowski 	REGISTER_AZ(CS_DEBUG),
3589*1b481fc3SMaciej Żenczykowski 	REGISTER_AZ(ALTERA_BUILD),
3590*1b481fc3SMaciej Żenczykowski 	REGISTER_AZ(CSR_SPARE),
3591*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(PCIE_SD_CTL0123),
3592*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(PCIE_SD_CTL45),
3593*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(PCIE_PCS_CTL_STAT),
3594*1b481fc3SMaciej Żenczykowski 	/* DEBUG_DATA_OUT is not used */
3595*1b481fc3SMaciej Żenczykowski 	/* DRV_EV is WO */
3596*1b481fc3SMaciej Żenczykowski 	REGISTER_AZ(EVQ_CTL),
3597*1b481fc3SMaciej Żenczykowski 	REGISTER_AZ(EVQ_CNT1),
3598*1b481fc3SMaciej Żenczykowski 	REGISTER_AZ(EVQ_CNT2),
3599*1b481fc3SMaciej Żenczykowski 	REGISTER_AZ(BUF_TBL_CFG),
3600*1b481fc3SMaciej Żenczykowski 	REGISTER_AZ(SRM_RX_DC_CFG),
3601*1b481fc3SMaciej Żenczykowski 	REGISTER_AZ(SRM_TX_DC_CFG),
3602*1b481fc3SMaciej Żenczykowski 	REGISTER_AZ(SRM_CFG),
3603*1b481fc3SMaciej Żenczykowski 	/* BUF_TBL_UPD is WO */
3604*1b481fc3SMaciej Żenczykowski 	REGISTER_AZ(SRM_UPD_EVQ),
3605*1b481fc3SMaciej Żenczykowski 	REGISTER_AZ(SRAM_PARITY),
3606*1b481fc3SMaciej Żenczykowski 	REGISTER_AZ(RX_CFG),
3607*1b481fc3SMaciej Żenczykowski 	REGISTER_BZ(RX_FILTER_CTL),
3608*1b481fc3SMaciej Żenczykowski 	/* RX_FLUSH_DESCQ is WO */
3609*1b481fc3SMaciej Żenczykowski 	REGISTER_AZ(RX_DC_CFG),
3610*1b481fc3SMaciej Żenczykowski 	REGISTER_AZ(RX_DC_PF_WM),
3611*1b481fc3SMaciej Żenczykowski 	REGISTER_BZ(RX_RSS_TKEY),
3612*1b481fc3SMaciej Żenczykowski 	/* RX_NODESC_DROP is RC */
3613*1b481fc3SMaciej Żenczykowski 	REGISTER_AA(RX_SELF_RST),
3614*1b481fc3SMaciej Żenczykowski 	/* RX_DEBUG, RX_PUSH_DROP are not used */
3615*1b481fc3SMaciej Żenczykowski 	REGISTER_CZ(RX_RSS_IPV6_REG1),
3616*1b481fc3SMaciej Żenczykowski 	REGISTER_CZ(RX_RSS_IPV6_REG2),
3617*1b481fc3SMaciej Żenczykowski 	REGISTER_CZ(RX_RSS_IPV6_REG3),
3618*1b481fc3SMaciej Żenczykowski 	/* TX_FLUSH_DESCQ is WO */
3619*1b481fc3SMaciej Żenczykowski 	REGISTER_AZ(TX_DC_CFG),
3620*1b481fc3SMaciej Żenczykowski 	REGISTER_AA(TX_CHKSM_CFG),
3621*1b481fc3SMaciej Żenczykowski 	REGISTER_AZ(TX_CFG),
3622*1b481fc3SMaciej Żenczykowski 	/* TX_PUSH_DROP is not used */
3623*1b481fc3SMaciej Żenczykowski 	REGISTER_AZ(TX_RESERVED),
3624*1b481fc3SMaciej Żenczykowski 	REGISTER_BZ(TX_PACE),
3625*1b481fc3SMaciej Żenczykowski 	/* TX_PACE_DROP_QID is RC */
3626*1b481fc3SMaciej Żenczykowski 	REGISTER_BB(TX_VLAN),
3627*1b481fc3SMaciej Żenczykowski 	REGISTER_BZ(TX_IPFIL_PORTEN),
3628*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(MD_TXD),
3629*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(MD_RXD),
3630*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(MD_CS),
3631*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(MD_PHY_ADR),
3632*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(MD_ID),
3633*1b481fc3SMaciej Żenczykowski 	/* MD_STAT is RC */
3634*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(MAC_STAT_DMA),
3635*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(MAC_CTRL),
3636*1b481fc3SMaciej Żenczykowski 	REGISTER_BB(GEN_MODE),
3637*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(MAC_MC_HASH_REG0),
3638*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(MAC_MC_HASH_REG1),
3639*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(GM_CFG1),
3640*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(GM_CFG2),
3641*1b481fc3SMaciej Żenczykowski 	/* GM_IPG and GM_HD are not used */
3642*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(GM_MAX_FLEN),
3643*1b481fc3SMaciej Żenczykowski 	/* GM_TEST is not used */
3644*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(GM_ADR1),
3645*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(GM_ADR2),
3646*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(GMF_CFG0),
3647*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(GMF_CFG1),
3648*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(GMF_CFG2),
3649*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(GMF_CFG3),
3650*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(GMF_CFG4),
3651*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(GMF_CFG5),
3652*1b481fc3SMaciej Żenczykowski 	REGISTER_BB(TX_SRC_MAC_CTL),
3653*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(XM_ADR_LO),
3654*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(XM_ADR_HI),
3655*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(XM_GLB_CFG),
3656*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(XM_TX_CFG),
3657*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(XM_RX_CFG),
3658*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(XM_MGT_INT_MASK),
3659*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(XM_FC),
3660*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(XM_PAUSE_TIME),
3661*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(XM_TX_PARAM),
3662*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(XM_RX_PARAM),
3663*1b481fc3SMaciej Żenczykowski 	/* XM_MGT_INT_MSK (note no 'A') is RC */
3664*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(XX_PWR_RST),
3665*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(XX_SD_CTL),
3666*1b481fc3SMaciej Żenczykowski 	REGISTER_AB(XX_TXDRV_CTL),
3667*1b481fc3SMaciej Żenczykowski 	/* XX_PRBS_CTL, XX_PRBS_CHK and XX_PRBS_ERR are not used */
3668*1b481fc3SMaciej Żenczykowski 	/* XX_CORE_STAT is partly RC */
3669*1b481fc3SMaciej Żenczykowski 	REGISTER_DZ(BIU_HW_REV_ID),
3670*1b481fc3SMaciej Żenczykowski 	REGISTER_DZ(MC_DB_LWRD),
3671*1b481fc3SMaciej Żenczykowski 	REGISTER_DZ(MC_DB_HWRD),
3672*1b481fc3SMaciej Żenczykowski };
3673*1b481fc3SMaciej Żenczykowski 
3674*1b481fc3SMaciej Żenczykowski struct efx_nic_reg_table {
3675*1b481fc3SMaciej Żenczykowski 	const char *name;
3676*1b481fc3SMaciej Żenczykowski 	const struct efx_nic_reg_field *fields;
3677*1b481fc3SMaciej Żenczykowski 	u8 field_count;
3678*1b481fc3SMaciej Żenczykowski 	u8 min_revision, max_revision;
3679*1b481fc3SMaciej Żenczykowski 	u8 step;
3680*1b481fc3SMaciej Żenczykowski 	u32 rows;
3681*1b481fc3SMaciej Żenczykowski };
3682*1b481fc3SMaciej Żenczykowski 
3683*1b481fc3SMaciej Żenczykowski #define REGISTER_TABLE_DIMENSIONS(name, _, arch, min_rev, max_rev, step, rows) { \
3684*1b481fc3SMaciej Żenczykowski 	#name,								\
3685*1b481fc3SMaciej Żenczykowski 	efx_nic_reg_fields_ ## name,					\
3686*1b481fc3SMaciej Żenczykowski 	ARRAY_SIZE(efx_nic_reg_fields_ ## name),			\
3687*1b481fc3SMaciej Żenczykowski 	REGISTER_REVISION_ ## arch ## min_rev,				\
3688*1b481fc3SMaciej Żenczykowski 	REGISTER_REVISION_ ## arch ## max_rev,				\
3689*1b481fc3SMaciej Żenczykowski 	step, rows							\
3690*1b481fc3SMaciej Żenczykowski }
3691*1b481fc3SMaciej Żenczykowski #define REGISTER_TABLE(name, arch, min_rev, max_rev)			\
3692*1b481fc3SMaciej Żenczykowski 	REGISTER_TABLE_DIMENSIONS(					\
3693*1b481fc3SMaciej Żenczykowski 		name, arch ## R_ ## min_rev ## max_rev ## _ ## name,	\
3694*1b481fc3SMaciej Żenczykowski 		arch, min_rev, max_rev,					\
3695*1b481fc3SMaciej Żenczykowski 		arch ## R_ ## min_rev ## max_rev ## _ ## name ## _STEP,	\
3696*1b481fc3SMaciej Żenczykowski 		arch ## R_ ## min_rev ## max_rev ## _ ## name ## _ROWS)
3697*1b481fc3SMaciej Żenczykowski #define REGISTER_TABLE_AA(name) REGISTER_TABLE(name, F, A, A)
3698*1b481fc3SMaciej Żenczykowski #define REGISTER_TABLE_AZ(name) REGISTER_TABLE(name, F, A, Z)
3699*1b481fc3SMaciej Żenczykowski #define REGISTER_TABLE_BB(name) REGISTER_TABLE(name, F, B, B)
3700*1b481fc3SMaciej Żenczykowski #define REGISTER_TABLE_BZ(name) REGISTER_TABLE(name, F, B, Z)
3701*1b481fc3SMaciej Żenczykowski #define REGISTER_TABLE_BB_CZ(name)					\
3702*1b481fc3SMaciej Żenczykowski 	REGISTER_TABLE_DIMENSIONS(name, FR_BZ_ ## name, F, B, B,	\
3703*1b481fc3SMaciej Żenczykowski 				  FR_BZ_ ## name ## _STEP,		\
3704*1b481fc3SMaciej Żenczykowski 				  FR_BB_ ## name ## _ROWS),		\
3705*1b481fc3SMaciej Żenczykowski 	REGISTER_TABLE_DIMENSIONS(name, FR_BZ_ ## name, F, C, Z,	\
3706*1b481fc3SMaciej Żenczykowski 				  FR_BZ_ ## name ## _STEP,		\
3707*1b481fc3SMaciej Żenczykowski 				  FR_CZ_ ## name ## _ROWS)
3708*1b481fc3SMaciej Żenczykowski #define REGISTER_TABLE_CZ(name) REGISTER_TABLE(name, F, C, Z)
3709*1b481fc3SMaciej Żenczykowski #define REGISTER_TABLE_DZ(name) REGISTER_TABLE(name, E, D, Z)
3710*1b481fc3SMaciej Żenczykowski 
3711*1b481fc3SMaciej Żenczykowski static const struct efx_nic_reg_table efx_nic_reg_tables[] = {
3712*1b481fc3SMaciej Żenczykowski 	/* DRIVER is not used */
3713*1b481fc3SMaciej Żenczykowski 	/* EVQ_RPTR, TIMER_COMMAND, USR_EV and {RX,TX}_DESC_UPD are WO */
3714*1b481fc3SMaciej Żenczykowski 	REGISTER_TABLE_BB(TX_IPFIL_TBL),
3715*1b481fc3SMaciej Żenczykowski 	REGISTER_TABLE_BB(TX_SRC_MAC_TBL),
3716*1b481fc3SMaciej Żenczykowski 	REGISTER_TABLE_AA(RX_DESC_PTR_TBL_KER),
3717*1b481fc3SMaciej Żenczykowski 	REGISTER_TABLE_BB_CZ(RX_DESC_PTR_TBL),
3718*1b481fc3SMaciej Żenczykowski 	REGISTER_TABLE_AA(TX_DESC_PTR_TBL_KER),
3719*1b481fc3SMaciej Żenczykowski 	REGISTER_TABLE_BB_CZ(TX_DESC_PTR_TBL),
3720*1b481fc3SMaciej Żenczykowski 	REGISTER_TABLE_AA(EVQ_PTR_TBL_KER),
3721*1b481fc3SMaciej Żenczykowski 	REGISTER_TABLE_BB_CZ(EVQ_PTR_TBL),
3722*1b481fc3SMaciej Żenczykowski 	/* We can't reasonably read all of the buffer table (up to 8MB!).
3723*1b481fc3SMaciej Żenczykowski 	 * However this driver will only use a few entries.  Reading
3724*1b481fc3SMaciej Żenczykowski 	 * 1K entries allows for some expansion of queue count and
3725*1b481fc3SMaciej Żenczykowski 	 * size before we need to change the version. */
3726*1b481fc3SMaciej Żenczykowski 	REGISTER_TABLE_DIMENSIONS(BUF_FULL_TBL_KER, FR_AA_BUF_FULL_TBL_KER,
3727*1b481fc3SMaciej Żenczykowski 				  F, A, A, 8, 1024),
3728*1b481fc3SMaciej Żenczykowski 	REGISTER_TABLE_DIMENSIONS(BUF_FULL_TBL, FR_BZ_BUF_FULL_TBL,
3729*1b481fc3SMaciej Żenczykowski 				  F, B, Z, 8, 1024),
3730*1b481fc3SMaciej Żenczykowski 	REGISTER_TABLE_CZ(RX_MAC_FILTER_TBL0),
3731*1b481fc3SMaciej Żenczykowski 	REGISTER_TABLE_BB_CZ(TIMER_TBL),
3732*1b481fc3SMaciej Żenczykowski 	REGISTER_TABLE_BB_CZ(TX_PACE_TBL),
3733*1b481fc3SMaciej Żenczykowski 	REGISTER_TABLE_BZ(RX_INDIRECTION_TBL),
3734*1b481fc3SMaciej Żenczykowski 	/* TX_FILTER_TBL0 is huge and not used by this driver */
3735*1b481fc3SMaciej Żenczykowski 	REGISTER_TABLE_CZ(TX_MAC_FILTER_TBL0),
3736*1b481fc3SMaciej Żenczykowski 	REGISTER_TABLE_CZ(MC_TREG_SMEM),
3737*1b481fc3SMaciej Żenczykowski 	/* MSIX_PBA_TABLE is not mapped */
3738*1b481fc3SMaciej Żenczykowski 	/* SRM_DBG is not mapped (and is redundant with BUF_FLL_TBL) */
3739*1b481fc3SMaciej Żenczykowski 	REGISTER_TABLE_BZ(RX_FILTER_TBL0),
3740*1b481fc3SMaciej Żenczykowski 	REGISTER_TABLE_DZ(BIU_MC_SFT_STATUS),
3741*1b481fc3SMaciej Żenczykowski };
3742*1b481fc3SMaciej Żenczykowski 
column_width(const struct efx_nic_reg_field * field)3743*1b481fc3SMaciej Żenczykowski static size_t column_width(const struct efx_nic_reg_field *field)
3744*1b481fc3SMaciej Żenczykowski {
3745*1b481fc3SMaciej Żenczykowski 	size_t name_width, value_width;
3746*1b481fc3SMaciej Żenczykowski 
3747*1b481fc3SMaciej Żenczykowski 	name_width = strlen(field->name);
3748*1b481fc3SMaciej Żenczykowski 	value_width = (field->width + 3) >> 2;
3749*1b481fc3SMaciej Żenczykowski 
3750*1b481fc3SMaciej Żenczykowski 	return name_width > value_width ? name_width : value_width;
3751*1b481fc3SMaciej Żenczykowski }
3752*1b481fc3SMaciej Żenczykowski 
column_padding(const struct efx_nic_reg_field * field)3753*1b481fc3SMaciej Żenczykowski static size_t column_padding(const struct efx_nic_reg_field *field)
3754*1b481fc3SMaciej Żenczykowski {
3755*1b481fc3SMaciej Żenczykowski 	size_t name_width, value_width;
3756*1b481fc3SMaciej Żenczykowski 
3757*1b481fc3SMaciej Żenczykowski 	name_width = strlen(field->name);
3758*1b481fc3SMaciej Żenczykowski 	value_width = (field->width + 3) >> 2;
3759*1b481fc3SMaciej Żenczykowski 
3760*1b481fc3SMaciej Żenczykowski 	return name_width > value_width ? name_width - value_width : 0;
3761*1b481fc3SMaciej Żenczykowski }
3762*1b481fc3SMaciej Żenczykowski 
3763*1b481fc3SMaciej Żenczykowski static void
print_field_value(const struct efx_nic_reg_field * field,const u8 * buf)3764*1b481fc3SMaciej Żenczykowski print_field_value(const struct efx_nic_reg_field *field, const u8 *buf)
3765*1b481fc3SMaciej Żenczykowski {
3766*1b481fc3SMaciej Żenczykowski 	unsigned left, right, sig_bits, digit;
3767*1b481fc3SMaciej Żenczykowski 
3768*1b481fc3SMaciej Żenczykowski 	right = field->lbn;
3769*1b481fc3SMaciej Żenczykowski 	left = right + ((field->width + 3) & ~3);
3770*1b481fc3SMaciej Żenczykowski 
3771*1b481fc3SMaciej Żenczykowski 	/* How many bits are valid for the most significant hex digit? */
3772*1b481fc3SMaciej Żenczykowski 	sig_bits = (field->width & 3) ? (field->width & 3) : 4;
3773*1b481fc3SMaciej Żenczykowski 
3774*1b481fc3SMaciej Żenczykowski 	while (left > right) {
3775*1b481fc3SMaciej Żenczykowski 		left -= 4;
3776*1b481fc3SMaciej Żenczykowski 		digit = buf[left >> 3];
3777*1b481fc3SMaciej Żenczykowski 		if ((left & 7) + sig_bits > 8)
3778*1b481fc3SMaciej Żenczykowski 			digit |= buf[(left >> 3) + 1] << 8;
3779*1b481fc3SMaciej Żenczykowski 		digit = (digit >> (left & 7)) & ((1 << sig_bits) - 1);
3780*1b481fc3SMaciej Żenczykowski 		printf("%x", digit);
3781*1b481fc3SMaciej Żenczykowski 		sig_bits = 4; /* for all subsequent digits */
3782*1b481fc3SMaciej Żenczykowski 	}
3783*1b481fc3SMaciej Żenczykowski }
3784*1b481fc3SMaciej Żenczykowski 
3785*1b481fc3SMaciej Żenczykowski static const void *
print_single_register(unsigned revision,const struct efx_nic_reg * reg,const void * buf)3786*1b481fc3SMaciej Żenczykowski print_single_register(unsigned revision, const struct efx_nic_reg *reg,
3787*1b481fc3SMaciej Żenczykowski 		      const void *buf)
3788*1b481fc3SMaciej Żenczykowski {
3789*1b481fc3SMaciej Żenczykowski 	const struct efx_nic_reg_field *field;
3790*1b481fc3SMaciej Żenczykowski 	int indent = 0;
3791*1b481fc3SMaciej Żenczykowski 	size_t i;
3792*1b481fc3SMaciej Żenczykowski 
3793*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < reg->field_count; i++) {
3794*1b481fc3SMaciej Żenczykowski 		field = &reg->fields[i];
3795*1b481fc3SMaciej Żenczykowski 		if (revision >= field->min_revision &&
3796*1b481fc3SMaciej Żenczykowski 		    revision <= field->max_revision) {
3797*1b481fc3SMaciej Żenczykowski 			if (indent == 0)
3798*1b481fc3SMaciej Żenczykowski 				indent = printf("%s: ", reg->name);
3799*1b481fc3SMaciej Żenczykowski 			else
3800*1b481fc3SMaciej Żenczykowski 				printf("%*s", indent, "");
3801*1b481fc3SMaciej Żenczykowski 			printf("%s = ", field->name);
3802*1b481fc3SMaciej Żenczykowski 			print_field_value(field, buf);
3803*1b481fc3SMaciej Żenczykowski 			fputc('\n', stdout);
3804*1b481fc3SMaciej Żenczykowski 		}
3805*1b481fc3SMaciej Żenczykowski 	}
3806*1b481fc3SMaciej Żenczykowski 
3807*1b481fc3SMaciej Żenczykowski 	return (const u8 *)buf + 16;
3808*1b481fc3SMaciej Żenczykowski }
3809*1b481fc3SMaciej Żenczykowski 
3810*1b481fc3SMaciej Żenczykowski static const void *
print_simple_table(const struct efx_nic_reg_table * table,const void * buf)3811*1b481fc3SMaciej Żenczykowski print_simple_table(const struct efx_nic_reg_table *table, const void *buf)
3812*1b481fc3SMaciej Żenczykowski {
3813*1b481fc3SMaciej Żenczykowski 	const struct efx_nic_reg_field *field = &table->fields[0];
3814*1b481fc3SMaciej Żenczykowski 	size_t value_width = (field->width + 3) >> 2;
3815*1b481fc3SMaciej Żenczykowski 	size_t column_count = 72 / (value_width + 1);
3816*1b481fc3SMaciej Żenczykowski 	size_t size = table->step > 16 ? 16 : table->step;
3817*1b481fc3SMaciej Żenczykowski 	size_t i;
3818*1b481fc3SMaciej Żenczykowski 
3819*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < table->rows; i++) {
3820*1b481fc3SMaciej Żenczykowski 		if (i % column_count == 0) {
3821*1b481fc3SMaciej Żenczykowski 			if (i != 0)
3822*1b481fc3SMaciej Żenczykowski 				fputc('\n', stdout);
3823*1b481fc3SMaciej Żenczykowski 			printf("%4zu ", i);
3824*1b481fc3SMaciej Żenczykowski 		}
3825*1b481fc3SMaciej Żenczykowski 		fputc(' ', stdout);
3826*1b481fc3SMaciej Żenczykowski 		print_field_value(field, buf);
3827*1b481fc3SMaciej Żenczykowski 		buf = (const u8 *)buf + size;
3828*1b481fc3SMaciej Żenczykowski 	}
3829*1b481fc3SMaciej Żenczykowski 	fputc('\n', stdout);
3830*1b481fc3SMaciej Żenczykowski 
3831*1b481fc3SMaciej Żenczykowski 	return buf;
3832*1b481fc3SMaciej Żenczykowski }
3833*1b481fc3SMaciej Żenczykowski 
buf_is_zero(const u8 * buf,size_t size)3834*1b481fc3SMaciej Żenczykowski static int buf_is_zero(const u8 *buf, size_t size)
3835*1b481fc3SMaciej Żenczykowski {
3836*1b481fc3SMaciej Żenczykowski 	size_t i;
3837*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < size; i++)
3838*1b481fc3SMaciej Żenczykowski 		if (buf[i])
3839*1b481fc3SMaciej Żenczykowski 			return 0;
3840*1b481fc3SMaciej Żenczykowski 	return 1;
3841*1b481fc3SMaciej Żenczykowski }
3842*1b481fc3SMaciej Żenczykowski 
3843*1b481fc3SMaciej Żenczykowski static const void *
print_complex_table(unsigned revision,const struct efx_nic_reg_table * table,const void * buf)3844*1b481fc3SMaciej Żenczykowski print_complex_table(unsigned revision, const struct efx_nic_reg_table *table,
3845*1b481fc3SMaciej Żenczykowski 		    const void *buf)
3846*1b481fc3SMaciej Żenczykowski {
3847*1b481fc3SMaciej Żenczykowski 	const struct efx_nic_reg_field *field;
3848*1b481fc3SMaciej Żenczykowski 	size_t size = table->step > 16 ? 16 : table->step;
3849*1b481fc3SMaciej Żenczykowski 	size_t i, j;
3850*1b481fc3SMaciej Żenczykowski 
3851*1b481fc3SMaciej Żenczykowski 	/* Column headings */
3852*1b481fc3SMaciej Żenczykowski 	fputs("Row ", stdout);
3853*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < table->field_count; i++) {
3854*1b481fc3SMaciej Żenczykowski 		field = &table->fields[i];
3855*1b481fc3SMaciej Żenczykowski 		if (revision >= field->min_revision &&
3856*1b481fc3SMaciej Żenczykowski 		    revision <= field->max_revision)
3857*1b481fc3SMaciej Żenczykowski 			printf(" %-*s", (int)column_width(field),
3858*1b481fc3SMaciej Żenczykowski 			       field->name);
3859*1b481fc3SMaciej Żenczykowski 	}
3860*1b481fc3SMaciej Żenczykowski 	fputc('\n', stdout);
3861*1b481fc3SMaciej Żenczykowski 	fputs("----", stdout);
3862*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < table->field_count; i++) {
3863*1b481fc3SMaciej Żenczykowski 		field = &table->fields[i];
3864*1b481fc3SMaciej Żenczykowski 		if (revision >= field->min_revision &&
3865*1b481fc3SMaciej Żenczykowski 		    revision <= field->max_revision) {
3866*1b481fc3SMaciej Żenczykowski 			fputc(' ', stdout);
3867*1b481fc3SMaciej Żenczykowski 			for (j = column_width(field); j > 0; j--)
3868*1b481fc3SMaciej Żenczykowski 				fputc('-', stdout);
3869*1b481fc3SMaciej Żenczykowski 		}
3870*1b481fc3SMaciej Żenczykowski 	}
3871*1b481fc3SMaciej Żenczykowski 	fputc('\n', stdout);
3872*1b481fc3SMaciej Żenczykowski 
3873*1b481fc3SMaciej Żenczykowski 	for (j = 0; j < table->rows; j++) {
3874*1b481fc3SMaciej Żenczykowski 		if (!buf_is_zero(buf, size)) {
3875*1b481fc3SMaciej Żenczykowski 			printf("%4zu", j);
3876*1b481fc3SMaciej Żenczykowski 			for (i = 0; i < table->field_count; i++) {
3877*1b481fc3SMaciej Żenczykowski 				field = &table->fields[i];
3878*1b481fc3SMaciej Żenczykowski 				if (!(revision >= field->min_revision &&
3879*1b481fc3SMaciej Żenczykowski 				      revision <= field->max_revision))
3880*1b481fc3SMaciej Żenczykowski 					continue;
3881*1b481fc3SMaciej Żenczykowski 				printf(" %*s", (int)column_padding(field), "");
3882*1b481fc3SMaciej Żenczykowski 				print_field_value(field, buf);
3883*1b481fc3SMaciej Żenczykowski 			}
3884*1b481fc3SMaciej Żenczykowski 			fputc('\n', stdout);
3885*1b481fc3SMaciej Żenczykowski 		}
3886*1b481fc3SMaciej Żenczykowski 		buf = (const u8 *)buf + size;
3887*1b481fc3SMaciej Żenczykowski 	}
3888*1b481fc3SMaciej Żenczykowski 
3889*1b481fc3SMaciej Żenczykowski 	return buf;
3890*1b481fc3SMaciej Żenczykowski }
3891*1b481fc3SMaciej Żenczykowski 
3892*1b481fc3SMaciej Żenczykowski int
sfc_dump_regs(struct ethtool_drvinfo * info __maybe_unused,struct ethtool_regs * regs)3893*1b481fc3SMaciej Żenczykowski sfc_dump_regs(struct ethtool_drvinfo *info __maybe_unused,
3894*1b481fc3SMaciej Żenczykowski 	      struct ethtool_regs *regs)
3895*1b481fc3SMaciej Żenczykowski {
3896*1b481fc3SMaciej Żenczykowski 	const struct efx_nic_reg *reg;
3897*1b481fc3SMaciej Żenczykowski 	const struct efx_nic_reg_table *table;
3898*1b481fc3SMaciej Żenczykowski 	unsigned revision = regs->version;
3899*1b481fc3SMaciej Żenczykowski 	const void *buf = regs->data;
3900*1b481fc3SMaciej Żenczykowski 	const void *end = regs->data + regs->len;
3901*1b481fc3SMaciej Żenczykowski 
3902*1b481fc3SMaciej Żenczykowski 	if (revision > REGISTER_REVISION_ED)
3903*1b481fc3SMaciej Żenczykowski 		return -1;
3904*1b481fc3SMaciej Żenczykowski 
3905*1b481fc3SMaciej Żenczykowski 	for (reg = efx_nic_regs;
3906*1b481fc3SMaciej Żenczykowski 	     reg < efx_nic_regs + ARRAY_SIZE(efx_nic_regs) && buf < end;
3907*1b481fc3SMaciej Żenczykowski 	     reg++) {
3908*1b481fc3SMaciej Żenczykowski 		if (revision >= reg->min_revision &&
3909*1b481fc3SMaciej Żenczykowski 		    revision <= reg->max_revision)
3910*1b481fc3SMaciej Żenczykowski 			buf = print_single_register(revision, reg, buf);
3911*1b481fc3SMaciej Żenczykowski 	}
3912*1b481fc3SMaciej Żenczykowski 
3913*1b481fc3SMaciej Żenczykowski 	for (table = efx_nic_reg_tables;
3914*1b481fc3SMaciej Żenczykowski 	     table < efx_nic_reg_tables + ARRAY_SIZE(efx_nic_reg_tables) &&
3915*1b481fc3SMaciej Żenczykowski 		     buf < end;
3916*1b481fc3SMaciej Żenczykowski 	     table++) {
3917*1b481fc3SMaciej Żenczykowski 		if (revision >= table->min_revision &&
3918*1b481fc3SMaciej Żenczykowski 		    revision <= table->max_revision) {
3919*1b481fc3SMaciej Żenczykowski 			printf("\n%s:\n", table->name);
3920*1b481fc3SMaciej Żenczykowski 			if (table->field_count == 1)
3921*1b481fc3SMaciej Żenczykowski 				buf = print_simple_table(table, buf);
3922*1b481fc3SMaciej Żenczykowski 			else
3923*1b481fc3SMaciej Żenczykowski 				buf = print_complex_table(revision, table, buf);
3924*1b481fc3SMaciej Żenczykowski 		}
3925*1b481fc3SMaciej Żenczykowski 	}
3926*1b481fc3SMaciej Żenczykowski 
3927*1b481fc3SMaciej Żenczykowski 	return 0;
3928*1b481fc3SMaciej Żenczykowski }
3929