1*1b481fc3SMaciej Żenczykowski /* Copyright (c) 2013 Intel Corporation */
2*1b481fc3SMaciej Żenczykowski #include <stdio.h>
3*1b481fc3SMaciej Żenczykowski #include "internal.h"
4*1b481fc3SMaciej Żenczykowski
5*1b481fc3SMaciej Żenczykowski int
ixgbevf_dump_regs(struct ethtool_drvinfo * info __maybe_unused,struct ethtool_regs * regs)6*1b481fc3SMaciej Żenczykowski ixgbevf_dump_regs(struct ethtool_drvinfo *info __maybe_unused,
7*1b481fc3SMaciej Żenczykowski struct ethtool_regs *regs)
8*1b481fc3SMaciej Żenczykowski {
9*1b481fc3SMaciej Żenczykowski u32 *regs_buff = (u32 *)regs->data;
10*1b481fc3SMaciej Żenczykowski u8 version = (u8)(regs->version >> 24);
11*1b481fc3SMaciej Żenczykowski u8 i;
12*1b481fc3SMaciej Żenczykowski
13*1b481fc3SMaciej Żenczykowski if (version == 0)
14*1b481fc3SMaciej Żenczykowski return -1;
15*1b481fc3SMaciej Żenczykowski
16*1b481fc3SMaciej Żenczykowski fprintf(stdout,
17*1b481fc3SMaciej Żenczykowski "0x00000: VFCTRL (VF Control Register) (Write Only) N/A\n");
18*1b481fc3SMaciej Żenczykowski
19*1b481fc3SMaciej Żenczykowski fprintf(stdout,
20*1b481fc3SMaciej Żenczykowski "0x00008: VFSTATUS (VF Status Register) 0x%08X\n",
21*1b481fc3SMaciej Żenczykowski regs_buff[1]);
22*1b481fc3SMaciej Żenczykowski
23*1b481fc3SMaciej Żenczykowski fprintf(stdout,
24*1b481fc3SMaciej Żenczykowski "0x00010: VFLINKS (VF Link Status Register) 0x%08X\n",
25*1b481fc3SMaciej Żenczykowski regs_buff[2]);
26*1b481fc3SMaciej Żenczykowski
27*1b481fc3SMaciej Żenczykowski fprintf(stdout,
28*1b481fc3SMaciej Żenczykowski "0x03190: VFRXMEMWRAP (Rx Packet Buffer Flush Detect) 0x%08X\n",
29*1b481fc3SMaciej Żenczykowski regs_buff[3]);
30*1b481fc3SMaciej Żenczykowski
31*1b481fc3SMaciej Żenczykowski fprintf(stdout,
32*1b481fc3SMaciej Żenczykowski "0x00048: VFFRTIMER (VF Free Running Timer) 0x%08X\n",
33*1b481fc3SMaciej Żenczykowski regs_buff[4]);
34*1b481fc3SMaciej Żenczykowski
35*1b481fc3SMaciej Żenczykowski fprintf(stdout,
36*1b481fc3SMaciej Żenczykowski "0x00100: VFEICR (VF Extended Interrupt Cause) 0x%08X\n",
37*1b481fc3SMaciej Żenczykowski regs_buff[5]);
38*1b481fc3SMaciej Żenczykowski
39*1b481fc3SMaciej Żenczykowski fprintf(stdout,
40*1b481fc3SMaciej Żenczykowski "0x00104: VFEICS (VF Extended Interrupt Cause Set) 0x%08X\n",
41*1b481fc3SMaciej Żenczykowski regs_buff[6]);
42*1b481fc3SMaciej Żenczykowski
43*1b481fc3SMaciej Żenczykowski fprintf(stdout,
44*1b481fc3SMaciej Żenczykowski "0x00108: VFEIMS (VF Extended Interrupt Mask Set) 0x%08X\n",
45*1b481fc3SMaciej Żenczykowski regs_buff[7]);
46*1b481fc3SMaciej Żenczykowski
47*1b481fc3SMaciej Żenczykowski fprintf(stdout,
48*1b481fc3SMaciej Żenczykowski "0x0010C: VFEIMC (VF Extended Interrupt Mask Clear) 0x%08X\n",
49*1b481fc3SMaciej Żenczykowski regs_buff[8]);
50*1b481fc3SMaciej Żenczykowski
51*1b481fc3SMaciej Żenczykowski fprintf(stdout,
52*1b481fc3SMaciej Żenczykowski "0x00110: VFEIAC (VF Extended Interrupt Auto Clear) 0x%08X\n",
53*1b481fc3SMaciej Żenczykowski regs_buff[9]);
54*1b481fc3SMaciej Żenczykowski
55*1b481fc3SMaciej Żenczykowski fprintf(stdout,
56*1b481fc3SMaciej Żenczykowski "0x00114: VFEIAM (VF Extended Interrupt Auto Mask) 0x%08X\n",
57*1b481fc3SMaciej Żenczykowski regs_buff[10]);
58*1b481fc3SMaciej Żenczykowski
59*1b481fc3SMaciej Żenczykowski fprintf(stdout,
60*1b481fc3SMaciej Żenczykowski "0x00820: VFEITR(0) (VF Extended Interrupt Throttle) 0x%08X\n",
61*1b481fc3SMaciej Żenczykowski regs_buff[11]);
62*1b481fc3SMaciej Żenczykowski
63*1b481fc3SMaciej Żenczykowski fprintf(stdout,
64*1b481fc3SMaciej Żenczykowski "0x00120: VFIVAR(0) (VF Interrupt Vector Allocation) 0x%08X\n",
65*1b481fc3SMaciej Żenczykowski regs_buff[12]);
66*1b481fc3SMaciej Żenczykowski
67*1b481fc3SMaciej Żenczykowski fprintf(stdout,
68*1b481fc3SMaciej Żenczykowski "0x00140: VFIVAR_MISC (VF Interrupt Vector Misc) 0x%08X\n",
69*1b481fc3SMaciej Żenczykowski regs_buff[13]);
70*1b481fc3SMaciej Żenczykowski
71*1b481fc3SMaciej Żenczykowski fprintf(stdout,
72*1b481fc3SMaciej Żenczykowski "0x00104: VFPSRTYPE (VF Replication Packet Split Type) 0x%08X\n",
73*1b481fc3SMaciej Żenczykowski regs_buff[28]);
74*1b481fc3SMaciej Żenczykowski
75*1b481fc3SMaciej Żenczykowski for (i = 0; i < 2; i++)
76*1b481fc3SMaciej Żenczykowski fprintf(stdout,
77*1b481fc3SMaciej Żenczykowski "0x%05x: VFRDBAL(%d) (VF Rx Desc. Base Addr Low %d) 0x%08X\n",
78*1b481fc3SMaciej Żenczykowski 0x1000 + 0x40*i,
79*1b481fc3SMaciej Żenczykowski i, i,
80*1b481fc3SMaciej Żenczykowski regs_buff[14+i]);
81*1b481fc3SMaciej Żenczykowski
82*1b481fc3SMaciej Żenczykowski for (i = 0; i < 2; i++)
83*1b481fc3SMaciej Żenczykowski fprintf(stdout,
84*1b481fc3SMaciej Żenczykowski "0x%05x: VFRDBAH(%d) (VF Rx Desc. Base Addr High %d) 0x%08X\n",
85*1b481fc3SMaciej Żenczykowski 0x1004 + 0x40*i,
86*1b481fc3SMaciej Żenczykowski i, i,
87*1b481fc3SMaciej Żenczykowski regs_buff[16+i]);
88*1b481fc3SMaciej Żenczykowski
89*1b481fc3SMaciej Żenczykowski for (i = 0; i < 2; i++)
90*1b481fc3SMaciej Żenczykowski fprintf(stdout,
91*1b481fc3SMaciej Żenczykowski "0x%05x: VFRDLEN(%d) (VF Rx Desc. Length %d) 0x%08X\n",
92*1b481fc3SMaciej Żenczykowski 0x1008 + 0x40*i,
93*1b481fc3SMaciej Żenczykowski i, i,
94*1b481fc3SMaciej Żenczykowski regs_buff[18+i]);
95*1b481fc3SMaciej Żenczykowski
96*1b481fc3SMaciej Żenczykowski for (i = 0; i < 2; i++)
97*1b481fc3SMaciej Żenczykowski fprintf(stdout,
98*1b481fc3SMaciej Żenczykowski "0x%05x: VFRDH(%d) (VF Rx Desc. Head %d) 0x%08X\n",
99*1b481fc3SMaciej Żenczykowski 0x1010 + 0x40*i,
100*1b481fc3SMaciej Żenczykowski i, i,
101*1b481fc3SMaciej Żenczykowski regs_buff[20+i]);
102*1b481fc3SMaciej Żenczykowski
103*1b481fc3SMaciej Żenczykowski for (i = 0; i < 2; i++)
104*1b481fc3SMaciej Żenczykowski fprintf(stdout,
105*1b481fc3SMaciej Żenczykowski "0x%05x: VFRDT(%d) (VF Rx Desc. Tail %d) 0x%08X\n",
106*1b481fc3SMaciej Żenczykowski 0x1018 + 0x40*i,
107*1b481fc3SMaciej Żenczykowski i, i,
108*1b481fc3SMaciej Żenczykowski regs_buff[22+i]);
109*1b481fc3SMaciej Żenczykowski
110*1b481fc3SMaciej Żenczykowski for (i = 0; i < 2; i++)
111*1b481fc3SMaciej Żenczykowski fprintf(stdout,
112*1b481fc3SMaciej Żenczykowski "0x%05x: VFRDT(%d) (VF Rx Desc. Control %d), 0x%08X\n",
113*1b481fc3SMaciej Żenczykowski 0x1028 + 0x40*i,
114*1b481fc3SMaciej Żenczykowski i, i,
115*1b481fc3SMaciej Żenczykowski regs_buff[24+i]);
116*1b481fc3SMaciej Żenczykowski
117*1b481fc3SMaciej Żenczykowski for (i = 0; i < 2; i++)
118*1b481fc3SMaciej Żenczykowski fprintf(stdout,
119*1b481fc3SMaciej Żenczykowski "0x%05x: VFSRRCTL(%d) (VF Split Rx Control %d) 0x%08X\n",
120*1b481fc3SMaciej Żenczykowski 0x1014 + 0x40*i,
121*1b481fc3SMaciej Żenczykowski i, i,
122*1b481fc3SMaciej Żenczykowski regs_buff[26+i]);
123*1b481fc3SMaciej Żenczykowski
124*1b481fc3SMaciej Żenczykowski for (i = 0; i < 2; i++)
125*1b481fc3SMaciej Żenczykowski fprintf(stdout,
126*1b481fc3SMaciej Żenczykowski "0x%05x: VFTDBAL(%d) (VF Tx Desc. Base Addr Low %d) 0x%08X\n",
127*1b481fc3SMaciej Żenczykowski 0x2000 + 0x40*i,
128*1b481fc3SMaciej Żenczykowski i, i,
129*1b481fc3SMaciej Żenczykowski regs_buff[29+i]);
130*1b481fc3SMaciej Żenczykowski
131*1b481fc3SMaciej Żenczykowski for (i = 0; i < 2; i++)
132*1b481fc3SMaciej Żenczykowski fprintf(stdout,
133*1b481fc3SMaciej Żenczykowski "0x%05x: VFTDBAH(%d) (VF Tx Desc. Base Addr High %d) 0x%08X\n",
134*1b481fc3SMaciej Żenczykowski 0x2004 + 0x40*i,
135*1b481fc3SMaciej Żenczykowski i, i,
136*1b481fc3SMaciej Żenczykowski regs_buff[31+i]);
137*1b481fc3SMaciej Żenczykowski
138*1b481fc3SMaciej Żenczykowski for (i = 0; i < 2; i++)
139*1b481fc3SMaciej Żenczykowski fprintf(stdout,
140*1b481fc3SMaciej Żenczykowski "0x%05x: VFTDLEN(%d) (VF Tx Desc. Length %d) 0x%08X\n",
141*1b481fc3SMaciej Żenczykowski 0x2008 + 0x40*i,
142*1b481fc3SMaciej Żenczykowski i, i,
143*1b481fc3SMaciej Żenczykowski regs_buff[33+i]);
144*1b481fc3SMaciej Żenczykowski
145*1b481fc3SMaciej Żenczykowski for (i = 0; i < 2; i++)
146*1b481fc3SMaciej Żenczykowski fprintf(stdout,
147*1b481fc3SMaciej Żenczykowski "0x%05x: VFTDH(%d) (VF Tx Desc. Head %d) 0x%08X\n",
148*1b481fc3SMaciej Żenczykowski 0x2010 + 0x40*i,
149*1b481fc3SMaciej Żenczykowski i, i,
150*1b481fc3SMaciej Żenczykowski regs_buff[35+i]);
151*1b481fc3SMaciej Żenczykowski
152*1b481fc3SMaciej Żenczykowski for (i = 0; i < 2; i++)
153*1b481fc3SMaciej Żenczykowski fprintf(stdout,
154*1b481fc3SMaciej Żenczykowski "0x%05x: VFTDT(%d) (VF Tx Desc. Tail %d) 0x%08X\n",
155*1b481fc3SMaciej Żenczykowski 0x2018 + 0x40*i,
156*1b481fc3SMaciej Żenczykowski i, i,
157*1b481fc3SMaciej Żenczykowski regs_buff[37+i]);
158*1b481fc3SMaciej Żenczykowski
159*1b481fc3SMaciej Żenczykowski for (i = 0; i < 2; i++)
160*1b481fc3SMaciej Żenczykowski fprintf(stdout,
161*1b481fc3SMaciej Żenczykowski "0x%05x: VFTDT(%d) (VF Tx Desc. Control %d) 0x%08X\n",
162*1b481fc3SMaciej Żenczykowski 0x2028 + 0x40*i,
163*1b481fc3SMaciej Żenczykowski i, i,
164*1b481fc3SMaciej Żenczykowski regs_buff[39+i]);
165*1b481fc3SMaciej Żenczykowski
166*1b481fc3SMaciej Żenczykowski for (i = 0; i < 2; i++)
167*1b481fc3SMaciej Żenczykowski fprintf(stdout,
168*1b481fc3SMaciej Żenczykowski "0x%05x: VFTDWBAL(%d) (VF Tx Desc. Write Back Addr Lo %d) 0x%08X\n",
169*1b481fc3SMaciej Żenczykowski 0x2038 + 0x40*i,
170*1b481fc3SMaciej Żenczykowski i, i,
171*1b481fc3SMaciej Żenczykowski regs_buff[41+i]);
172*1b481fc3SMaciej Żenczykowski
173*1b481fc3SMaciej Żenczykowski for (i = 0; i < 2; i++)
174*1b481fc3SMaciej Żenczykowski fprintf(stdout,
175*1b481fc3SMaciej Żenczykowski "0x%05x: VFTDWBAH(%d) (VF Tx Desc. Write Back Addr Hi %d) 0x%08X\n",
176*1b481fc3SMaciej Żenczykowski 0x203C + 0x40*i,
177*1b481fc3SMaciej Żenczykowski i, i,
178*1b481fc3SMaciej Żenczykowski regs_buff[43+i]);
179*1b481fc3SMaciej Żenczykowski
180*1b481fc3SMaciej Żenczykowski return 0;
181*1b481fc3SMaciej Żenczykowski }
182