aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/3c527.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/3c527.h')
-rw-r--r--drivers/net/3c527.h81
1 files changed, 81 insertions, 0 deletions
diff --git a/drivers/net/3c527.h b/drivers/net/3c527.h
new file mode 100644
index 00000000000..c10f009ce9b
--- /dev/null
+++ b/drivers/net/3c527.h
@@ -0,0 +1,81 @@
+/*
+ * 3COM "EtherLink MC/32" Descriptions
+ */
+
+/*
+ * Registers
+ */
+
+#define HOST_CMD 0
+#define HOST_CMD_START_RX (1<<3)
+#define HOST_CMD_SUSPND_RX (3<<3)
+#define HOST_CMD_RESTRT_RX (5<<3)
+
+#define HOST_CMD_SUSPND_TX 3
+#define HOST_CMD_RESTRT_TX 5
+
+
+#define HOST_STATUS 2
+#define HOST_STATUS_CRR (1<<6)
+#define HOST_STATUS_CWR (1<<5)
+
+
+#define HOST_CTRL 6
+#define HOST_CTRL_ATTN (1<<7)
+#define HOST_CTRL_RESET (1<<6)
+#define HOST_CTRL_INTE (1<<2)
+
+#define HOST_RAMPAGE 8
+
+#define HALTED 0
+#define RUNNING 1
+
+struct mc32_mailbox
+{
+ u16 mbox __attribute((packed));
+ u16 data[1] __attribute((packed));
+};
+
+struct skb_header
+{
+ u8 status __attribute((packed));
+ u8 control __attribute((packed));
+ u16 next __attribute((packed)); /* Do not change! */
+ u16 length __attribute((packed));
+ u32 data __attribute((packed));
+};
+
+struct mc32_stats
+{
+ /* RX Errors */
+ u32 rx_crc_errors __attribute((packed));
+ u32 rx_alignment_errors __attribute((packed));
+ u32 rx_overrun_errors __attribute((packed));
+ u32 rx_tooshort_errors __attribute((packed));
+ u32 rx_toolong_errors __attribute((packed));
+ u32 rx_outofresource_errors __attribute((packed));
+
+ u32 rx_discarded __attribute((packed)); /* via card pattern match filter */
+
+ /* TX Errors */
+ u32 tx_max_collisions __attribute((packed));
+ u32 tx_carrier_errors __attribute((packed));
+ u32 tx_underrun_errors __attribute((packed));
+ u32 tx_cts_errors __attribute((packed));
+ u32 tx_timeout_errors __attribute((packed)) ;
+
+ /* various cruft */
+ u32 dataA[6] __attribute((packed));
+ u16 dataB[5] __attribute((packed));
+ u32 dataC[14] __attribute((packed));
+};
+
+#define STATUS_MASK 0x0F
+#define COMPLETED (1<<7)
+#define COMPLETED_OK (1<<6)
+#define BUFFER_BUSY (1<<5)
+
+#define CONTROL_EOP (1<<7) /* End Of Packet */
+#define CONTROL_EOL (1<<6) /* End of List */
+
+#define MCA_MC32_ID 0x0041 /* Our MCA ident */