All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Hemminger <shemminger@osdl.org>
To: Jeff Garzik <jgarzik@pobox.com>
Cc: netdev@vger.kernel.org
Subject: [PATCH 1/4] ethtool: move skge.c to marvell.c
Date: Tue, 26 Sep 2006 13:08:25 -0700	[thread overview]
Message-ID: <20060926130825.7a65979d@freekitty> (raw)
In-Reply-To: <451AF4B1.2000208@pobox.com>


The code will be common for skge and sky2

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
---
 Makefile.am |    2 -
 marvell.c   |  189 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 skge.c      |  189 -----------------------------------------------------------
 3 files changed, 190 insertions(+), 190 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index c78eecf..97ad512 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -7,7 +7,7 @@ sbin_PROGRAMS = ethtool
 ethtool_SOURCES = ethtool.c ethtool-copy.h ethtool-util.h	\
 		  amd8111e.c de2104x.c e100.c e1000.c		\
 		  fec_8xx.c ibm_emac.c ixgb.c natsemi.c		\
-		  pcnet32.c realtek.c tg3.c skge.c
+		  pcnet32.c realtek.c tg3.c marvell.c
 
 dist-hook:
 	cp $(top_srcdir)/ethtool.spec $(distdir)
diff --git a/marvell.c b/marvell.c
new file mode 100644
index 0000000..23282f5
--- /dev/null
+++ b/marvell.c
@@ -0,0 +1,189 @@
+/*
+ * Copyright (C) 2004
+ *  Stephen Hemminger <shemminger@osdl.org>
+ */
+
+#include <stdio.h>
+
+#include "ethtool-util.h"
+
+static void dump_addr(int n, const u8 *a)
+{
+	int i;
+
+	printf("Addr %d            ", n);
+	for (i = 0; i < 6; i++)
+		printf("%02X%c", a[i], i == 5 ? '\n' : ' ');
+}
+
+static void dump_timer(const char *name, const void *p)
+{
+	const u8 *a = p;
+	const u32 *r = p;
+
+	printf("%s\n", name);
+	printf("\tInit 0x%08X Value 0x%08X\n", r[0], r[1]);
+	printf("\tTest 0x%02X       Control 0x%02X\n", a[8], a[9]);
+}
+
+static void dump_queue(const char *name, const void *a, int rx)
+{
+	struct desc {
+		u_int32_t		ctl;
+		u_int32_t		next;
+		u_int32_t		data_lo;
+		u_int32_t		data_hi;
+		u_int32_t		status;
+		u_int32_t		timestamp;
+		u_int16_t		csum2;
+		u_int16_t		csum1;
+		u_int16_t		csum2_start;
+		u_int16_t		csum1_start;
+		u_int32_t		addr_lo;
+		u_int32_t		addr_hi;
+		u_int32_t		count_lo;
+		u_int32_t		count_hi;
+		u_int32_t               byte_count;
+		u_int32_t               csr;
+		u_int32_t               flag;
+	};
+	const struct desc *d = a;
+
+	printf("\n%s\n", name);
+	printf("---------------\n");
+	printf("Descriptor Address       0x%08X%08X\n",
+	       d->addr_hi, d->addr_lo);
+	printf("Address Counter          0x%08X%08X\n",
+	       d->count_hi, d->count_lo);
+	printf("Current Byte Counter             %d\n", d->byte_count);
+	printf("BMU Control/Status               0x%08X\n", d->csr);
+	printf("Flag & FIFO Address              0x%08X\n", d->flag);
+	printf("\n");
+	printf("Control                          0x%08X\n", d->ctl);
+	printf("Next                             0x%08X\n", d->next);
+	printf("Data                     0x%08X%08X\n",
+	       d->data_hi, d->data_lo);
+	printf("Status                           0x%08X\n", d->status);
+	printf("Timestamp                        0x%08X\n", d->timestamp);
+	if (rx) {
+		printf("Csum1      Offset %4d Positon   %d\n",
+		       d->csum1, d->csum1_start);
+		printf("Csum2      Offset %4d Positon   %d\n",
+		       d->csum2, d->csum2_start);
+	} else
+		printf("Csum Start 0x%04X Pos %4d Write %d\n",
+		       d->csum1, d->csum2_start, d->csum1_start);
+
+}
+
+static void dump_ram(const char *name, const void *p)
+{
+	const u32 *r = p;
+
+	printf("\n%s\n", name);
+	printf("---------------\n");
+	printf("Start Address                    0x%08X\n", r[0]);
+	printf("End Address                      0x%08X\n", r[1]);
+	printf("Write Pointer                    0x%08X\n", r[2]);
+	printf("Read Pointer                     0x%08X\n", r[3]);
+	printf("Upper Threshold/Pause Packets    0x%08X\n", r[4]);
+	printf("Lower Threshold/Pause Packets    0x%08X\n", r[5]);
+	printf("Upper Threshold/High Priority    0x%08X\n", r[6]);
+	printf("Lower Threshold/High Priority    0x%08X\n", r[7]);
+	printf("Packet Counter                   0x%08X\n", r[8]);
+	printf("Level                            0x%08X\n", r[9]);
+	printf("Test                             0x%08X\n", r[10]);
+}
+
+static void dump_fifo(const char *name, const void *p)
+{
+	const u32 *r = p;
+
+	printf("\n%s\n", name);
+	printf("---------------\n");
+	printf("End Address                      0x%08X\n", r[0]);
+  	printf("Write Pointer                    0x%08X\n", r[1]);
+  	printf("Read Pointer                     0x%08X\n", r[2]);
+  	printf("Packet Counter                   0x%08X\n", r[3]);
+  	printf("Level                            0x%08X\n", r[4]);
+  	printf("Control                          0x%08X\n", r[5]);
+  	printf("Control/Test                     0x%08X\n", r[6]);
+	dump_timer("LED", p + 0x20);
+}
+
+int skge_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs)
+{
+	const u32 *r = (const u32 *) regs->data;
+	int dual = !(regs->data[0x11a] & 1);
+
+	printf("Control Registers\n");
+	printf("-----------------\n");
+
+	printf("Register Access Port             0x%08X\n", r[0]);
+	printf("LED Control/Status               0x%08X\n", r[1]);
+	printf("Interrupt Source                 0x%08X\n", r[2]);
+	printf("Interrupt Mask                   0x%08X\n", r[3]);
+	printf("Interrupt Hardware Error Source  0x%08X\n", r[4]);
+	printf("Interrupt Hardware Error Mask    0x%08X\n", r[5]);
+	printf("Special Interrupt Source         0x%08X\n", r[6]);
+
+	printf("\nBus Management Unit\n");
+	printf("-------------------\n");
+	printf("CSR Receive Queue 1              0x%08X\n", r[24]);
+	printf("CSR Sync Queue 1                 0x%08X\n", r[26]);
+	printf("CSR Async Queue 1                0x%08X\n", r[27]);
+	if (dual) {
+		printf("CSR Receive Queue 2              0x%08X\n", r[25]);
+		printf("CSR Async Queue 2                0x%08X\n", r[29]);
+		printf("CSR Sync Queue 2                 0x%08X\n", r[28]);
+	}
+
+	printf("\nMAC Address\n");
+	printf("-------------\n");
+	dump_addr(1, regs->data + 0x100);
+	dump_addr(2, regs->data + 0x108);
+	dump_addr(3, regs->data + 0x110);
+	printf("\n");
+
+	printf("Connector type                         0x%02X\n",
+	       regs->data[0x118]);
+	printf("PMD type                               0x%02X\n",
+	       regs->data[0x119]);
+	printf("Configuration                          0x%02X\n",
+	       regs->data[0x11a]);
+	printf("Chip Revision                          0x%02X\n",
+	       regs->data[0x11b]);
+
+	dump_timer("Timer", regs->data + 0x130);
+	dump_timer("IRQ Moderation", regs->data +0x140);
+	dump_timer("Blink Source", regs->data +0x170);
+
+	dump_queue("Receive Queue 1", regs->data +0x400, 1);
+	dump_queue("Sync Transmit Queue 1", regs->data +0x600, 0);
+	dump_queue("Async Transmit Queue 1", regs->data +0x680, 0);
+	if (dual) {
+		dump_queue("Receive Queue 2", regs->data +0x480, 1);
+		dump_queue("Async Transmit Queue 2", regs->data +0x780, 0);
+		dump_queue("Sync Transmit Queue 2", regs->data +0x700, 0);
+	}
+
+	dump_ram("Receive RAMbuffer 1", regs->data+0x800);
+	dump_ram("Sync Transmit RAMbuffer 1", regs->data+0xa00);
+	dump_ram("Async Transmit RAMbuffer 1", regs->data+0xa80);
+	if (dual) {
+		dump_ram("Receive RAMbuffer 2", regs->data+0x880);
+		dump_ram("Sync Transmit RAMbuffer 2", regs->data+0xb00);
+		dump_ram("Async Transmit RAMbuffer 21", regs->data+0xb80);
+	}
+
+	dump_fifo("Receive MAC FIFO 1", regs->data+0xc00);
+	dump_fifo("Transmit MAC FIFO 1", regs->data+0xd00);
+	if (dual) {
+		dump_fifo("Receive MAC FIFO 2", regs->data+0xc80);
+		dump_fifo("Transmit MAC FIFO 2", regs->data+0xd80);
+	}
+
+	dump_timer("Descriptor Poll", regs->data+0xe00);
+	return 0;
+
+}
diff --git a/skge.c b/skge.c
deleted file mode 100644
index 23282f5..0000000
--- a/skge.c
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * Copyright (C) 2004
- *  Stephen Hemminger <shemminger@osdl.org>
- */
-
-#include <stdio.h>
-
-#include "ethtool-util.h"
-
-static void dump_addr(int n, const u8 *a)
-{
-	int i;
-
-	printf("Addr %d            ", n);
-	for (i = 0; i < 6; i++)
-		printf("%02X%c", a[i], i == 5 ? '\n' : ' ');
-}
-
-static void dump_timer(const char *name, const void *p)
-{
-	const u8 *a = p;
-	const u32 *r = p;
-
-	printf("%s\n", name);
-	printf("\tInit 0x%08X Value 0x%08X\n", r[0], r[1]);
-	printf("\tTest 0x%02X       Control 0x%02X\n", a[8], a[9]);
-}
-
-static void dump_queue(const char *name, const void *a, int rx)
-{
-	struct desc {
-		u_int32_t		ctl;
-		u_int32_t		next;
-		u_int32_t		data_lo;
-		u_int32_t		data_hi;
-		u_int32_t		status;
-		u_int32_t		timestamp;
-		u_int16_t		csum2;
-		u_int16_t		csum1;
-		u_int16_t		csum2_start;
-		u_int16_t		csum1_start;
-		u_int32_t		addr_lo;
-		u_int32_t		addr_hi;
-		u_int32_t		count_lo;
-		u_int32_t		count_hi;
-		u_int32_t               byte_count;
-		u_int32_t               csr;
-		u_int32_t               flag;
-	};
-	const struct desc *d = a;
-
-	printf("\n%s\n", name);
-	printf("---------------\n");
-	printf("Descriptor Address       0x%08X%08X\n",
-	       d->addr_hi, d->addr_lo);
-	printf("Address Counter          0x%08X%08X\n",
-	       d->count_hi, d->count_lo);
-	printf("Current Byte Counter             %d\n", d->byte_count);
-	printf("BMU Control/Status               0x%08X\n", d->csr);
-	printf("Flag & FIFO Address              0x%08X\n", d->flag);
-	printf("\n");
-	printf("Control                          0x%08X\n", d->ctl);
-	printf("Next                             0x%08X\n", d->next);
-	printf("Data                     0x%08X%08X\n",
-	       d->data_hi, d->data_lo);
-	printf("Status                           0x%08X\n", d->status);
-	printf("Timestamp                        0x%08X\n", d->timestamp);
-	if (rx) {
-		printf("Csum1      Offset %4d Positon   %d\n",
-		       d->csum1, d->csum1_start);
-		printf("Csum2      Offset %4d Positon   %d\n",
-		       d->csum2, d->csum2_start);
-	} else
-		printf("Csum Start 0x%04X Pos %4d Write %d\n",
-		       d->csum1, d->csum2_start, d->csum1_start);
-
-}
-
-static void dump_ram(const char *name, const void *p)
-{
-	const u32 *r = p;
-
-	printf("\n%s\n", name);
-	printf("---------------\n");
-	printf("Start Address                    0x%08X\n", r[0]);
-	printf("End Address                      0x%08X\n", r[1]);
-	printf("Write Pointer                    0x%08X\n", r[2]);
-	printf("Read Pointer                     0x%08X\n", r[3]);
-	printf("Upper Threshold/Pause Packets    0x%08X\n", r[4]);
-	printf("Lower Threshold/Pause Packets    0x%08X\n", r[5]);
-	printf("Upper Threshold/High Priority    0x%08X\n", r[6]);
-	printf("Lower Threshold/High Priority    0x%08X\n", r[7]);
-	printf("Packet Counter                   0x%08X\n", r[8]);
-	printf("Level                            0x%08X\n", r[9]);
-	printf("Test                             0x%08X\n", r[10]);
-}
-
-static void dump_fifo(const char *name, const void *p)
-{
-	const u32 *r = p;
-
-	printf("\n%s\n", name);
-	printf("---------------\n");
-	printf("End Address                      0x%08X\n", r[0]);
-  	printf("Write Pointer                    0x%08X\n", r[1]);
-  	printf("Read Pointer                     0x%08X\n", r[2]);
-  	printf("Packet Counter                   0x%08X\n", r[3]);
-  	printf("Level                            0x%08X\n", r[4]);
-  	printf("Control                          0x%08X\n", r[5]);
-  	printf("Control/Test                     0x%08X\n", r[6]);
-	dump_timer("LED", p + 0x20);
-}
-
-int skge_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs)
-{
-	const u32 *r = (const u32 *) regs->data;
-	int dual = !(regs->data[0x11a] & 1);
-
-	printf("Control Registers\n");
-	printf("-----------------\n");
-
-	printf("Register Access Port             0x%08X\n", r[0]);
-	printf("LED Control/Status               0x%08X\n", r[1]);
-	printf("Interrupt Source                 0x%08X\n", r[2]);
-	printf("Interrupt Mask                   0x%08X\n", r[3]);
-	printf("Interrupt Hardware Error Source  0x%08X\n", r[4]);
-	printf("Interrupt Hardware Error Mask    0x%08X\n", r[5]);
-	printf("Special Interrupt Source         0x%08X\n", r[6]);
-
-	printf("\nBus Management Unit\n");
-	printf("-------------------\n");
-	printf("CSR Receive Queue 1              0x%08X\n", r[24]);
-	printf("CSR Sync Queue 1                 0x%08X\n", r[26]);
-	printf("CSR Async Queue 1                0x%08X\n", r[27]);
-	if (dual) {
-		printf("CSR Receive Queue 2              0x%08X\n", r[25]);
-		printf("CSR Async Queue 2                0x%08X\n", r[29]);
-		printf("CSR Sync Queue 2                 0x%08X\n", r[28]);
-	}
-
-	printf("\nMAC Address\n");
-	printf("-------------\n");
-	dump_addr(1, regs->data + 0x100);
-	dump_addr(2, regs->data + 0x108);
-	dump_addr(3, regs->data + 0x110);
-	printf("\n");
-
-	printf("Connector type                         0x%02X\n",
-	       regs->data[0x118]);
-	printf("PMD type                               0x%02X\n",
-	       regs->data[0x119]);
-	printf("Configuration                          0x%02X\n",
-	       regs->data[0x11a]);
-	printf("Chip Revision                          0x%02X\n",
-	       regs->data[0x11b]);
-
-	dump_timer("Timer", regs->data + 0x130);
-	dump_timer("IRQ Moderation", regs->data +0x140);
-	dump_timer("Blink Source", regs->data +0x170);
-
-	dump_queue("Receive Queue 1", regs->data +0x400, 1);
-	dump_queue("Sync Transmit Queue 1", regs->data +0x600, 0);
-	dump_queue("Async Transmit Queue 1", regs->data +0x680, 0);
-	if (dual) {
-		dump_queue("Receive Queue 2", regs->data +0x480, 1);
-		dump_queue("Async Transmit Queue 2", regs->data +0x780, 0);
-		dump_queue("Sync Transmit Queue 2", regs->data +0x700, 0);
-	}
-
-	dump_ram("Receive RAMbuffer 1", regs->data+0x800);
-	dump_ram("Sync Transmit RAMbuffer 1", regs->data+0xa00);
-	dump_ram("Async Transmit RAMbuffer 1", regs->data+0xa80);
-	if (dual) {
-		dump_ram("Receive RAMbuffer 2", regs->data+0x880);
-		dump_ram("Sync Transmit RAMbuffer 2", regs->data+0xb00);
-		dump_ram("Async Transmit RAMbuffer 21", regs->data+0xb80);
-	}
-
-	dump_fifo("Receive MAC FIFO 1", regs->data+0xc00);
-	dump_fifo("Transmit MAC FIFO 1", regs->data+0xd00);
-	if (dual) {
-		dump_fifo("Receive MAC FIFO 2", regs->data+0xc80);
-		dump_fifo("Transmit MAC FIFO 2", regs->data+0xd80);
-	}
-
-	dump_timer("Descriptor Poll", regs->data+0xe00);
-	return 0;
-
-}
-- 
1.4.1


  reply	other threads:[~2006-09-27 22:49 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-09-26 18:54 [PATCH] ethtool: add sky2 register dump Stephen Hemminger
2006-09-27 22:01 ` Jeff Garzik
2006-09-26 20:08   ` Stephen Hemminger [this message]
2006-09-27 23:03     ` [PATCH 1/4] ethtool: move skge.c to marvell.c Jeff Garzik
2006-09-26 20:09   ` [PATCH 2/4] ethtool: sky2 support Stephen Hemminger
2006-09-26 20:10   ` [PATCH 3/4] ethtool: don't show sync queue's on skge/sky2 Stephen Hemminger
2006-09-27 23:03     ` Jeff Garzik
2006-09-27 22:34       ` Stephen Hemminger
2006-09-27 23:19         ` Jeff Garzik
2006-09-26 20:10   ` [PATCH 4/4] ethtool: spelling fix Stephen Hemminger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20060926130825.7a65979d@freekitty \
    --to=shemminger@osdl.org \
    --cc=jgarzik@pobox.com \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.