xref: /aosp_15_r20/external/ethtool/fjes.c (revision 1b481fc3bb1b45d4cf28d1ec12969dc1055f555d)
1*1b481fc3SMaciej Żenczykowski /* Copyright (c) 2016 FUJITSU LIMITED */
2*1b481fc3SMaciej Żenczykowski #include <stdio.h>
3*1b481fc3SMaciej Żenczykowski #include "internal.h"
4*1b481fc3SMaciej Żenczykowski 
fjes_dump_regs(struct ethtool_drvinfo * info __maybe_unused,struct ethtool_regs * regs)5*1b481fc3SMaciej Żenczykowski int fjes_dump_regs(struct ethtool_drvinfo *info __maybe_unused,
6*1b481fc3SMaciej Żenczykowski 		   struct ethtool_regs *regs)
7*1b481fc3SMaciej Żenczykowski {
8*1b481fc3SMaciej Żenczykowski 	u32 *regs_buff = (u32 *)regs->data;
9*1b481fc3SMaciej Żenczykowski 
10*1b481fc3SMaciej Żenczykowski 	if (regs->version != 1)
11*1b481fc3SMaciej Żenczykowski 		return -1;
12*1b481fc3SMaciej Żenczykowski 
13*1b481fc3SMaciej Żenczykowski 	/* Information registers */
14*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
15*1b481fc3SMaciej Żenczykowski 		"0x0000: OWNER_EPID    (Owner EPID)                       0x%08X\n",
16*1b481fc3SMaciej Żenczykowski 		regs_buff[0]);
17*1b481fc3SMaciej Żenczykowski 
18*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
19*1b481fc3SMaciej Żenczykowski 		"0x0004: MAX_EP        (Maximum EP)                       0x%08X\n",
20*1b481fc3SMaciej Żenczykowski 		regs_buff[1]);
21*1b481fc3SMaciej Żenczykowski 
22*1b481fc3SMaciej Żenczykowski 	/* Device Control registers */
23*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
24*1b481fc3SMaciej Żenczykowski 		"0x0010: DCTL          (Device Control)                   0x%08X\n",
25*1b481fc3SMaciej Żenczykowski 		regs_buff[4]);
26*1b481fc3SMaciej Żenczykowski 
27*1b481fc3SMaciej Żenczykowski 	/* Command Control registers */
28*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
29*1b481fc3SMaciej Żenczykowski 		"0x0020: CR            (Command request)                  0x%08X\n",
30*1b481fc3SMaciej Żenczykowski 		regs_buff[8]);
31*1b481fc3SMaciej Żenczykowski 
32*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
33*1b481fc3SMaciej Żenczykowski 		"0x0024: CS            (Command status)                   0x%08X\n",
34*1b481fc3SMaciej Żenczykowski 		regs_buff[9]);
35*1b481fc3SMaciej Żenczykowski 
36*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
37*1b481fc3SMaciej Żenczykowski 		"0x0028: SHSTSAL       (Share status address Low)         0x%08X\n",
38*1b481fc3SMaciej Żenczykowski 		regs_buff[10]);
39*1b481fc3SMaciej Żenczykowski 
40*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
41*1b481fc3SMaciej Żenczykowski 		"0x002C: SHSTSAH       (Share status address High)        0x%08X\n",
42*1b481fc3SMaciej Żenczykowski 		regs_buff[11]);
43*1b481fc3SMaciej Żenczykowski 
44*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
45*1b481fc3SMaciej Żenczykowski 		"0x0034: REQBL         (Request Buffer length)            0x%08X\n",
46*1b481fc3SMaciej Żenczykowski 		regs_buff[13]);
47*1b481fc3SMaciej Żenczykowski 
48*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
49*1b481fc3SMaciej Żenczykowski 		"0x0038: REQBAL        (Request Buffer Address Low)       0x%08X\n",
50*1b481fc3SMaciej Żenczykowski 		regs_buff[14]);
51*1b481fc3SMaciej Żenczykowski 
52*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
53*1b481fc3SMaciej Żenczykowski 		"0x003C: REQBAH        (Request Buffer Address High)      0x%08X\n",
54*1b481fc3SMaciej Żenczykowski 		regs_buff[15]);
55*1b481fc3SMaciej Żenczykowski 
56*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
57*1b481fc3SMaciej Żenczykowski 		"0x0044: RESPBL        (Response Buffer Length)           0x%08X\n",
58*1b481fc3SMaciej Żenczykowski 		regs_buff[17]);
59*1b481fc3SMaciej Żenczykowski 
60*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
61*1b481fc3SMaciej Żenczykowski 		"0x0048: RESPBAL       (Response Buffer Address Low)      0x%08X\n",
62*1b481fc3SMaciej Żenczykowski 		regs_buff[18]);
63*1b481fc3SMaciej Żenczykowski 
64*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
65*1b481fc3SMaciej Żenczykowski 		"0x004C: RESPBAH       (Response Buffer Address High)     0x%08X\n",
66*1b481fc3SMaciej Żenczykowski 		regs_buff[19]);
67*1b481fc3SMaciej Żenczykowski 
68*1b481fc3SMaciej Żenczykowski 	/* Interrupt Control registers */
69*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
70*1b481fc3SMaciej Żenczykowski 		"0x0080: IS            (Interrupt status)                 0x%08X\n",
71*1b481fc3SMaciej Żenczykowski 		regs_buff[32]);
72*1b481fc3SMaciej Żenczykowski 
73*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
74*1b481fc3SMaciej Żenczykowski 		"0x0084: IMS           (Interrupt mask set)               0x%08X\n",
75*1b481fc3SMaciej Żenczykowski 		regs_buff[33]);
76*1b481fc3SMaciej Żenczykowski 
77*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
78*1b481fc3SMaciej Żenczykowski 		"0x0088: IMC           (Interrupt mask clear)             0x%08X\n",
79*1b481fc3SMaciej Żenczykowski 		regs_buff[34]);
80*1b481fc3SMaciej Żenczykowski 
81*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
82*1b481fc3SMaciej Żenczykowski 		"0x008C: IG            (Interrupt generator)              0x%08X\n",
83*1b481fc3SMaciej Żenczykowski 		regs_buff[35]);
84*1b481fc3SMaciej Żenczykowski 
85*1b481fc3SMaciej Żenczykowski 	fprintf(stdout,
86*1b481fc3SMaciej Żenczykowski 		"0x0090: ICTL          (Interrupt control)                0x%08X\n",
87*1b481fc3SMaciej Żenczykowski 		regs_buff[36]);
88*1b481fc3SMaciej Żenczykowski 
89*1b481fc3SMaciej Żenczykowski 	return 0;
90*1b481fc3SMaciej Żenczykowski }
91