From 2d50690d76353f1a954f7f632e0894d124cc9241 Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Tue, 26 Sep 2006 13:08:25 -0700 Subject: [PATCH] ethtool: move skge.c to marvell.c The code will be common for skge and sky2 Signed-off-by: Stephen Hemminger Signed-off-by: Jeff Garzik --- skge.c | 189 ----------------------------------------------------------------- 1 file changed, 189 deletions(-) delete mode 100644 skge.c (limited to 'skge.c') 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 - */ - -#include - -#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; - -} -- cgit v1.2.1