xref: /aosp_15_r20/external/ethtool/ixgbe.c (revision 1b481fc3bb1b45d4cf28d1ec12969dc1055f555d)
1*1b481fc3SMaciej Żenczykowski /* Copyright (c) 2007 Intel Corporation */
2*1b481fc3SMaciej Żenczykowski #include <stdio.h>
3*1b481fc3SMaciej Żenczykowski #include "internal.h"
4*1b481fc3SMaciej Żenczykowski 
5*1b481fc3SMaciej Żenczykowski /* Register Bit Masks */
6*1b481fc3SMaciej Żenczykowski #define IXGBE_FCTRL_SBP            0x00000002
7*1b481fc3SMaciej Żenczykowski #define IXGBE_FCTRL_MPE            0x00000100
8*1b481fc3SMaciej Żenczykowski #define IXGBE_FCTRL_UPE            0x00000200
9*1b481fc3SMaciej Żenczykowski #define IXGBE_FCTRL_BAM            0x00000400
10*1b481fc3SMaciej Żenczykowski #define IXGBE_FCTRL_PMCF           0x00001000
11*1b481fc3SMaciej Żenczykowski #define IXGBE_FCTRL_DPF            0x00002000
12*1b481fc3SMaciej Żenczykowski #define IXGBE_FCTRL_RPFCE          0x00004000
13*1b481fc3SMaciej Żenczykowski #define IXGBE_FCTRL_RFCE           0x00008000
14*1b481fc3SMaciej Żenczykowski #define IXGBE_VLNCTRL_VET          0x0000FFFF
15*1b481fc3SMaciej Żenczykowski #define IXGBE_VLNCTRL_CFI          0x10000000
16*1b481fc3SMaciej Żenczykowski #define IXGBE_VLNCTRL_CFIEN        0x20000000
17*1b481fc3SMaciej Żenczykowski #define IXGBE_VLNCTRL_VFE          0x40000000
18*1b481fc3SMaciej Żenczykowski #define IXGBE_VLNCTRL_VME          0x80000000
19*1b481fc3SMaciej Żenczykowski #define IXGBE_LINKS_UP             0x40000000
20*1b481fc3SMaciej Żenczykowski #define IXGBE_LINKS_SPEED          0x20000000
21*1b481fc3SMaciej Żenczykowski #define IXGBE_SRRCTL_BSIZEPKT_MASK 0x0000007F
22*1b481fc3SMaciej Żenczykowski #define IXGBE_HLREG0_TXCRCEN       0x00000001
23*1b481fc3SMaciej Żenczykowski #define IXGBE_HLREG0_RXCRCSTRP     0x00000002
24*1b481fc3SMaciej Żenczykowski #define IXGBE_HLREG0_JUMBOEN       0x00000004
25*1b481fc3SMaciej Żenczykowski #define IXGBE_HLREG0_TXPADEN       0x00000400
26*1b481fc3SMaciej Żenczykowski #define IXGBE_HLREG0_LPBK          0x00008000
27*1b481fc3SMaciej Żenczykowski #define IXGBE_RMCS_TFCE_802_3X     0x00000008
28*1b481fc3SMaciej Żenczykowski #define IXGBE_RMCS_TFCE_PRIORITY   0x00000010
29*1b481fc3SMaciej Żenczykowski #define IXGBE_FCCFG_TFCE_802_3X    0x00000008
30*1b481fc3SMaciej Żenczykowski #define IXGBE_FCCFG_TFCE_PRIORITY  0x00000010
31*1b481fc3SMaciej Żenczykowski #define IXGBE_MFLCN_PMCF           0x00000001 /* Pass MAC Control Frames */
32*1b481fc3SMaciej Żenczykowski #define IXGBE_MFLCN_DPF            0x00000002 /* Discard Pause Frame */
33*1b481fc3SMaciej Żenczykowski #define IXGBE_MFLCN_RPFCE          0x00000004 /* Receive Priority FC Enable */
34*1b481fc3SMaciej Żenczykowski #define IXGBE_MFLCN_RFCE           0x00000008 /* Receive FC Enable */
35*1b481fc3SMaciej Żenczykowski 
36*1b481fc3SMaciej Żenczykowski /* Device IDs */
37*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_82598               0x10B6
38*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_82598_BX            0x1508
39*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_82598AF_DUAL_PORT   0x10C6
40*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_82598AF_SINGLE_PORT 0x10C7
41*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_82598EB_SFP_LOM     0x10DB
42*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_82598AT             0x10C8
43*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_82598AT2            0x150B
44*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_82598EB_CX4         0x10DD
45*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_82598_CX4_DUAL_PORT 0x10EC
46*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_82598_DA_DUAL_PORT  0x10F1
47*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_82598_SR_DUAL_PORT_EM      0x10E1
48*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_82598EB_XF_LR       0x10F4
49*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_82599_KX4           0x10F7
50*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_82599_KX4_MEZZ      0x1514
51*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_82599_KR            0x1517
52*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_82599_T3_LOM        0x151C
53*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_82599_CX4           0x10F9
54*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_82599_SFP           0x10FB
55*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_82599_BACKPLANE_FCOE       0x152a
56*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_82599_SFP_FCOE      0x1529
57*1b481fc3SMaciej Żenczykowski #define IXGBE_SUBDEV_ID_82599_SFP        0x11A9
58*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_82599_SFP_EM        0x1507
59*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_82599_SFP_SF2       0x154D
60*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_82599EN_SFP         0x1557
61*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_82599_XAUI_LOM      0x10FC
62*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_82599_COMBO_BACKPLANE 0x10F8
63*1b481fc3SMaciej Żenczykowski #define IXGBE_SUBDEV_ID_82599_KX4_KR_MEZZ  0x000C
64*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_82599_LS            0x154F
65*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_X540T               0x1528
66*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_82599_SFP_SF_QP     0x154A
67*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_82599_QSFP_SF_QP    0x1558
68*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_X540T1              0x1560
69*1b481fc3SMaciej Żenczykowski 
70*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_X550T		0x1563
71*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_X550T1		0x15D1
72*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_X550EM_X_KX4	0x15AA
73*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_X550EM_X_KR	0x15AB
74*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_X550EM_X_SFP	0x15AC
75*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_X550EM_X_10G_T	0x15AD
76*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_X550EM_X_1G_T	0x15AE
77*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_X550EM_A_KR	0x15C2
78*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_X550EM_A_KR_L	0x15C3
79*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_X550EM_A_SFP_N	0x15C4
80*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_X550EM_A_SGMII	0x15C6
81*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_X550EM_A_SGMII_L	0x15C7
82*1b481fc3SMaciej Żenczykowski #define IXGBE_DEV_ID_X550EM_A_SFP	0x15CE
83*1b481fc3SMaciej Żenczykowski 
84*1b481fc3SMaciej Żenczykowski /*
85*1b481fc3SMaciej Żenczykowski  * Enumerated types specific to the ixgbe hardware
86*1b481fc3SMaciej Żenczykowski  * Media Access Controlers
87*1b481fc3SMaciej Żenczykowski  */
88*1b481fc3SMaciej Żenczykowski enum ixgbe_mac_type {
89*1b481fc3SMaciej Żenczykowski 	ixgbe_mac_unknown = 0,
90*1b481fc3SMaciej Żenczykowski 	ixgbe_mac_82598EB,
91*1b481fc3SMaciej Żenczykowski 	ixgbe_mac_82599EB,
92*1b481fc3SMaciej Żenczykowski 	ixgbe_mac_X540,
93*1b481fc3SMaciej Żenczykowski 	ixgbe_mac_x550,
94*1b481fc3SMaciej Żenczykowski 	ixgbe_mac_x550em_x,
95*1b481fc3SMaciej Żenczykowski 	ixgbe_mac_x550em_a,
96*1b481fc3SMaciej Żenczykowski 	ixgbe_num_macs
97*1b481fc3SMaciej Żenczykowski };
98*1b481fc3SMaciej Żenczykowski 
99*1b481fc3SMaciej Żenczykowski static enum ixgbe_mac_type
ixgbe_get_mac_type(u16 device_id)100*1b481fc3SMaciej Żenczykowski ixgbe_get_mac_type(u16 device_id)
101*1b481fc3SMaciej Żenczykowski {
102*1b481fc3SMaciej Żenczykowski 	enum ixgbe_mac_type mac_type = ixgbe_mac_unknown;
103*1b481fc3SMaciej Żenczykowski 
104*1b481fc3SMaciej Żenczykowski 	switch (device_id) {
105*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_82598:
106*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_82598_BX:
107*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_82598AF_DUAL_PORT:
108*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_82598AF_SINGLE_PORT:
109*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_82598EB_SFP_LOM:
110*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_82598AT:
111*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_82598AT2:
112*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_82598EB_CX4:
113*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_82598_CX4_DUAL_PORT:
114*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_82598_DA_DUAL_PORT:
115*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_82598_SR_DUAL_PORT_EM:
116*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_82598EB_XF_LR:
117*1b481fc3SMaciej Żenczykowski 		mac_type = ixgbe_mac_82598EB;
118*1b481fc3SMaciej Żenczykowski 		break;
119*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_82599_KX4:
120*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_82599_KX4_MEZZ:
121*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_82599_KR:
122*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_82599_T3_LOM:
123*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_82599_CX4:
124*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_82599_SFP:
125*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_82599_BACKPLANE_FCOE:
126*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_82599_SFP_FCOE:
127*1b481fc3SMaciej Żenczykowski 	case IXGBE_SUBDEV_ID_82599_SFP:
128*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_82599_SFP_EM:
129*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_82599_SFP_SF2:
130*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_82599EN_SFP:
131*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_82599_XAUI_LOM:
132*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_82599_COMBO_BACKPLANE:
133*1b481fc3SMaciej Żenczykowski 	case IXGBE_SUBDEV_ID_82599_KX4_KR_MEZZ:
134*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_82599_LS:
135*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_82599_SFP_SF_QP:
136*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_82599_QSFP_SF_QP:
137*1b481fc3SMaciej Żenczykowski 		mac_type = ixgbe_mac_82599EB;
138*1b481fc3SMaciej Żenczykowski 		break;
139*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_X540T:
140*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_X540T1:
141*1b481fc3SMaciej Żenczykowski 		mac_type = ixgbe_mac_X540;
142*1b481fc3SMaciej Żenczykowski 		break;
143*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_X550T:
144*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_X550T1:
145*1b481fc3SMaciej Żenczykowski 		mac_type = ixgbe_mac_x550;
146*1b481fc3SMaciej Żenczykowski 		break;
147*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_X550EM_X_KX4:
148*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_X550EM_X_KR:
149*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_X550EM_X_SFP:
150*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_X550EM_X_10G_T:
151*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_X550EM_X_1G_T:
152*1b481fc3SMaciej Żenczykowski 		mac_type = ixgbe_mac_x550em_x;
153*1b481fc3SMaciej Żenczykowski 		break;
154*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_X550EM_A_KR:
155*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_X550EM_A_KR_L:
156*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_X550EM_A_SFP_N:
157*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_X550EM_A_SGMII:
158*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_X550EM_A_SGMII_L:
159*1b481fc3SMaciej Żenczykowski 	case IXGBE_DEV_ID_X550EM_A_SFP:
160*1b481fc3SMaciej Żenczykowski 		mac_type = ixgbe_mac_x550em_a;
161*1b481fc3SMaciej Żenczykowski 		break;
162*1b481fc3SMaciej Żenczykowski 	default:
163*1b481fc3SMaciej Żenczykowski 		mac_type = ixgbe_mac_82598EB;
164*1b481fc3SMaciej Żenczykowski 		break;
165*1b481fc3SMaciej Żenczykowski 	}
166*1b481fc3SMaciej Żenczykowski 
167*1b481fc3SMaciej Żenczykowski 	return mac_type;
168*1b481fc3SMaciej Żenczykowski }
169*1b481fc3SMaciej Żenczykowski 
170*1b481fc3SMaciej Żenczykowski int
ixgbe_dump_regs(struct ethtool_drvinfo * info __maybe_unused,struct ethtool_regs * regs)171*1b481fc3SMaciej Żenczykowski ixgbe_dump_regs(struct ethtool_drvinfo *info __maybe_unused,
172*1b481fc3SMaciej Żenczykowski 		struct ethtool_regs *regs)
173*1b481fc3SMaciej Żenczykowski {
174*1b481fc3SMaciej Żenczykowski 	u32 *regs_buff = (u32 *)regs->data;
175*1b481fc3SMaciej Żenczykowski 	u32 regs_buff_len = regs->len / sizeof(*regs_buff);
176*1b481fc3SMaciej Żenczykowski 	u32 reg;
177*1b481fc3SMaciej Żenczykowski 	u32 offset;
178*1b481fc3SMaciej Żenczykowski 	u16 hw_device_id = (u16) regs->version;
179*1b481fc3SMaciej Żenczykowski 	u8 version = (u8)(regs->version >> 24);
180*1b481fc3SMaciej Żenczykowski 	u8 i;
181*1b481fc3SMaciej Żenczykowski 	enum ixgbe_mac_type mac_type;
182*1b481fc3SMaciej Żenczykowski 
183*1b481fc3SMaciej Żenczykowski 	if (version == 0)
184*1b481fc3SMaciej Żenczykowski 		return -1;
185*1b481fc3SMaciej Żenczykowski 
186*1b481fc3SMaciej Żenczykowski 	/* The current driver reports the MAC type, but older versions
187*1b481fc3SMaciej Żenczykowski 	 * only report the device ID so we have to infer the MAC type.
188*1b481fc3SMaciej Żenczykowski 	 */
189*1b481fc3SMaciej Żenczykowski 	mac_type = version > 1 ? version : ixgbe_get_mac_type(hw_device_id);
190*1b481fc3SMaciej Żenczykowski 
191*1b481fc3SMaciej Żenczykowski 	reg = regs_buff[1065];
192*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
193*1b481fc3SMaciej Żenczykowski 	"0x042A4: LINKS (Link Status register)                 0x%08X\n"
194*1b481fc3SMaciej Żenczykowski 	"       Link Status:                                   %s\n"
195*1b481fc3SMaciej Żenczykowski 	"       Link Speed:                                    %s\n",
196*1b481fc3SMaciej Żenczykowski 	reg,
197*1b481fc3SMaciej Żenczykowski 	reg & IXGBE_LINKS_UP      ? "up"       : "down",
198*1b481fc3SMaciej Żenczykowski 	reg & IXGBE_LINKS_SPEED   ? "10G"      : "1G");
199*1b481fc3SMaciej Żenczykowski 
200*1b481fc3SMaciej Żenczykowski 	reg = regs_buff[515];
201*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
202*1b481fc3SMaciej Żenczykowski 	"0x05080: FCTRL (Filter Control register)              0x%08X\n"
203*1b481fc3SMaciej Żenczykowski 	"       Broadcast Accept:                              %s\n"
204*1b481fc3SMaciej Żenczykowski 	"       Unicast Promiscuous:                           %s\n"
205*1b481fc3SMaciej Żenczykowski 	"       Multicast Promiscuous:                         %s\n"
206*1b481fc3SMaciej Żenczykowski 	"       Store Bad Packets:                             %s\n",
207*1b481fc3SMaciej Żenczykowski 	reg,
208*1b481fc3SMaciej Żenczykowski 	reg & IXGBE_FCTRL_BAM     ? "enabled"  : "disabled",
209*1b481fc3SMaciej Żenczykowski 	reg & IXGBE_FCTRL_UPE     ? "enabled"  : "disabled",
210*1b481fc3SMaciej Żenczykowski 	reg & IXGBE_FCTRL_MPE     ? "enabled"  : "disabled",
211*1b481fc3SMaciej Żenczykowski 	reg & IXGBE_FCTRL_SBP     ? "enabled"  : "disabled");
212*1b481fc3SMaciej Żenczykowski 
213*1b481fc3SMaciej Żenczykowski 	/* Some FCTRL bits are valid only on 82598 */
214*1b481fc3SMaciej Żenczykowski 	if (mac_type == ixgbe_mac_82598EB) {
215*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
216*1b481fc3SMaciej Żenczykowski 		"       Receive Flow Control Packets:                  %s\n"
217*1b481fc3SMaciej Żenczykowski 		"       Receive Priority Flow Control Packets:         %s\n"
218*1b481fc3SMaciej Żenczykowski 		"       Discard Pause Frames:                          %s\n"
219*1b481fc3SMaciej Żenczykowski 		"       Pass MAC Control Frames:                       %s\n",
220*1b481fc3SMaciej Żenczykowski 		reg & IXGBE_FCTRL_RFCE    ? "enabled"  : "disabled",
221*1b481fc3SMaciej Żenczykowski 		reg & IXGBE_FCTRL_RPFCE   ? "enabled"  : "disabled",
222*1b481fc3SMaciej Żenczykowski 		reg & IXGBE_FCTRL_DPF     ? "enabled"  : "disabled",
223*1b481fc3SMaciej Żenczykowski 		reg & IXGBE_FCTRL_PMCF    ? "enabled"  : "disabled");
224*1b481fc3SMaciej Żenczykowski 	 }
225*1b481fc3SMaciej Żenczykowski 
226*1b481fc3SMaciej Żenczykowski 	reg = regs_buff[1128];
227*1b481fc3SMaciej Żenczykowski 	if (mac_type >= ixgbe_mac_82599EB) {
228*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
229*1b481fc3SMaciej Żenczykowski 		"0x04294: MFLCN (TabMAC Flow Control register)         0x%08X\n"
230*1b481fc3SMaciej Żenczykowski 		"       Receive Flow Control Packets:                  %s\n"
231*1b481fc3SMaciej Żenczykowski 		"       Discard Pause Frames:                          %s\n"
232*1b481fc3SMaciej Żenczykowski 		"       Pass MAC Control Frames:                       %s\n"
233*1b481fc3SMaciej Żenczykowski 		"       Receive Priority Flow Control Packets:         %s\n",
234*1b481fc3SMaciej Żenczykowski 		reg,
235*1b481fc3SMaciej Żenczykowski 		reg & IXGBE_MFLCN_RFCE    ? "enabled"  : "disabled",
236*1b481fc3SMaciej Żenczykowski 		reg & IXGBE_MFLCN_DPF     ? "enabled"  : "disabled",
237*1b481fc3SMaciej Żenczykowski 		reg & IXGBE_MFLCN_PMCF    ? "enabled"  : "disabled",
238*1b481fc3SMaciej Żenczykowski 		reg & IXGBE_MFLCN_RPFCE   ? "enabled"  : "disabled");
239*1b481fc3SMaciej Żenczykowski 	}
240*1b481fc3SMaciej Żenczykowski 
241*1b481fc3SMaciej Żenczykowski 	reg = regs_buff[516];
242*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
243*1b481fc3SMaciej Żenczykowski 	"0x05088: VLNCTRL (VLAN Control register)              0x%08X\n"
244*1b481fc3SMaciej Żenczykowski 	"       VLAN Mode:                                     %s\n"
245*1b481fc3SMaciej Żenczykowski 	"       VLAN Filter:                                   %s\n",
246*1b481fc3SMaciej Żenczykowski 	reg,
247*1b481fc3SMaciej Żenczykowski 	reg & IXGBE_VLNCTRL_VME   ? "enabled"  : "disabled",
248*1b481fc3SMaciej Żenczykowski 	reg & IXGBE_VLNCTRL_VFE   ? "enabled"  : "disabled");
249*1b481fc3SMaciej Żenczykowski 
250*1b481fc3SMaciej Żenczykowski 	reg = regs_buff[437];
251*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
252*1b481fc3SMaciej Żenczykowski 	"0x02100: SRRCTL0 (Split and Replic Rx Control 0)      0x%08X\n"
253*1b481fc3SMaciej Żenczykowski 	"       Receive Buffer Size:                           %uKB\n",
254*1b481fc3SMaciej Żenczykowski 	reg,
255*1b481fc3SMaciej Żenczykowski 	(reg & IXGBE_SRRCTL_BSIZEPKT_MASK) <= 0x10 ? (reg & IXGBE_SRRCTL_BSIZEPKT_MASK) : 0x10);
256*1b481fc3SMaciej Żenczykowski 
257*1b481fc3SMaciej Żenczykowski 	reg = regs_buff[829];
258*1b481fc3SMaciej Żenczykowski 	if (mac_type == ixgbe_mac_82598EB) {
259*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
260*1b481fc3SMaciej Żenczykowski 		"0x03D00: RMCS (Receive Music Control register)        0x%08X\n"
261*1b481fc3SMaciej Żenczykowski 		"       Transmit Flow Control:                         %s\n"
262*1b481fc3SMaciej Żenczykowski 		"       Priority Flow Control:                         %s\n",
263*1b481fc3SMaciej Żenczykowski 		reg,
264*1b481fc3SMaciej Żenczykowski 		reg & IXGBE_RMCS_TFCE_802_3X     ? "enabled"  : "disabled",
265*1b481fc3SMaciej Żenczykowski 		reg & IXGBE_RMCS_TFCE_PRIORITY   ? "enabled"  : "disabled");
266*1b481fc3SMaciej Żenczykowski 	} else if (mac_type >= ixgbe_mac_82599EB) {
267*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
268*1b481fc3SMaciej Żenczykowski 		"0x03D00: FCCFG (Flow Control Configuration)           0x%08X\n"
269*1b481fc3SMaciej Żenczykowski 		"       Transmit Flow Control:                         %s\n"
270*1b481fc3SMaciej Żenczykowski 		"       Priority Flow Control:                         %s\n",
271*1b481fc3SMaciej Żenczykowski 		reg,
272*1b481fc3SMaciej Żenczykowski 		reg & IXGBE_FCCFG_TFCE_802_3X     ? "enabled"  : "disabled",
273*1b481fc3SMaciej Żenczykowski 		reg & IXGBE_FCCFG_TFCE_PRIORITY   ? "enabled"  : "disabled");
274*1b481fc3SMaciej Żenczykowski 	}
275*1b481fc3SMaciej Żenczykowski 
276*1b481fc3SMaciej Żenczykowski 	reg = regs_buff[1047];
277*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
278*1b481fc3SMaciej Żenczykowski 	"0x04240: HLREG0 (Highlander Control 0 register)       0x%08X\n"
279*1b481fc3SMaciej Żenczykowski 	"       Transmit CRC:                                  %s\n"
280*1b481fc3SMaciej Żenczykowski 	"       Receive CRC Strip:                             %s\n"
281*1b481fc3SMaciej Żenczykowski 	"       Jumbo Frames:                                  %s\n"
282*1b481fc3SMaciej Żenczykowski 	"       Pad Short Frames:                              %s\n"
283*1b481fc3SMaciej Żenczykowski 	"       Loopback:                                      %s\n",
284*1b481fc3SMaciej Żenczykowski 	reg,
285*1b481fc3SMaciej Żenczykowski 	reg & IXGBE_HLREG0_TXCRCEN   ? "enabled"  : "disabled",
286*1b481fc3SMaciej Żenczykowski 	reg & IXGBE_HLREG0_RXCRCSTRP ? "enabled"  : "disabled",
287*1b481fc3SMaciej Żenczykowski 	reg & IXGBE_HLREG0_JUMBOEN   ? "enabled"  : "disabled",
288*1b481fc3SMaciej Żenczykowski 	reg & IXGBE_HLREG0_TXPADEN   ? "enabled"  : "disabled",
289*1b481fc3SMaciej Żenczykowski 	reg & IXGBE_HLREG0_LPBK      ? "enabled"  : "disabled");
290*1b481fc3SMaciej Żenczykowski 
291*1b481fc3SMaciej Żenczykowski 	/* General Registers */
292*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
293*1b481fc3SMaciej Żenczykowski 		"0x00000: CTRL        (Device Control)                 0x%08X\n",
294*1b481fc3SMaciej Żenczykowski 		regs_buff[0]);
295*1b481fc3SMaciej Żenczykowski 
296*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
297*1b481fc3SMaciej Żenczykowski 		"0x00008: STATUS      (Device Status)                  0x%08X\n",
298*1b481fc3SMaciej Żenczykowski 		regs_buff[1]);
299*1b481fc3SMaciej Żenczykowski 
300*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
301*1b481fc3SMaciej Żenczykowski 		"0x00018: CTRL_EXT    (Extended Device Control)        0x%08X\n",
302*1b481fc3SMaciej Żenczykowski 		regs_buff[2]);
303*1b481fc3SMaciej Żenczykowski 
304*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
305*1b481fc3SMaciej Żenczykowski 		"0x00020: ESDP        (Extended SDP Control)           0x%08X\n",
306*1b481fc3SMaciej Żenczykowski 		regs_buff[3]);
307*1b481fc3SMaciej Żenczykowski 
308*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
309*1b481fc3SMaciej Żenczykowski 		"0x00028: EODSDP      (Extended OD SDP Control)        0x%08X\n",
310*1b481fc3SMaciej Żenczykowski 		regs_buff[4]);
311*1b481fc3SMaciej Żenczykowski 
312*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
313*1b481fc3SMaciej Żenczykowski 		"0x00200: LEDCTL      (LED Control)                    0x%08X\n",
314*1b481fc3SMaciej Żenczykowski 		regs_buff[5]);
315*1b481fc3SMaciej Żenczykowski 
316*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
317*1b481fc3SMaciej Żenczykowski 		"0x00048: FRTIMER     (Free Running Timer)             0x%08X\n",
318*1b481fc3SMaciej Żenczykowski 		regs_buff[6]);
319*1b481fc3SMaciej Żenczykowski 
320*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
321*1b481fc3SMaciej Żenczykowski 		"0x0004C: TCPTIMER    (TCP Timer)                      0x%08X\n",
322*1b481fc3SMaciej Żenczykowski 		regs_buff[7]);
323*1b481fc3SMaciej Żenczykowski 
324*1b481fc3SMaciej Żenczykowski 	/* NVM Register */
325*1b481fc3SMaciej Żenczykowski 	offset = mac_type == ixgbe_mac_x550em_a ? 0x15FF8 : 0x10010;
326*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
327*1b481fc3SMaciej Żenczykowski 		"0x%05X: EEC         (EEPROM/Flash Control)           0x%08X\n",
328*1b481fc3SMaciej Żenczykowski 		offset, regs_buff[8]);
329*1b481fc3SMaciej Żenczykowski 
330*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
331*1b481fc3SMaciej Żenczykowski 		"0x10014: EERD        (EEPROM Read)                    0x%08X\n",
332*1b481fc3SMaciej Żenczykowski 		regs_buff[9]);
333*1b481fc3SMaciej Żenczykowski 
334*1b481fc3SMaciej Żenczykowski 	offset = mac_type == ixgbe_mac_x550em_a ? 0x15F6C : 0x1001C;
335*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
336*1b481fc3SMaciej Żenczykowski 		"0x%05X: FLA         (Flash Access)                   0x%08X\n",
337*1b481fc3SMaciej Żenczykowski 		offset, regs_buff[10]);
338*1b481fc3SMaciej Żenczykowski 
339*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
340*1b481fc3SMaciej Żenczykowski 		"0x10110: EEMNGCTL    (Manageability EEPROM Control)   0x%08X\n",
341*1b481fc3SMaciej Żenczykowski 		regs_buff[11]);
342*1b481fc3SMaciej Żenczykowski 
343*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
344*1b481fc3SMaciej Żenczykowski 		"0x10114: EEMNGDATA   (Manageability EEPROM R/W Data)  0x%08X\n",
345*1b481fc3SMaciej Żenczykowski 		regs_buff[12]);
346*1b481fc3SMaciej Żenczykowski 
347*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
348*1b481fc3SMaciej Żenczykowski 		"0x10118: FLMNGCTL    (Manageability Flash Control)    0x%08X\n",
349*1b481fc3SMaciej Żenczykowski 		regs_buff[13]);
350*1b481fc3SMaciej Żenczykowski 
351*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
352*1b481fc3SMaciej Żenczykowski 		"0x1011C: FLMNGDATA   (Manageability Flash Read Data)  0x%08X\n",
353*1b481fc3SMaciej Żenczykowski 		regs_buff[14]);
354*1b481fc3SMaciej Żenczykowski 
355*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
356*1b481fc3SMaciej Żenczykowski 		"0x10120: FLMNGCNT    (Manageability Flash Read Count) 0x%08X\n",
357*1b481fc3SMaciej Żenczykowski 		regs_buff[15]);
358*1b481fc3SMaciej Żenczykowski 
359*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
360*1b481fc3SMaciej Żenczykowski 		"0x1013C: FLOP        (Flash Opcode)                   0x%08X\n",
361*1b481fc3SMaciej Żenczykowski 		regs_buff[16]);
362*1b481fc3SMaciej Żenczykowski 
363*1b481fc3SMaciej Żenczykowski 	offset = mac_type == ixgbe_mac_x550em_a ? 0x15F64 : 0x10200;
364*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
365*1b481fc3SMaciej Żenczykowski 		"0x%05X: GRC         (General Receive Control)        0x%08X\n",
366*1b481fc3SMaciej Żenczykowski 		offset, regs_buff[17]);
367*1b481fc3SMaciej Żenczykowski 
368*1b481fc3SMaciej Żenczykowski 	/* Interrupt */
369*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
370*1b481fc3SMaciej Żenczykowski 		"0x00800: EICR        (Extended Interrupt Cause)       0x%08X\n",
371*1b481fc3SMaciej Żenczykowski 		regs_buff[18]);
372*1b481fc3SMaciej Żenczykowski 
373*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
374*1b481fc3SMaciej Żenczykowski 		"0x00808: EICS        (Extended Interrupt Cause Set)   0x%08X\n",
375*1b481fc3SMaciej Żenczykowski 		regs_buff[19]);
376*1b481fc3SMaciej Żenczykowski 
377*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
378*1b481fc3SMaciej Żenczykowski 		"0x00880: EIMS        (Extended Interr. Mask Set/Read) 0x%08X\n",
379*1b481fc3SMaciej Żenczykowski 		regs_buff[20]);
380*1b481fc3SMaciej Żenczykowski 
381*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
382*1b481fc3SMaciej Żenczykowski 		"0x00888: EIMC        (Extended Interrupt Mask Clear)  0x%08X\n",
383*1b481fc3SMaciej Żenczykowski 		regs_buff[21]);
384*1b481fc3SMaciej Żenczykowski 
385*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
386*1b481fc3SMaciej Żenczykowski 		"0x00810: EIAC        (Extended Interrupt Auto Clear)  0x%08X\n",
387*1b481fc3SMaciej Żenczykowski 		regs_buff[22]);
388*1b481fc3SMaciej Żenczykowski 
389*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
390*1b481fc3SMaciej Żenczykowski 		"0x00890: EIAM        (Extended Interr. Auto Mask EN)  0x%08X\n",
391*1b481fc3SMaciej Żenczykowski 		regs_buff[23]);
392*1b481fc3SMaciej Żenczykowski 
393*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
394*1b481fc3SMaciej Żenczykowski 		"0x00820: EITR0       (Extended Interrupt Throttle 0)  0x%08X\n",
395*1b481fc3SMaciej Żenczykowski 		regs_buff[24]);
396*1b481fc3SMaciej Żenczykowski 
397*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
398*1b481fc3SMaciej Żenczykowski 		"0x00900: IVAR0       (Interrupt Vector Allocation 0)  0x%08X\n",
399*1b481fc3SMaciej Żenczykowski 		regs_buff[25]);
400*1b481fc3SMaciej Żenczykowski 
401*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
402*1b481fc3SMaciej Żenczykowski 		"0x00000: MSIXT       (MSI-X Table)                    0x%08X\n",
403*1b481fc3SMaciej Żenczykowski 		regs_buff[26]);
404*1b481fc3SMaciej Żenczykowski 
405*1b481fc3SMaciej Żenczykowski 	if (mac_type == ixgbe_mac_82598EB)
406*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
407*1b481fc3SMaciej Żenczykowski 			"0x02000: MSIXPBA     (MSI-X Pending Bit Array)        0x%08X\n",
408*1b481fc3SMaciej Żenczykowski 			regs_buff[27]);
409*1b481fc3SMaciej Żenczykowski 
410*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
411*1b481fc3SMaciej Żenczykowski 		"0x11068: PBACL       (MSI-X PBA Clear)                0x%08X\n",
412*1b481fc3SMaciej Żenczykowski 		regs_buff[28]);
413*1b481fc3SMaciej Żenczykowski 
414*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
415*1b481fc3SMaciej Żenczykowski 		"0x00898: GPIE        (General Purpose Interrupt EN)   0x%08X\n",
416*1b481fc3SMaciej Żenczykowski 		regs_buff[29]);
417*1b481fc3SMaciej Żenczykowski 
418*1b481fc3SMaciej Żenczykowski 	/* Flow Control */
419*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
420*1b481fc3SMaciej Żenczykowski 		"0x03008: PFCTOP      (Priority Flow Ctrl Type Opcode) 0x%08X\n",
421*1b481fc3SMaciej Żenczykowski 		regs_buff[30]);
422*1b481fc3SMaciej Żenczykowski 
423*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 4; i++)
424*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
425*1b481fc3SMaciej Żenczykowski 		"0x%05X: FCCTV%d      (Flow Ctrl Tx Timer Value %d)     0x%08X\n",
426*1b481fc3SMaciej Żenczykowski 		0x03200 + (4 * i), i, i, regs_buff[31 + i]);
427*1b481fc3SMaciej Żenczykowski 
428*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 8; i++)
429*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
430*1b481fc3SMaciej Żenczykowski 		"0x%05X: FCRTL%d      (Flow Ctrl Rx Threshold low %d)   0x%08X\n",
431*1b481fc3SMaciej Żenczykowski 		0x3220 + (8 * i), i, i, regs_buff[35 + i]);
432*1b481fc3SMaciej Żenczykowski 
433*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 8; i++)
434*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
435*1b481fc3SMaciej Żenczykowski 		"0x%05X: FCRTH%d      (Flow Ctrl Rx Threshold High %d)  0x%08X\n",
436*1b481fc3SMaciej Żenczykowski 		0x3260 + (8 * i), i, i, regs_buff[43 + i]);
437*1b481fc3SMaciej Żenczykowski 
438*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
439*1b481fc3SMaciej Żenczykowski 		"0x032A0: FCRTV       (Flow Control Refresh Threshold) 0x%08X\n",
440*1b481fc3SMaciej Żenczykowski 		regs_buff[51]);
441*1b481fc3SMaciej Żenczykowski 
442*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
443*1b481fc3SMaciej Żenczykowski 		"0x0CE00: TFCS        (Transmit Flow Control Status)   0x%08X\n",
444*1b481fc3SMaciej Żenczykowski 		regs_buff[52]);
445*1b481fc3SMaciej Żenczykowski 
446*1b481fc3SMaciej Żenczykowski 	/* Receive DMA */
447*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 64; i++)
448*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
449*1b481fc3SMaciej Żenczykowski 		"0x%05X: RDBAL%02d     (Rx Desc Base Addr Low %02d)       0x%08X\n",
450*1b481fc3SMaciej Żenczykowski 		0x01000 + (0x40 * i), i, i, regs_buff[53 + i]);
451*1b481fc3SMaciej Żenczykowski 
452*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 64; i++)
453*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
454*1b481fc3SMaciej Żenczykowski 		"0x%05X: RDBAH%02d     (Rx Desc Base Addr High %02d)      0x%08X\n",
455*1b481fc3SMaciej Żenczykowski 		0x01004 + (0x40 * i), i, i, regs_buff[117 + i]);
456*1b481fc3SMaciej Żenczykowski 
457*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 64; i++)
458*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
459*1b481fc3SMaciej Żenczykowski 		"0x%05X: RDLEN%02d     (Receive Descriptor Length %02d)   0x%08X\n",
460*1b481fc3SMaciej Żenczykowski 		0x01008 + (0x40 * i), i, i, regs_buff[181 + i]);
461*1b481fc3SMaciej Żenczykowski 
462*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 64; i++)
463*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
464*1b481fc3SMaciej Żenczykowski 		"0x%05X: RDH%02d       (Receive Descriptor Head %02d)     0x%08X\n",
465*1b481fc3SMaciej Żenczykowski 		0x01010 + (0x40 * i), i, i, regs_buff[245 + i]);
466*1b481fc3SMaciej Żenczykowski 
467*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 64; i++)
468*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
469*1b481fc3SMaciej Żenczykowski 		"0x%05X: RDT%02d       (Receive Descriptor Tail %02d)     0x%08X\n",
470*1b481fc3SMaciej Żenczykowski 		0x01018 + (0x40 * i), i, i, regs_buff[309 + i]);
471*1b481fc3SMaciej Żenczykowski 
472*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 64; i++)
473*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
474*1b481fc3SMaciej Żenczykowski 		"0x%05X: RXDCTL%02d    (Receive Descriptor Control %02d)  0x%08X\n",
475*1b481fc3SMaciej Żenczykowski 		0x01028 + (0x40 * i), i, i, regs_buff[373 + i]);
476*1b481fc3SMaciej Żenczykowski 
477*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 16; i++)
478*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
479*1b481fc3SMaciej Żenczykowski 		"0x%05X: SRRCTL%02d    (Split and Replic Rx Control %02d) 0x%08X\n",
480*1b481fc3SMaciej Żenczykowski 		0x02100 + (4 * i), i, i, regs_buff[437 + i]);
481*1b481fc3SMaciej Żenczykowski 
482*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 16; i++)
483*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
484*1b481fc3SMaciej Żenczykowski 		"0x%05X: DCA_RXCTRL%02d (Rx DCA Control %02d)             0x%08X\n",
485*1b481fc3SMaciej Żenczykowski 		0x02200 + (4 * i), i, i, regs_buff[453 + i]);
486*1b481fc3SMaciej Żenczykowski 
487*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
488*1b481fc3SMaciej Żenczykowski 		"0x02F00: RDRXCTL     (Receive DMA Control)            0x%08X\n",
489*1b481fc3SMaciej Żenczykowski 		regs_buff[469]);
490*1b481fc3SMaciej Żenczykowski 
491*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 8; i++)
492*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
493*1b481fc3SMaciej Żenczykowski 		"0x%05X: RXPBSIZE%d   (Receive Packet Buffer Size %d)   0x%08X\n",
494*1b481fc3SMaciej Żenczykowski 		0x3C00 + (4 * i), i, i, regs_buff[470 + i]);
495*1b481fc3SMaciej Żenczykowski 
496*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
497*1b481fc3SMaciej Żenczykowski 		"0x03000: RXCTRL      (Receive Control)                0x%08X\n",
498*1b481fc3SMaciej Żenczykowski 		regs_buff[478]);
499*1b481fc3SMaciej Żenczykowski 
500*1b481fc3SMaciej Żenczykowski 	if (mac_type == ixgbe_mac_82598EB)
501*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
502*1b481fc3SMaciej Żenczykowski 			"0x03D04: DROPEN      (Drop Enable Control)            0x%08X\n",
503*1b481fc3SMaciej Żenczykowski 			regs_buff[479]);
504*1b481fc3SMaciej Żenczykowski 
505*1b481fc3SMaciej Żenczykowski 	/* Receive */
506*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
507*1b481fc3SMaciej Żenczykowski 		"0x05000: RXCSUM      (Receive Checksum Control)       0x%08X\n",
508*1b481fc3SMaciej Żenczykowski 		regs_buff[480]);
509*1b481fc3SMaciej Żenczykowski 
510*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
511*1b481fc3SMaciej Żenczykowski 		"0x05008: RFCTL       (Receive Filter Control)         0x%08X\n",
512*1b481fc3SMaciej Żenczykowski 		regs_buff[481]);
513*1b481fc3SMaciej Żenczykowski 
514*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 16; i++)
515*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
516*1b481fc3SMaciej Żenczykowski 		"0x%05X: RAL%02d       (Receive Address Low%02d)          0x%08X\n",
517*1b481fc3SMaciej Żenczykowski 		0x05400 + (8 * i), i, i, regs_buff[482 + i]);
518*1b481fc3SMaciej Żenczykowski 
519*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 16; i++)
520*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
521*1b481fc3SMaciej Żenczykowski 		"0x%05X: RAH%02d       (Receive Address High %02d)        0x%08X\n",
522*1b481fc3SMaciej Żenczykowski 		0x05404 + (8 * i), i, i, regs_buff[498 + i]);
523*1b481fc3SMaciej Żenczykowski 
524*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
525*1b481fc3SMaciej Żenczykowski 		"0x05480: PSRTYPE     (Packet Split Receive Type)      0x%08X\n",
526*1b481fc3SMaciej Żenczykowski 		regs_buff[514]);
527*1b481fc3SMaciej Żenczykowski 
528*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
529*1b481fc3SMaciej Żenczykowski 		"0x05090: MCSTCTRL    (Multicast Control)              0x%08X\n",
530*1b481fc3SMaciej Żenczykowski 		regs_buff[517]);
531*1b481fc3SMaciej Żenczykowski 
532*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
533*1b481fc3SMaciej Żenczykowski 		"0x05818: MRQC        (Multiple Rx Queues Command)     0x%08X\n",
534*1b481fc3SMaciej Żenczykowski 		regs_buff[518]);
535*1b481fc3SMaciej Żenczykowski 
536*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
537*1b481fc3SMaciej Żenczykowski 		"0x0581C: VMD_CTL     (VMDq Control)                   0x%08X\n",
538*1b481fc3SMaciej Żenczykowski 		regs_buff[519]);
539*1b481fc3SMaciej Żenczykowski 
540*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 8; i++)
541*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
542*1b481fc3SMaciej Żenczykowski 		"0x%05X: IMIR%d       (Immediate Interrupt Rx %d)       0x%08X\n",
543*1b481fc3SMaciej Żenczykowski 		0x05A80 + (4 * i), i, i, regs_buff[520 + i]);
544*1b481fc3SMaciej Żenczykowski 
545*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 8; i++)
546*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
547*1b481fc3SMaciej Żenczykowski 		"0x%05X: IMIREXT%d    (Immed. Interr. Rx Extended %d)   0x%08X\n",
548*1b481fc3SMaciej Żenczykowski 		0x05AA0 + (4 * i), i, i, regs_buff[528 + i]);
549*1b481fc3SMaciej Żenczykowski 
550*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
551*1b481fc3SMaciej Żenczykowski 		"0x05AC0: IMIRVP      (Immed. Interr. Rx VLAN Prior.)  0x%08X\n",
552*1b481fc3SMaciej Żenczykowski 		regs_buff[536]);
553*1b481fc3SMaciej Żenczykowski 
554*1b481fc3SMaciej Żenczykowski 	/* Transmit */
555*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 32; i++)
556*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
557*1b481fc3SMaciej Żenczykowski 		"0x%05X: TDBAL%02d     (Tx Desc Base Addr Low %02d)       0x%08X\n",
558*1b481fc3SMaciej Żenczykowski 		0x06000 + (0x40 * i), i, i, regs_buff[537 + i]);
559*1b481fc3SMaciej Żenczykowski 
560*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 32; i++)
561*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
562*1b481fc3SMaciej Żenczykowski 		"0x%05X: TDBAH%02d     (Tx Desc Base Addr High %02d)      0x%08X\n",
563*1b481fc3SMaciej Żenczykowski 		0x06004 + (0x40 * i), i, i, regs_buff[569 + i]);
564*1b481fc3SMaciej Żenczykowski 
565*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 32; i++)
566*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
567*1b481fc3SMaciej Żenczykowski 		"0x%05X: TDLEN%02d     (Tx Descriptor Length %02d)        0x%08X\n",
568*1b481fc3SMaciej Żenczykowski 		0x06008 + (0x40 * i), i, i, regs_buff[601 + i]);
569*1b481fc3SMaciej Żenczykowski 
570*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 32; i++)
571*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
572*1b481fc3SMaciej Żenczykowski 		"0x%05X: TDH%02d       (Transmit Descriptor Head %02d)    0x%08X\n",
573*1b481fc3SMaciej Żenczykowski 		0x06010 + (0x40 * i), i, i, regs_buff[633 + i]);
574*1b481fc3SMaciej Żenczykowski 
575*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 32; i++)
576*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
577*1b481fc3SMaciej Żenczykowski 		"0x%05X: TDT%02d       (Transmit Descriptor Tail %02d)    0x%08X\n",
578*1b481fc3SMaciej Żenczykowski 		0x06018 + (0x40 * i), i, i, regs_buff[665 + i]);
579*1b481fc3SMaciej Żenczykowski 
580*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 32; i++)
581*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
582*1b481fc3SMaciej Żenczykowski 		"0x%05X: TXDCTL%02d    (Tx Descriptor Control %02d)       0x%08X\n",
583*1b481fc3SMaciej Żenczykowski 		0x06028 + (0x40 * i), i, i, regs_buff[697 + i]);
584*1b481fc3SMaciej Żenczykowski 
585*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 32; i++)
586*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
587*1b481fc3SMaciej Żenczykowski 		"0x%05X: TDWBAL%02d    (Tx Desc Compl. WB Addr low %02d)  0x%08X\n",
588*1b481fc3SMaciej Żenczykowski 		0x06038 + (0x40 * i), i, i, regs_buff[729 + i]);
589*1b481fc3SMaciej Żenczykowski 
590*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 32; i++)
591*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
592*1b481fc3SMaciej Żenczykowski 		"0x%05X: TDWBAH%02d    (Tx Desc Compl. WB Addr High %02d) 0x%08X\n",
593*1b481fc3SMaciej Żenczykowski 		0x0603C + (0x40 * i), i, i, regs_buff[761 + i]);
594*1b481fc3SMaciej Żenczykowski 
595*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
596*1b481fc3SMaciej Żenczykowski 		"0x07E00: DTXCTL      (DMA Tx Control)                 0x%08X\n",
597*1b481fc3SMaciej Żenczykowski 		regs_buff[793]);
598*1b481fc3SMaciej Żenczykowski 
599*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 16; i++)
600*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
601*1b481fc3SMaciej Żenczykowski 		"0x%05X: DCA_TXCTRL%02d (Tx DCA Control %02d)             0x%08X\n",
602*1b481fc3SMaciej Żenczykowski 		0x07200 + (4 * i), i, i, regs_buff[794 + i]);
603*1b481fc3SMaciej Żenczykowski 
604*1b481fc3SMaciej Żenczykowski 	if (mac_type == ixgbe_mac_82598EB)
605*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
606*1b481fc3SMaciej Żenczykowski 			"0x0CB00: TIPG        (Transmit IPG Control)           0x%08X\n",
607*1b481fc3SMaciej Żenczykowski 			regs_buff[810]);
608*1b481fc3SMaciej Żenczykowski 
609*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 8; i++)
610*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
611*1b481fc3SMaciej Żenczykowski 		"0x%05X: TXPBSIZE%d   (Transmit Packet Buffer Size %d)  0x%08X\n",
612*1b481fc3SMaciej Żenczykowski 		0x0CC00 + (4 * i), i, i, regs_buff[811 + i]);
613*1b481fc3SMaciej Żenczykowski 
614*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
615*1b481fc3SMaciej Żenczykowski 		"0x0CD10: MNGTXMAP    (Manageability Tx TC Mapping)    0x%08X\n",
616*1b481fc3SMaciej Żenczykowski 		regs_buff[819]);
617*1b481fc3SMaciej Żenczykowski 
618*1b481fc3SMaciej Żenczykowski 	/* Wake Up */
619*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
620*1b481fc3SMaciej Żenczykowski 		"0x05800: WUC         (Wake up Control)                0x%08X\n",
621*1b481fc3SMaciej Żenczykowski 		regs_buff[820]);
622*1b481fc3SMaciej Żenczykowski 
623*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
624*1b481fc3SMaciej Żenczykowski 		"0x05808: WUFC        (Wake Up Filter Control)         0x%08X\n",
625*1b481fc3SMaciej Żenczykowski 		regs_buff[821]);
626*1b481fc3SMaciej Żenczykowski 
627*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
628*1b481fc3SMaciej Żenczykowski 		"0x05810: WUS         (Wake Up Status)                 0x%08X\n",
629*1b481fc3SMaciej Żenczykowski 		regs_buff[822]);
630*1b481fc3SMaciej Żenczykowski 
631*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
632*1b481fc3SMaciej Żenczykowski 		"0x05838: IPAV        (IP Address Valid)               0x%08X\n",
633*1b481fc3SMaciej Żenczykowski 		regs_buff[823]);
634*1b481fc3SMaciej Żenczykowski 
635*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
636*1b481fc3SMaciej Żenczykowski 		"0x05840: IP4AT       (IPv4 Address Table)             0x%08X\n",
637*1b481fc3SMaciej Żenczykowski 		regs_buff[824]);
638*1b481fc3SMaciej Żenczykowski 
639*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
640*1b481fc3SMaciej Żenczykowski 		"0x05880: IP6AT       (IPv6 Address Table)             0x%08X\n",
641*1b481fc3SMaciej Żenczykowski 		regs_buff[825]);
642*1b481fc3SMaciej Żenczykowski 
643*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
644*1b481fc3SMaciej Żenczykowski 		"0x05900: WUPL        (Wake Up Packet Length)          0x%08X\n",
645*1b481fc3SMaciej Żenczykowski 		regs_buff[826]);
646*1b481fc3SMaciej Żenczykowski 
647*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
648*1b481fc3SMaciej Żenczykowski 		"0x05A00: WUPM        (Wake Up Packet Memory)          0x%08X\n",
649*1b481fc3SMaciej Żenczykowski 		regs_buff[827]);
650*1b481fc3SMaciej Żenczykowski 
651*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
652*1b481fc3SMaciej Żenczykowski 		"0x09000: FHFT        (Flexible Host Filter Table)     0x%08X\n",
653*1b481fc3SMaciej Żenczykowski 		regs_buff[828]);
654*1b481fc3SMaciej Żenczykowski 
655*1b481fc3SMaciej Żenczykowski 	/* DCB */
656*1b481fc3SMaciej Żenczykowski 	if (mac_type == ixgbe_mac_82598EB) {
657*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
658*1b481fc3SMaciej Żenczykowski 		"0x07F40: DPMCS       (Desc. Plan Music Ctrl Status)   0x%08X\n",
659*1b481fc3SMaciej Żenczykowski 		regs_buff[830]);
660*1b481fc3SMaciej Żenczykowski 
661*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
662*1b481fc3SMaciej Żenczykowski 		"0x0CD00: PDPMCS      (Pkt Data Plan Music ctrl Stat)  0x%08X\n",
663*1b481fc3SMaciej Żenczykowski 		regs_buff[831]);
664*1b481fc3SMaciej Żenczykowski 
665*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
666*1b481fc3SMaciej Żenczykowski 		"0x050A0: RUPPBMR     (Rx User Prior to Pkt Buff Map)  0x%08X\n",
667*1b481fc3SMaciej Żenczykowski 		regs_buff[832]);
668*1b481fc3SMaciej Żenczykowski 
669*1b481fc3SMaciej Żenczykowski 		for (i = 0; i < 8; i++)
670*1b481fc3SMaciej Żenczykowski 			fprintf(stdout,
671*1b481fc3SMaciej Żenczykowski 			"0x%05X: RT2CR%d      (Receive T2 Configure %d)         0x%08X\n",
672*1b481fc3SMaciej Żenczykowski 			0x03C20 + (4 * i), i, i, regs_buff[833 + i]);
673*1b481fc3SMaciej Żenczykowski 
674*1b481fc3SMaciej Żenczykowski 		for (i = 0; i < 8; i++)
675*1b481fc3SMaciej Żenczykowski 			fprintf(stdout,
676*1b481fc3SMaciej Żenczykowski 			"0x%05X: RT2SR%d      (Receive T2 Status %d)            0x%08X\n",
677*1b481fc3SMaciej Żenczykowski 			0x03C40 + (4 * i), i, i, regs_buff[841 + i]);
678*1b481fc3SMaciej Żenczykowski 
679*1b481fc3SMaciej Żenczykowski 		for (i = 0; i < 8; i++)
680*1b481fc3SMaciej Żenczykowski 			fprintf(stdout,
681*1b481fc3SMaciej Żenczykowski 			"0x%05X: TDTQ2TCCR%d  (Tx Desc TQ2 TC Config %d)        0x%08X\n",
682*1b481fc3SMaciej Żenczykowski 			0x0602C + (0x40 * i), i, i, regs_buff[849 + i]);
683*1b481fc3SMaciej Żenczykowski 
684*1b481fc3SMaciej Żenczykowski 		for (i = 0; i < 8; i++)
685*1b481fc3SMaciej Żenczykowski 			fprintf(stdout,
686*1b481fc3SMaciej Żenczykowski 			"0x%05X: TDTQ2TCSR%d  (Tx Desc TQ2 TC Status %d)        0x%08X\n",
687*1b481fc3SMaciej Żenczykowski 			0x0622C + (0x40 * i), i, i, regs_buff[857 + i]);
688*1b481fc3SMaciej Żenczykowski 
689*1b481fc3SMaciej Żenczykowski 		for (i = 0; i < 8; i++)
690*1b481fc3SMaciej Żenczykowski 			fprintf(stdout,
691*1b481fc3SMaciej Żenczykowski 			"0x%05X: TDPT2TCCR%d  (Tx Data Plane T2 TC Config %d)   0x%08X\n",
692*1b481fc3SMaciej Żenczykowski 			0x0CD20 + (4 * i), i, i, regs_buff[865 + i]);
693*1b481fc3SMaciej Żenczykowski 
694*1b481fc3SMaciej Żenczykowski 		for (i = 0; i < 8; i++)
695*1b481fc3SMaciej Żenczykowski 			fprintf(stdout,
696*1b481fc3SMaciej Żenczykowski 			"0x%05X: TDPT2TCSR%d  (Tx Data Plane T2 TC Status %d)   0x%08X\n",
697*1b481fc3SMaciej Żenczykowski 			0x0CD40 + (4 * i), i, i, regs_buff[873 + i]);
698*1b481fc3SMaciej Żenczykowski 	} else if (mac_type >= ixgbe_mac_82599EB && mac_type <= ixgbe_mac_x550) {
699*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
700*1b481fc3SMaciej Żenczykowski 			"0x04900: RTTDCS      (Tx Descr Plane Ctrl&Status)     0x%08X\n",
701*1b481fc3SMaciej Żenczykowski 			regs_buff[830]);
702*1b481fc3SMaciej Żenczykowski 
703*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
704*1b481fc3SMaciej Żenczykowski 			"0x0CD00: RTTPCS      (Tx Pkt Plane Ctrl&Status)       0x%08X\n",
705*1b481fc3SMaciej Żenczykowski 			regs_buff[831]);
706*1b481fc3SMaciej Żenczykowski 
707*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
708*1b481fc3SMaciej Żenczykowski 			"0x02430: RTRPCS      (Rx Packet Plane Ctrl&Status)    0x%08X\n",
709*1b481fc3SMaciej Żenczykowski 			regs_buff[832]);
710*1b481fc3SMaciej Żenczykowski 
711*1b481fc3SMaciej Żenczykowski 		for (i = 0; i < 8; i++)
712*1b481fc3SMaciej Żenczykowski 			fprintf(stdout,
713*1b481fc3SMaciej Żenczykowski 			"0x%05X: RTRPT4C%d    (Rx Packet Plane T4 Config %d)    0x%08X\n",
714*1b481fc3SMaciej Żenczykowski 			0x02140 + (4 * i), i, i, regs_buff[833 + i]);
715*1b481fc3SMaciej Żenczykowski 
716*1b481fc3SMaciej Żenczykowski 		for (i = 0; i < 8; i++)
717*1b481fc3SMaciej Żenczykowski 			fprintf(stdout,
718*1b481fc3SMaciej Żenczykowski 			"0x%05X: RTRPT4S%d    (Rx Packet Plane T4 Status %d)    0x%08X\n",
719*1b481fc3SMaciej Żenczykowski 			0x02160 + (4 * i), i, i, regs_buff[841 + i]);
720*1b481fc3SMaciej Żenczykowski 
721*1b481fc3SMaciej Żenczykowski 		for (i = 0; i < 8; i++)
722*1b481fc3SMaciej Żenczykowski 			fprintf(stdout,
723*1b481fc3SMaciej Żenczykowski 			"0x%05X: RTTDT2C%d    (Tx Descr Plane T2 Config %d)     0x%08X\n",
724*1b481fc3SMaciej Żenczykowski 			0x04910 + (4 * i), i, i, regs_buff[849 + i]);
725*1b481fc3SMaciej Żenczykowski 
726*1b481fc3SMaciej Żenczykowski 		if (mac_type < ixgbe_mac_x550)
727*1b481fc3SMaciej Żenczykowski 			for (i = 0; i < 8; i++)
728*1b481fc3SMaciej Żenczykowski 				fprintf(stdout,
729*1b481fc3SMaciej Żenczykowski 					"0x%05X: RTTDT2S%d    (Tx Descr Plane T2 Status %d)     0x%08X\n",
730*1b481fc3SMaciej Żenczykowski 					0x04930 + (4 * i), i, i, regs_buff[857 + i]);
731*1b481fc3SMaciej Żenczykowski 
732*1b481fc3SMaciej Żenczykowski 		for (i = 0; i < 8; i++)
733*1b481fc3SMaciej Żenczykowski 			fprintf(stdout,
734*1b481fc3SMaciej Żenczykowski 			"0x%05X: RTTPT2C%d    (Tx Packet Plane T2 Config %d)    0x%08X\n",
735*1b481fc3SMaciej Żenczykowski 			0x0CD20 + (4 * i), i, i, regs_buff[865]);
736*1b481fc3SMaciej Żenczykowski 
737*1b481fc3SMaciej Żenczykowski 		if (mac_type < ixgbe_mac_x550)
738*1b481fc3SMaciej Żenczykowski 			for (i = 0; i < 8; i++)
739*1b481fc3SMaciej Żenczykowski 				fprintf(stdout,
740*1b481fc3SMaciej Żenczykowski 					"0x%05X: RTTPT2S%d    (Tx Packet Plane T2 Status %d)    0x%08X\n",
741*1b481fc3SMaciej Żenczykowski 					0x0CD40 + (4 * i), i, i, regs_buff[873 + i]);
742*1b481fc3SMaciej Żenczykowski 	}
743*1b481fc3SMaciej Żenczykowski 
744*1b481fc3SMaciej Żenczykowski 	if (regs_buff_len > 1129 && mac_type != ixgbe_mac_82598EB) {
745*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
746*1b481fc3SMaciej Żenczykowski 			"0x03020: RTRUP2TC    (Rx User Prio to Traffic Classes)0x%08X\n",
747*1b481fc3SMaciej Żenczykowski 			regs_buff[1129]);
748*1b481fc3SMaciej Żenczykowski 
749*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
750*1b481fc3SMaciej Żenczykowski 			"0x0C800: RTTUP2TC    (Tx User Prio to Traffic Classes)0x%08X\n",
751*1b481fc3SMaciej Żenczykowski 			regs_buff[1130]);
752*1b481fc3SMaciej Żenczykowski 
753*1b481fc3SMaciej Żenczykowski 		if (mac_type <= ixgbe_mac_x550)
754*1b481fc3SMaciej Żenczykowski 			for (i = 0; i < 4; i++)
755*1b481fc3SMaciej Żenczykowski 				fprintf(stdout,
756*1b481fc3SMaciej Żenczykowski 					"0x%05X: TXLLQ%d      (Strict Low Lat Tx Queues %d)     0x%08X\n",
757*1b481fc3SMaciej Żenczykowski 					0x082E0 + (4 * i), i, i, regs_buff[1131 + i]);
758*1b481fc3SMaciej Żenczykowski 
759*1b481fc3SMaciej Żenczykowski 		if (mac_type == ixgbe_mac_82599EB) {
760*1b481fc3SMaciej Żenczykowski 			fprintf(stdout,
761*1b481fc3SMaciej Żenczykowski 				"0x04980: RTTBCNRM    (DCB TX Rate Sched MMW)          0x%08X\n",
762*1b481fc3SMaciej Żenczykowski 				regs_buff[1135]);
763*1b481fc3SMaciej Żenczykowski 
764*1b481fc3SMaciej Żenczykowski 			fprintf(stdout,
765*1b481fc3SMaciej Żenczykowski 				"0x0498C: RTTBCNRD    (DCB TX Rate-Scheduler Drift)    0x%08X\n",
766*1b481fc3SMaciej Żenczykowski 				regs_buff[1136]);
767*1b481fc3SMaciej Żenczykowski 		} else if (mac_type <= ixgbe_mac_x550) {
768*1b481fc3SMaciej Żenczykowski 			fprintf(stdout,
769*1b481fc3SMaciej Żenczykowski 				"0x04980: RTTQCNRM    (DCB TX QCN Rate Sched MMW)      0x%08X\n",
770*1b481fc3SMaciej Żenczykowski 				regs_buff[1135]);
771*1b481fc3SMaciej Żenczykowski 
772*1b481fc3SMaciej Żenczykowski 			fprintf(stdout,
773*1b481fc3SMaciej Żenczykowski 				"0x0498C: RTTQCNRR    (DCB TX QCN Rate Reset)          0x%08X\n",
774*1b481fc3SMaciej Żenczykowski 				regs_buff[1136]);
775*1b481fc3SMaciej Żenczykowski 
776*1b481fc3SMaciej Żenczykowski 			if (mac_type < ixgbe_mac_x550)
777*1b481fc3SMaciej Żenczykowski 				fprintf(stdout,
778*1b481fc3SMaciej Żenczykowski 					"0x08B00: RTTQCNCR    (DCB TX QCN Control)             0x%08X\n",
779*1b481fc3SMaciej Żenczykowski 					regs_buff[1137]);
780*1b481fc3SMaciej Żenczykowski 
781*1b481fc3SMaciej Żenczykowski 			fprintf(stdout,
782*1b481fc3SMaciej Żenczykowski 				"0x04A90: RTTQCNTG    (DCB TX QCN Tagging)             0x%08X\n",
783*1b481fc3SMaciej Żenczykowski 				regs_buff[1138]);
784*1b481fc3SMaciej Żenczykowski 		}
785*1b481fc3SMaciej Żenczykowski 	}
786*1b481fc3SMaciej Żenczykowski 
787*1b481fc3SMaciej Żenczykowski 	/* Statistics */
788*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
789*1b481fc3SMaciej Żenczykowski 		"0x04000: crcerrs     (CRC Error Count)                0x%08X\n",
790*1b481fc3SMaciej Żenczykowski 		regs_buff[881]);
791*1b481fc3SMaciej Żenczykowski 
792*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
793*1b481fc3SMaciej Żenczykowski 		"0x04004: illerrc     (Illegal Byte Error Count)       0x%08X\n",
794*1b481fc3SMaciej Żenczykowski 		regs_buff[882]);
795*1b481fc3SMaciej Żenczykowski 
796*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
797*1b481fc3SMaciej Żenczykowski 		"0x04008: errbc       (Error Byte Count)               0x%08X\n",
798*1b481fc3SMaciej Żenczykowski 		regs_buff[883]);
799*1b481fc3SMaciej Żenczykowski 
800*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
801*1b481fc3SMaciej Żenczykowski 		"0x04010: mspdc       (MAC Short Packet Discard Count) 0x%08X\n",
802*1b481fc3SMaciej Żenczykowski 		regs_buff[884]);
803*1b481fc3SMaciej Żenczykowski 
804*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 8; i++)
805*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
806*1b481fc3SMaciej Żenczykowski 		"0x%05X: mpc%d        (Missed Packets Count %d)         0x%08X\n",
807*1b481fc3SMaciej Żenczykowski 		0x03FA0 + (4 * i), i, i, regs_buff[885 + i]);
808*1b481fc3SMaciej Żenczykowski 
809*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
810*1b481fc3SMaciej Żenczykowski 		"0x04034: mlfc        (MAC Local Fault Count)          0x%08X\n",
811*1b481fc3SMaciej Żenczykowski 		regs_buff[893]);
812*1b481fc3SMaciej Żenczykowski 
813*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
814*1b481fc3SMaciej Żenczykowski 		"0x04038: mrfc        (MAC Remote Fault Count)         0x%08X\n",
815*1b481fc3SMaciej Żenczykowski 		regs_buff[894]);
816*1b481fc3SMaciej Żenczykowski 
817*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
818*1b481fc3SMaciej Żenczykowski 		"0x04040: rlec        (Receive Length Error Count)     0x%08X\n",
819*1b481fc3SMaciej Żenczykowski 		regs_buff[895]);
820*1b481fc3SMaciej Żenczykowski 
821*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
822*1b481fc3SMaciej Żenczykowski 		"0x03F60: lxontxc     (Link XON Transmitted Count)     0x%08X\n",
823*1b481fc3SMaciej Żenczykowski 		regs_buff[896]);
824*1b481fc3SMaciej Żenczykowski 
825*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
826*1b481fc3SMaciej Żenczykowski 		"0x0CF60: lxonrxc     (Link XON Received Count)        0x%08X\n",
827*1b481fc3SMaciej Żenczykowski 		regs_buff[897]);
828*1b481fc3SMaciej Żenczykowski 
829*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
830*1b481fc3SMaciej Żenczykowski 		"0x03F68: lxofftxc    (Link XOFF Transmitted Count)    0x%08X\n",
831*1b481fc3SMaciej Żenczykowski 		regs_buff[898]);
832*1b481fc3SMaciej Żenczykowski 
833*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
834*1b481fc3SMaciej Żenczykowski 		"0x0CF68: lxoffrxc    (Link XOFF Received Count)       0x%08X\n",
835*1b481fc3SMaciej Żenczykowski 		regs_buff[899]);
836*1b481fc3SMaciej Żenczykowski 
837*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 8; i++)
838*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
839*1b481fc3SMaciej Żenczykowski 		"0x%05X: pxontxc%d    (Priority XON Tx Count %d)        0x%08X\n",
840*1b481fc3SMaciej Żenczykowski 		0x03F00 + (4 * i), i, i, regs_buff[900 + i]);
841*1b481fc3SMaciej Żenczykowski 
842*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 8; i++)
843*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
844*1b481fc3SMaciej Żenczykowski 		"0x%05X: pxonrxc%d    (Priority XON Received Count %d)  0x%08X\n",
845*1b481fc3SMaciej Żenczykowski 		0x0CF00 + (4 * i), i, i, regs_buff[908 + i]);
846*1b481fc3SMaciej Żenczykowski 
847*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 8; i++)
848*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
849*1b481fc3SMaciej Żenczykowski 		"0x%05X: pxofftxc%d   (Priority XOFF Tx Count %d)       0x%08X\n",
850*1b481fc3SMaciej Żenczykowski 		0x03F20 + (4 * i), i, i, regs_buff[916 + i]);
851*1b481fc3SMaciej Żenczykowski 
852*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 8; i++)
853*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
854*1b481fc3SMaciej Żenczykowski 		"0x%05X: pxoffrxc%d   (Priority XOFF Received Count %d) 0x%08X\n",
855*1b481fc3SMaciej Żenczykowski 		0x0CF20 + (4 * i), i, i, regs_buff[924 + i]);
856*1b481fc3SMaciej Żenczykowski 
857*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
858*1b481fc3SMaciej Żenczykowski 		"0x0405C: prc64       (Packets Received (64B) Count)   0x%08X\n",
859*1b481fc3SMaciej Żenczykowski 		regs_buff[932]);
860*1b481fc3SMaciej Żenczykowski 
861*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
862*1b481fc3SMaciej Żenczykowski 		"0x04060: prc127      (Packets Rx (65-127B) Count)     0x%08X\n",
863*1b481fc3SMaciej Żenczykowski 		regs_buff[933]);
864*1b481fc3SMaciej Żenczykowski 
865*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
866*1b481fc3SMaciej Żenczykowski 		"0x04064: prc255      (Packets Rx (128-255B) Count)    0x%08X\n",
867*1b481fc3SMaciej Żenczykowski 		regs_buff[934]);
868*1b481fc3SMaciej Żenczykowski 
869*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
870*1b481fc3SMaciej Żenczykowski 		"0x04068: prc511      (Packets Rx (256-511B) Count)    0x%08X\n",
871*1b481fc3SMaciej Żenczykowski 		regs_buff[935]);
872*1b481fc3SMaciej Żenczykowski 
873*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
874*1b481fc3SMaciej Żenczykowski 		"0x0406C: prc1023     (Packets Rx (512-1023B) Count)   0x%08X\n",
875*1b481fc3SMaciej Żenczykowski 		regs_buff[936]);
876*1b481fc3SMaciej Żenczykowski 
877*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
878*1b481fc3SMaciej Żenczykowski 		"0x04070: prc1522     (Packets Rx (1024-Max) Count)    0x%08X\n",
879*1b481fc3SMaciej Żenczykowski 		regs_buff[937]);
880*1b481fc3SMaciej Żenczykowski 
881*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
882*1b481fc3SMaciej Żenczykowski 		"0x04074: gprc        (Good Packets Received Count)    0x%08X\n",
883*1b481fc3SMaciej Żenczykowski 		regs_buff[938]);
884*1b481fc3SMaciej Żenczykowski 
885*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
886*1b481fc3SMaciej Żenczykowski 		"0x04078: bprc        (Broadcast Packets Rx Count)     0x%08X\n",
887*1b481fc3SMaciej Żenczykowski 		regs_buff[939]);
888*1b481fc3SMaciej Żenczykowski 
889*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
890*1b481fc3SMaciej Żenczykowski 		"0x0407C: mprc        (Multicast Packets Rx Count)     0x%08X\n",
891*1b481fc3SMaciej Żenczykowski 		regs_buff[940]);
892*1b481fc3SMaciej Żenczykowski 
893*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
894*1b481fc3SMaciej Żenczykowski 		"0x04080: gptc        (Good Packets Transmitted Count) 0x%08X\n",
895*1b481fc3SMaciej Żenczykowski 		regs_buff[941]);
896*1b481fc3SMaciej Żenczykowski 
897*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
898*1b481fc3SMaciej Żenczykowski 		"0x04088: gorcl       (Good Octets Rx Count Low)       0x%08X\n",
899*1b481fc3SMaciej Żenczykowski 		regs_buff[942]);
900*1b481fc3SMaciej Żenczykowski 
901*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
902*1b481fc3SMaciej Żenczykowski 		"0x0408C: gorch       (Good Octets Rx Count High)      0x%08X\n",
903*1b481fc3SMaciej Żenczykowski 		regs_buff[943]);
904*1b481fc3SMaciej Żenczykowski 
905*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
906*1b481fc3SMaciej Żenczykowski 		"0x04090: gotcl       (Good Octets Tx Count Low)       0x%08X\n",
907*1b481fc3SMaciej Żenczykowski 		regs_buff[944]);
908*1b481fc3SMaciej Żenczykowski 
909*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
910*1b481fc3SMaciej Żenczykowski 		"0x04094: gotch       (Good Octets Tx Count High)      0x%08X\n",
911*1b481fc3SMaciej Żenczykowski 		regs_buff[945]);
912*1b481fc3SMaciej Żenczykowski 
913*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 8; i++)
914*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
915*1b481fc3SMaciej Żenczykowski 		"0x%05X: rnbc%d       (Receive No Buffers Count %d)     0x%08X\n",
916*1b481fc3SMaciej Żenczykowski 		0x03FC0 + (4 * i), i, i, regs_buff[946 + i]);
917*1b481fc3SMaciej Żenczykowski 
918*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
919*1b481fc3SMaciej Żenczykowski 		"0x040A4: ruc         (Receive Undersize count)        0x%08X\n",
920*1b481fc3SMaciej Żenczykowski 		regs_buff[954]);
921*1b481fc3SMaciej Żenczykowski 
922*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
923*1b481fc3SMaciej Żenczykowski 		"0x040A8: rfc         (Receive Fragment Count)         0x%08X\n",
924*1b481fc3SMaciej Żenczykowski 		regs_buff[955]);
925*1b481fc3SMaciej Żenczykowski 
926*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
927*1b481fc3SMaciej Żenczykowski 		"0x040AC: roc         (Receive Oversize Count)         0x%08X\n",
928*1b481fc3SMaciej Żenczykowski 		regs_buff[956]);
929*1b481fc3SMaciej Żenczykowski 
930*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
931*1b481fc3SMaciej Żenczykowski 		"0x040B0: rjc         (Receive Jabber Count)           0x%08X\n",
932*1b481fc3SMaciej Żenczykowski 		regs_buff[957]);
933*1b481fc3SMaciej Żenczykowski 
934*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
935*1b481fc3SMaciej Żenczykowski 		"0x040B4: mngprc      (Management Packets Rx Count)    0x%08X\n",
936*1b481fc3SMaciej Żenczykowski 		regs_buff[958]);
937*1b481fc3SMaciej Żenczykowski 
938*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
939*1b481fc3SMaciej Żenczykowski 		"0x040B8: mngpdc      (Management Pkts Dropped Count)  0x%08X\n",
940*1b481fc3SMaciej Żenczykowski 		regs_buff[959]);
941*1b481fc3SMaciej Żenczykowski 
942*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
943*1b481fc3SMaciej Żenczykowski 		"0x0CF90: mngptc      (Management Packets Tx Count)    0x%08X\n",
944*1b481fc3SMaciej Żenczykowski 		regs_buff[960]);
945*1b481fc3SMaciej Żenczykowski 
946*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
947*1b481fc3SMaciej Żenczykowski 		"0x040C0: torl        (Total Octets Rx Count Low)      0x%08X\n",
948*1b481fc3SMaciej Żenczykowski 		regs_buff[961]);
949*1b481fc3SMaciej Żenczykowski 
950*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
951*1b481fc3SMaciej Żenczykowski 		"0x040C4: torh        (Total Octets Rx Count High)     0x%08X\n",
952*1b481fc3SMaciej Żenczykowski 		regs_buff[962]);
953*1b481fc3SMaciej Żenczykowski 
954*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
955*1b481fc3SMaciej Żenczykowski 		"0x040D0: tpr         (Total Packets Received)         0x%08X\n",
956*1b481fc3SMaciej Żenczykowski 		regs_buff[963]);
957*1b481fc3SMaciej Żenczykowski 
958*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
959*1b481fc3SMaciej Żenczykowski 		"0x040D4: tpt         (Total Packets Transmitted)      0x%08X\n",
960*1b481fc3SMaciej Żenczykowski 		regs_buff[964]);
961*1b481fc3SMaciej Żenczykowski 
962*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
963*1b481fc3SMaciej Żenczykowski 		"0x040D8: ptc64       (Packets Tx (64B) Count)         0x%08X\n",
964*1b481fc3SMaciej Żenczykowski 		regs_buff[965]);
965*1b481fc3SMaciej Żenczykowski 
966*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
967*1b481fc3SMaciej Żenczykowski 		"0x040DC: ptc127      (Packets Tx (65-127B) Count)     0x%08X\n",
968*1b481fc3SMaciej Żenczykowski 		regs_buff[966]);
969*1b481fc3SMaciej Żenczykowski 
970*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
971*1b481fc3SMaciej Żenczykowski 		"0x040E0: ptc255      (Packets Tx (128-255B) Count)    0x%08X\n",
972*1b481fc3SMaciej Żenczykowski 		regs_buff[967]);
973*1b481fc3SMaciej Żenczykowski 
974*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
975*1b481fc3SMaciej Żenczykowski 		"0x040E4: ptc511      (Packets Tx (256-511B) Count)    0x%08X\n",
976*1b481fc3SMaciej Żenczykowski 		regs_buff[968]);
977*1b481fc3SMaciej Żenczykowski 
978*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
979*1b481fc3SMaciej Żenczykowski 		"0x040E8: ptc1023     (Packets Tx (512-1023B) Count)   0x%08X\n",
980*1b481fc3SMaciej Żenczykowski 		regs_buff[969]);
981*1b481fc3SMaciej Żenczykowski 
982*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
983*1b481fc3SMaciej Żenczykowski 		"0x040EC: ptc1522     (Packets Tx (1024-Max) Count)    0x%08X\n",
984*1b481fc3SMaciej Żenczykowski 		regs_buff[970]);
985*1b481fc3SMaciej Żenczykowski 
986*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
987*1b481fc3SMaciej Żenczykowski 		"0x040F0: mptc        (Multicast Packets Tx Count)     0x%08X\n",
988*1b481fc3SMaciej Żenczykowski 		regs_buff[971]);
989*1b481fc3SMaciej Żenczykowski 
990*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
991*1b481fc3SMaciej Żenczykowski 		"0x040F4: bptc        (Broadcast Packets Tx Count)     0x%08X\n",
992*1b481fc3SMaciej Żenczykowski 		regs_buff[972]);
993*1b481fc3SMaciej Żenczykowski 
994*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
995*1b481fc3SMaciej Żenczykowski 		"0x04120: xec         (XSUM Error Count)               0x%08X\n",
996*1b481fc3SMaciej Żenczykowski 		regs_buff[973]);
997*1b481fc3SMaciej Żenczykowski 
998*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 16; i++)
999*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1000*1b481fc3SMaciej Żenczykowski 		"0x%05X: qprc%02d      (Queue Packets Rx Count %02d)      0x%08X\n",
1001*1b481fc3SMaciej Żenczykowski 		0x01030 + (0x40 * i), i, i, regs_buff[974 + i]);
1002*1b481fc3SMaciej Żenczykowski 
1003*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 16; i++)
1004*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1005*1b481fc3SMaciej Żenczykowski 		"0x%05X: qptc%02d      (Queue Packets Tx Count %02d)      0x%08X\n",
1006*1b481fc3SMaciej Żenczykowski 		0x06030 + (0x40 * i), i, i, regs_buff[990 + i]);
1007*1b481fc3SMaciej Żenczykowski 
1008*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 16; i++)
1009*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1010*1b481fc3SMaciej Żenczykowski 		"0x%05X: qbrc%02d      (Queue Bytes Rx Count %02d)        0x%08X\n",
1011*1b481fc3SMaciej Żenczykowski 		0x01034 + (0x40 * i), i, i, regs_buff[1006 + i]);
1012*1b481fc3SMaciej Żenczykowski 
1013*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 16; i++)
1014*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1015*1b481fc3SMaciej Żenczykowski 		"0x%05X: qbtc%02d      (Queue Bytes Tx Count %02d)        0x%08X\n",
1016*1b481fc3SMaciej Żenczykowski 		0x06034 + (0x40 * i), i, i, regs_buff[1022 + i]);
1017*1b481fc3SMaciej Żenczykowski 
1018*1b481fc3SMaciej Żenczykowski 	/* MAC */
1019*1b481fc3SMaciej Żenczykowski 	if (mac_type < ixgbe_mac_X540) {
1020*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1021*1b481fc3SMaciej Żenczykowski 			"0x04200: PCS1GCFIG   (PCS_1G Gloabal Config 1)        0x%08X\n",
1022*1b481fc3SMaciej Żenczykowski 			regs_buff[1038]);
1023*1b481fc3SMaciej Żenczykowski 
1024*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1025*1b481fc3SMaciej Żenczykowski 			"0x04208: PCS1GLCTL   (PCS_1G Link Control)            0x%08X\n",
1026*1b481fc3SMaciej Żenczykowski 			regs_buff[1039]);
1027*1b481fc3SMaciej Żenczykowski 
1028*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1029*1b481fc3SMaciej Żenczykowski 			"0x0420C: PCS1GLSTA   (PCS_1G Link Status)             0x%08X\n",
1030*1b481fc3SMaciej Żenczykowski 			regs_buff[1040]);
1031*1b481fc3SMaciej Żenczykowski 
1032*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1033*1b481fc3SMaciej Żenczykowski 			"0x04210: PCS1GDBG0   (PCS_1G Debug 0)                 0x%08X\n",
1034*1b481fc3SMaciej Żenczykowski 			regs_buff[1041]);
1035*1b481fc3SMaciej Żenczykowski 
1036*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1037*1b481fc3SMaciej Żenczykowski 			"0x04214: PCS1GDBG1   (PCS_1G Debug 1)                 0x%08X\n",
1038*1b481fc3SMaciej Żenczykowski 			regs_buff[1042]);
1039*1b481fc3SMaciej Żenczykowski 
1040*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1041*1b481fc3SMaciej Żenczykowski 			"0x04218: PCS1GANA    (PCS-1G Auto Neg. Adv.)          0x%08X\n",
1042*1b481fc3SMaciej Żenczykowski 			regs_buff[1043]);
1043*1b481fc3SMaciej Żenczykowski 
1044*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1045*1b481fc3SMaciej Żenczykowski 			"0x0421C: PCS1GANLP   (PCS-1G AN LP Ability)           0x%08X\n",
1046*1b481fc3SMaciej Żenczykowski 			regs_buff[1044]);
1047*1b481fc3SMaciej Żenczykowski 
1048*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1049*1b481fc3SMaciej Żenczykowski 			"0x04220: PCS1GANNP   (PCS_1G Auto Neg Next Page Tx)   0x%08X\n",
1050*1b481fc3SMaciej Żenczykowski 			regs_buff[1045]);
1051*1b481fc3SMaciej Żenczykowski 
1052*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1053*1b481fc3SMaciej Żenczykowski 			"0x04224: PCS1GANLPNP (PCS_1G Auto Neg LPs Next Page)  0x%08X\n",
1054*1b481fc3SMaciej Żenczykowski 			regs_buff[1046]);
1055*1b481fc3SMaciej Żenczykowski 	}
1056*1b481fc3SMaciej Żenczykowski 
1057*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
1058*1b481fc3SMaciej Żenczykowski 		"0x04244: HLREG1      (Highlander Status 1)            0x%08X\n",
1059*1b481fc3SMaciej Żenczykowski 		regs_buff[1048]);
1060*1b481fc3SMaciej Żenczykowski 
1061*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
1062*1b481fc3SMaciej Żenczykowski 		"0x04248: PAP         (Pause and Pace)                 0x%08X\n",
1063*1b481fc3SMaciej Żenczykowski 		regs_buff[1049]);
1064*1b481fc3SMaciej Żenczykowski 
1065*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
1066*1b481fc3SMaciej Żenczykowski 		"0x0424C: MACA        (MDI Auto-Scan Command and Addr) 0x%08X\n",
1067*1b481fc3SMaciej Żenczykowski 		regs_buff[1050]);
1068*1b481fc3SMaciej Żenczykowski 
1069*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
1070*1b481fc3SMaciej Żenczykowski 		"0x04250: APAE        (Auto-Scan PHY Address Enable)   0x%08X\n",
1071*1b481fc3SMaciej Żenczykowski 		regs_buff[1051]);
1072*1b481fc3SMaciej Żenczykowski 
1073*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
1074*1b481fc3SMaciej Żenczykowski 		"0x04254: ARD         (Auto-Scan Read Data)            0x%08X\n",
1075*1b481fc3SMaciej Żenczykowski 		regs_buff[1052]);
1076*1b481fc3SMaciej Żenczykowski 
1077*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
1078*1b481fc3SMaciej Żenczykowski 		"0x04258: AIS         (Auto-Scan Interrupt Status)     0x%08X\n",
1079*1b481fc3SMaciej Żenczykowski 		regs_buff[1053]);
1080*1b481fc3SMaciej Żenczykowski 
1081*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
1082*1b481fc3SMaciej Żenczykowski 		"0x0425C: MSCA        (MDI Single Command and Addr)    0x%08X\n",
1083*1b481fc3SMaciej Żenczykowski 		regs_buff[1054]);
1084*1b481fc3SMaciej Żenczykowski 
1085*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
1086*1b481fc3SMaciej Żenczykowski 		"0x04260: MSRWD       (MDI Single Read and Write Data) 0x%08X\n",
1087*1b481fc3SMaciej Żenczykowski 		regs_buff[1055]);
1088*1b481fc3SMaciej Żenczykowski 
1089*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
1090*1b481fc3SMaciej Żenczykowski 		"0x04264: MLADD       (MAC Address Low)                0x%08X\n",
1091*1b481fc3SMaciej Żenczykowski 		regs_buff[1056]);
1092*1b481fc3SMaciej Żenczykowski 
1093*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
1094*1b481fc3SMaciej Żenczykowski 		"0x04268: MHADD       (MAC Addr High/Max Frame size)   0x%08X\n",
1095*1b481fc3SMaciej Żenczykowski 		regs_buff[1057]);
1096*1b481fc3SMaciej Żenczykowski 
1097*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
1098*1b481fc3SMaciej Żenczykowski 		"0x0426C: TREG        (Test Register)                  0x%08X\n",
1099*1b481fc3SMaciej Żenczykowski 		regs_buff[1058]);
1100*1b481fc3SMaciej Żenczykowski 
1101*1b481fc3SMaciej Żenczykowski 	if (mac_type < ixgbe_mac_X540) {
1102*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1103*1b481fc3SMaciej Żenczykowski 			"0x04288: PCSS1       (XGXS Status 1)                  0x%08X\n",
1104*1b481fc3SMaciej Żenczykowski 			regs_buff[1059]);
1105*1b481fc3SMaciej Żenczykowski 
1106*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1107*1b481fc3SMaciej Żenczykowski 			"0x0428C: PCSS2       (XGXS Status 2)                  0x%08X\n",
1108*1b481fc3SMaciej Żenczykowski 			regs_buff[1060]);
1109*1b481fc3SMaciej Żenczykowski 
1110*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1111*1b481fc3SMaciej Żenczykowski 			"0x04290: XPCSS       (10GBASE-X PCS Status)           0x%08X\n",
1112*1b481fc3SMaciej Żenczykowski 			regs_buff[1061]);
1113*1b481fc3SMaciej Żenczykowski 
1114*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1115*1b481fc3SMaciej Żenczykowski 			"0x04298: SERDESC     (SERDES Interface Control)       0x%08X\n",
1116*1b481fc3SMaciej Żenczykowski 			regs_buff[1062]);
1117*1b481fc3SMaciej Żenczykowski 
1118*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1119*1b481fc3SMaciej Żenczykowski 			"0x0429C: MACS        (FIFO Status/CNTL Report)        0x%08X\n",
1120*1b481fc3SMaciej Żenczykowski 			regs_buff[1063]);
1121*1b481fc3SMaciej Żenczykowski 
1122*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1123*1b481fc3SMaciej Żenczykowski 			"0x042A0: AUTOC       (Auto Negotiation Control)       0x%08X\n",
1124*1b481fc3SMaciej Żenczykowski 			regs_buff[1064]);
1125*1b481fc3SMaciej Żenczykowski 
1126*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1127*1b481fc3SMaciej Żenczykowski 			"0x042A8: AUTOC2      (Auto Negotiation Control 2)     0x%08X\n",
1128*1b481fc3SMaciej Żenczykowski 			regs_buff[1066]);
1129*1b481fc3SMaciej Żenczykowski 
1130*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1131*1b481fc3SMaciej Żenczykowski 			"0x042AC: AUTOC3      (Auto Negotiation Control 3)     0x%08X\n",
1132*1b481fc3SMaciej Żenczykowski 			regs_buff[1067]);
1133*1b481fc3SMaciej Żenczykowski 
1134*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1135*1b481fc3SMaciej Żenczykowski 			"0x042B0: ANLP1       (Auto Neg Lnk Part. Ctrl Word 1) 0x%08X\n",
1136*1b481fc3SMaciej Żenczykowski 			regs_buff[1068]);
1137*1b481fc3SMaciej Żenczykowski 
1138*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1139*1b481fc3SMaciej Żenczykowski 			"0x042B4: ANLP2       (Auto Neg Lnk Part. Ctrl Word 2) 0x%08X\n",
1140*1b481fc3SMaciej Żenczykowski 			regs_buff[1069]);
1141*1b481fc3SMaciej Żenczykowski 	}
1142*1b481fc3SMaciej Żenczykowski 
1143*1b481fc3SMaciej Żenczykowski 	if (mac_type == ixgbe_mac_82598EB) {
1144*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1145*1b481fc3SMaciej Żenczykowski 			"0x04800: ATLASCTL    (Atlas Analog Configuration)     0x%08X\n",
1146*1b481fc3SMaciej Żenczykowski 			regs_buff[1070]);
1147*1b481fc3SMaciej Żenczykowski 
1148*1b481fc3SMaciej Żenczykowski 		/* Diagnostic */
1149*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1150*1b481fc3SMaciej Żenczykowski 			"0x02C20: RDSTATCTL   (Rx DMA Statistic Control)       0x%08X\n",
1151*1b481fc3SMaciej Żenczykowski 			regs_buff[1071]);
1152*1b481fc3SMaciej Żenczykowski 
1153*1b481fc3SMaciej Żenczykowski 		for (i = 0; i < 8; i++)
1154*1b481fc3SMaciej Żenczykowski 			fprintf(stdout,
1155*1b481fc3SMaciej Żenczykowski 				"0x%05X: RDSTAT%d     (Rx DMA Statistics %d)            0x%08X\n",
1156*1b481fc3SMaciej Żenczykowski 				0x02C00 + (4 * i), i, i, regs_buff[1072 + i]);
1157*1b481fc3SMaciej Żenczykowski 
1158*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1159*1b481fc3SMaciej Żenczykowski 			"0x02F08: RDHMPN      (Rx Desc Handler Mem Page num)   0x%08X\n",
1160*1b481fc3SMaciej Żenczykowski 			regs_buff[1080]);
1161*1b481fc3SMaciej Żenczykowski 
1162*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1163*1b481fc3SMaciej Żenczykowski 			"0x02F10: RIC_DW0     (Rx Desc Hand. Mem Read Data 0)  0x%08X\n",
1164*1b481fc3SMaciej Żenczykowski 			regs_buff[1081]);
1165*1b481fc3SMaciej Żenczykowski 
1166*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1167*1b481fc3SMaciej Żenczykowski 			"0x02F14: RIC_DW1     (Rx Desc Hand. Mem Read Data 1)  0x%08X\n",
1168*1b481fc3SMaciej Żenczykowski 			regs_buff[1082]);
1169*1b481fc3SMaciej Żenczykowski 
1170*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1171*1b481fc3SMaciej Żenczykowski 			"0x02F18: RIC_DW2     (Rx Desc Hand. Mem Read Data 2)  0x%08X\n",
1172*1b481fc3SMaciej Żenczykowski 			regs_buff[1083]);
1173*1b481fc3SMaciej Żenczykowski 
1174*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1175*1b481fc3SMaciej Żenczykowski 			"0x02F1C: RIC_DW3     (Rx Desc Hand. Mem Read Data 3)  0x%08X\n",
1176*1b481fc3SMaciej Żenczykowski 			regs_buff[1084]);
1177*1b481fc3SMaciej Żenczykowski 	}
1178*1b481fc3SMaciej Żenczykowski 
1179*1b481fc3SMaciej Żenczykowski 	if (mac_type < ixgbe_mac_X540)
1180*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1181*1b481fc3SMaciej Żenczykowski 			"0x02F20: RDPROBE     (Rx Probe Mode Status)           0x%08X\n",
1182*1b481fc3SMaciej Żenczykowski 			regs_buff[1085]);
1183*1b481fc3SMaciej Żenczykowski 
1184*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
1185*1b481fc3SMaciej Żenczykowski 		"0x07C20: TDSTATCTL   (Tx DMA Statistic Control)       0x%08X\n",
1186*1b481fc3SMaciej Żenczykowski 		regs_buff[1086]);
1187*1b481fc3SMaciej Żenczykowski 
1188*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 8; i++)
1189*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1190*1b481fc3SMaciej Żenczykowski 		"0x%05X: TDSTAT%d     (Tx DMA Statistics %d)            0x%08X\n",
1191*1b481fc3SMaciej Żenczykowski 		0x07C00 + (4 * i), i, i, regs_buff[1087 + i]);
1192*1b481fc3SMaciej Żenczykowski 
1193*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
1194*1b481fc3SMaciej Żenczykowski 		"0x07F08: TDHMPN      (Tx Desc Handler Mem Page Num)   0x%08X\n",
1195*1b481fc3SMaciej Żenczykowski 		regs_buff[1095]);
1196*1b481fc3SMaciej Żenczykowski 
1197*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 4; i++)
1198*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1199*1b481fc3SMaciej Żenczykowski 			"0x%05X: TIC_DW%d     (Tx Desc Hand. Mem Read Data %d)  0x%08X\n",
1200*1b481fc3SMaciej Żenczykowski 			0x07F10 + (4 * i), i, i, regs_buff[1096 + i]);
1201*1b481fc3SMaciej Żenczykowski 
1202*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
1203*1b481fc3SMaciej Żenczykowski 		"0x07F20: TDPROBE     (Tx Probe Mode Status)           0x%08X\n",
1204*1b481fc3SMaciej Żenczykowski 		regs_buff[1100]);
1205*1b481fc3SMaciej Żenczykowski 
1206*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
1207*1b481fc3SMaciej Żenczykowski 		"0x0C600: TXBUFCTRL   (TX Buffer Access Control)       0x%08X\n",
1208*1b481fc3SMaciej Żenczykowski 		regs_buff[1101]);
1209*1b481fc3SMaciej Żenczykowski 
1210*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 4; i++)
1211*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1212*1b481fc3SMaciej Żenczykowski 			"0x%05X: TXBUFDATA%d  (TX Buffer DATA %d)               0x%08X\n",
1213*1b481fc3SMaciej Żenczykowski 			0x0C610 + (4 * i), i, i, regs_buff[1102 + i]);
1214*1b481fc3SMaciej Żenczykowski 
1215*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
1216*1b481fc3SMaciej Żenczykowski 		"0x03600: RXBUFCTRL   (RX Buffer Access Control)       0x%08X\n",
1217*1b481fc3SMaciej Żenczykowski 		regs_buff[1106]);
1218*1b481fc3SMaciej Żenczykowski 
1219*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 4; i++)
1220*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1221*1b481fc3SMaciej Żenczykowski 			"0x%05X: RXBUFDATA%d  (RX Buffer DATA %d)               0x%08X\n",
1222*1b481fc3SMaciej Żenczykowski 			0x03610 + (4 * i), i, i, regs_buff[1107 + i]);
1223*1b481fc3SMaciej Żenczykowski 
1224*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < 8; i++)
1225*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1226*1b481fc3SMaciej Żenczykowski 		"0x%05X: PCIE_DIAG%d  (PCIe Diagnostic %d)              0x%08X\n",
1227*1b481fc3SMaciej Żenczykowski 		0x11090 + (4 * i), i, i, regs_buff[1111 + i]);
1228*1b481fc3SMaciej Żenczykowski 
1229*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
1230*1b481fc3SMaciej Żenczykowski 		"0x050A4: RFVAL       (Receive Filter Validation)      0x%08X\n",
1231*1b481fc3SMaciej Żenczykowski 		regs_buff[1119]);
1232*1b481fc3SMaciej Żenczykowski 
1233*1b481fc3SMaciej Żenczykowski 	if (mac_type < ixgbe_mac_X540) {
1234*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1235*1b481fc3SMaciej Żenczykowski 			"0x042B8: MDFTC1      (MAC DFT Control 1)              0x%08X\n",
1236*1b481fc3SMaciej Żenczykowski 			regs_buff[1120]);
1237*1b481fc3SMaciej Żenczykowski 
1238*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1239*1b481fc3SMaciej Żenczykowski 			"0x042C0: MDFTC2      (MAC DFT Control 2)              0x%08X\n",
1240*1b481fc3SMaciej Żenczykowski 			regs_buff[1121]);
1241*1b481fc3SMaciej Żenczykowski 
1242*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1243*1b481fc3SMaciej Żenczykowski 			"0x042C4: MDFTFIFO1   (MAC DFT FIFO 1)                 0x%08X\n",
1244*1b481fc3SMaciej Żenczykowski 			regs_buff[1122]);
1245*1b481fc3SMaciej Żenczykowski 
1246*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1247*1b481fc3SMaciej Żenczykowski 			"0x042C8: MDFTFIFO2   (MAC DFT FIFO 2)                 0x%08X\n",
1248*1b481fc3SMaciej Żenczykowski 			regs_buff[1123]);
1249*1b481fc3SMaciej Żenczykowski 
1250*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1251*1b481fc3SMaciej Żenczykowski 			"0x042CC: MDFTS       (MAC DFT Status)                 0x%08X\n",
1252*1b481fc3SMaciej Żenczykowski 			regs_buff[1124]);
1253*1b481fc3SMaciej Żenczykowski 	}
1254*1b481fc3SMaciej Żenczykowski 
1255*1b481fc3SMaciej Żenczykowski 	if (mac_type == ixgbe_mac_82598EB) {
1256*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1257*1b481fc3SMaciej Żenczykowski 			"0x1106C: PCIEECCCTL  (PCIe ECC Control)               0x%08X\n",
1258*1b481fc3SMaciej Żenczykowski 			regs_buff[1125]);
1259*1b481fc3SMaciej Żenczykowski 
1260*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1261*1b481fc3SMaciej Żenczykowski 			"0x0C300: PBTXECC     (Packet Buffer Tx ECC)           0x%08X\n",
1262*1b481fc3SMaciej Żenczykowski 			regs_buff[1126]);
1263*1b481fc3SMaciej Żenczykowski 
1264*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1265*1b481fc3SMaciej Żenczykowski 			"0x03300: PBRXECC     (Packet Buffer Rx ECC)           0x%08X\n",
1266*1b481fc3SMaciej Żenczykowski 			regs_buff[1127]);
1267*1b481fc3SMaciej Żenczykowski 	}
1268*1b481fc3SMaciej Żenczykowski 
1269*1b481fc3SMaciej Żenczykowski 	if (regs_buff_len > 1139 && mac_type != ixgbe_mac_82598EB) {
1270*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1271*1b481fc3SMaciej Żenczykowski 			"0x08800: SECTXCTRL   (Security Tx Control)            0x%08X\n",
1272*1b481fc3SMaciej Żenczykowski 			regs_buff[1139]);
1273*1b481fc3SMaciej Żenczykowski 
1274*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1275*1b481fc3SMaciej Żenczykowski 			"0x08804: SECTXSTAT   (Security Tx Status)             0x%08X\n",
1276*1b481fc3SMaciej Żenczykowski 			regs_buff[1140]);
1277*1b481fc3SMaciej Żenczykowski 
1278*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1279*1b481fc3SMaciej Żenczykowski 			"0x08808: SECTXBUFFAF (Security Tx Buffer Almost Full) 0x%08X\n",
1280*1b481fc3SMaciej Żenczykowski 			regs_buff[1141]);
1281*1b481fc3SMaciej Żenczykowski 
1282*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1283*1b481fc3SMaciej Żenczykowski 			"0x08800: SECTXMINIFG (Security Tx Buffer Minimum IFG) 0x%08X\n",
1284*1b481fc3SMaciej Żenczykowski 			regs_buff[1142]);
1285*1b481fc3SMaciej Żenczykowski 
1286*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1287*1b481fc3SMaciej Żenczykowski 			"0x08800: SECRXCTRL   (Security Rx Control)            0x%08X\n",
1288*1b481fc3SMaciej Żenczykowski 			regs_buff[1143]);
1289*1b481fc3SMaciej Żenczykowski 
1290*1b481fc3SMaciej Żenczykowski 		fprintf(stdout,
1291*1b481fc3SMaciej Żenczykowski 			"0x08800: SECRXSTAT   (Security Rx Status)             0x%08X\n",
1292*1b481fc3SMaciej Żenczykowski 			regs_buff[1144]);
1293*1b481fc3SMaciej Żenczykowski 	}
1294*1b481fc3SMaciej Żenczykowski 
1295*1b481fc3SMaciej Żenczykowski 	return 0;
1296*1b481fc3SMaciej Żenczykowski }
1297