xref: /aosp_15_r20/external/ethtool/tg3.c (revision 1b481fc3bb1b45d4cf28d1ec12969dc1055f555d)
1*1b481fc3SMaciej Żenczykowski #include <stdio.h>
2*1b481fc3SMaciej Żenczykowski #include <string.h>
3*1b481fc3SMaciej Żenczykowski #include "internal.h"
4*1b481fc3SMaciej Żenczykowski 
5*1b481fc3SMaciej Żenczykowski #define TG3_MAGIC 0x669955aa
6*1b481fc3SMaciej Żenczykowski 
tg3_dump_eeprom(struct ethtool_drvinfo * info __maybe_unused,struct ethtool_eeprom * ee)7*1b481fc3SMaciej Żenczykowski int tg3_dump_eeprom(struct ethtool_drvinfo *info __maybe_unused,
8*1b481fc3SMaciej Żenczykowski 		    struct ethtool_eeprom *ee)
9*1b481fc3SMaciej Żenczykowski {
10*1b481fc3SMaciej Żenczykowski 	unsigned int i;
11*1b481fc3SMaciej Żenczykowski 
12*1b481fc3SMaciej Żenczykowski 	if (ee->magic != TG3_MAGIC) {
13*1b481fc3SMaciej Żenczykowski 		fprintf(stderr, "Magic number 0x%08x does not match 0x%08x\n",
14*1b481fc3SMaciej Żenczykowski 			ee->magic, TG3_MAGIC);
15*1b481fc3SMaciej Żenczykowski 		return -1;
16*1b481fc3SMaciej Żenczykowski 	}
17*1b481fc3SMaciej Żenczykowski 
18*1b481fc3SMaciej Żenczykowski 	fprintf(stdout, "Address   \tData\n");
19*1b481fc3SMaciej Żenczykowski 	fprintf(stdout, "----------\t----\n");
20*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < ee->len; i++)
21*1b481fc3SMaciej Żenczykowski 		fprintf(stdout, "0x%08x\t0x%02x\n", i + ee->offset, ee->data[i]);
22*1b481fc3SMaciej Żenczykowski 
23*1b481fc3SMaciej Żenczykowski 	return 0;
24*1b481fc3SMaciej Żenczykowski }
25*1b481fc3SMaciej Żenczykowski 
tg3_dump_regs(struct ethtool_drvinfo * info __maybe_unused,struct ethtool_regs * regs)26*1b481fc3SMaciej Żenczykowski int tg3_dump_regs(struct ethtool_drvinfo *info __maybe_unused,
27*1b481fc3SMaciej Żenczykowski 		  struct ethtool_regs *regs)
28*1b481fc3SMaciej Żenczykowski {
29*1b481fc3SMaciej Żenczykowski 	unsigned int i;
30*1b481fc3SMaciej Żenczykowski 	u32 reg;
31*1b481fc3SMaciej Żenczykowski 
32*1b481fc3SMaciej Żenczykowski 	fprintf(stdout, "Offset\tValue\n");
33*1b481fc3SMaciej Żenczykowski 	fprintf(stdout, "------\t----------\n");
34*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < regs->len; i += sizeof(reg)) {
35*1b481fc3SMaciej Żenczykowski 		memcpy(&reg, &regs->data[i], sizeof(reg));
36*1b481fc3SMaciej Żenczykowski 		if (reg)
37*1b481fc3SMaciej Żenczykowski 			fprintf(stdout, "0x%04x\t0x%08x\n", i, reg);
38*1b481fc3SMaciej Żenczykowski 
39*1b481fc3SMaciej Żenczykowski 	}
40*1b481fc3SMaciej Żenczykowski 	fprintf(stdout, "\n");
41*1b481fc3SMaciej Żenczykowski 	return 0;
42*1b481fc3SMaciej Żenczykowski }
43