seeq8003reg.h revision 1.2 1 1.2 soren /* $NetBSD: seeq8003reg.h,v 1.2 2001/06/06 22:11:42 soren Exp $ */
2 1.1 soren
3 1.1 soren /*
4 1.1 soren * Copyright (c) 2000 Soren S. Jorvang. All rights reserved.
5 1.1 soren *
6 1.1 soren * Redistribution and use in source and binary forms, with or without
7 1.1 soren * modification, are permitted provided that the following conditions
8 1.1 soren * are met:
9 1.1 soren * 1. Redistributions of source code must retain the above copyright
10 1.1 soren * notice, this list of conditions, and the following disclaimer.
11 1.1 soren * 2. Redistributions in binary form must reproduce the above copyright
12 1.1 soren * notice, this list of conditions and the following disclaimer in the
13 1.1 soren * documentation and/or other materials provided with the distribution.
14 1.1 soren *
15 1.1 soren * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16 1.1 soren * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 1.1 soren * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 1.1 soren * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19 1.1 soren * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20 1.1 soren * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21 1.1 soren * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 1.1 soren * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23 1.1 soren * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24 1.1 soren * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25 1.1 soren * SUCH DAMAGE.
26 1.1 soren */
27 1.1 soren
28 1.1 soren /*
29 1.1 soren * Register definitions for the Seeq 8003 and 80C03 ethernet controllers
30 1.1 soren *
31 1.2 soren * Based on documentation available at
32 1.2 soren * http://www.lsilogic.com/techlib/techdocs/networking/eol/80c03.pdf .
33 1.1 soren */
34 1.1 soren
35 1.1 soren #define SEEQ_ADDR0 0 /* Station Address Byte 0 */
36 1.1 soren #define SEEQ_ADDR1 1 /* Station Address Byte 1 */
37 1.1 soren #define SEEQ_ADDR2 2 /* Station Address Byte 2 */
38 1.1 soren #define SEEQ_ADDR3 3 /* Station Address Byte 3 */
39 1.1 soren #define SEEQ_ADDR4 4 /* Station Address Byte 4 */
40 1.1 soren #define SEEQ_ADDR5 5 /* Station Address Byte 5 */
41 1.1 soren
42 1.1 soren #define SEEQ_TXCOLLS0 0 /* Transmit Collision Counter LSB */
43 1.1 soren #define SEEQ_TXCOLLS1 1 /* Transmit Collision Counter MSB */
44 1.1 soren #define SEEQ_ALLCOLL0 2 /* Total Collision Counter LSB */
45 1.1 soren #define SEEQ_ALLCOLL1 3 /* Total Collision Counter MSB */
46 1.1 soren
47 1.1 soren #define SEEQ_TEST 4 /* "For Test Only" - Do Not Use */
48 1.1 soren
49 1.1 soren #define SEEQ_SQE 5 /* SQE / No Carrier */
50 1.1 soren #define SQE_FLAG 0x01 /* SQE Flag */
51 1.1 soren #define SQE_NOCARR 0x02 /* No Carrier Flag */
52 1.1 soren
53 1.1 soren #define SEEQ_RXCMD 6 /* Rx Command */
54 1.1 soren #define RXCMD_IE_OFLOW 0x01 /* Interrupt on Overflow Error */
55 1.1 soren #define RXCMD_IE_CRC 0x02 /* Interrupt on CRC Error */
56 1.1 soren #define RXCMD_IE_DRIB 0x04 /* Interrupt on Dribble Error */
57 1.1 soren #define RXCMD_IE_SHORT 0x08 /* Interrupt on Short Frame */
58 1.1 soren #define RXCMD_IE_END 0x10 /* Interrupt on End of Frame */
59 1.1 soren #define RXCMD_IE_GOOD 0x20 /* Interrupt on Good Frame */
60 1.1 soren #define RXCMD_REC_MASK 0xf0 /* Receiver Match Mode Mask */
61 1.1 soren #define RXCMD_REC_NONE 0x00 /* Receiver Disabled */
62 1.1 soren #define RXCMD_REC_ALL 0x40 /* Receive All Frames */
63 1.1 soren #define RXCMD_REC_BROAD 0x80 /* Receive Station/Broadcast Frames */
64 1.1 soren #define RXCMD_REC_MULTI 0xc0 /* Station/Broadcast/Multicast */
65 1.1 soren
66 1.1 soren #define SEEQ_RXSTAT 6 /* Rx Status */
67 1.1 soren #define RXSTAT_OFLOW 0x01 /* Frame Overflow Error */
68 1.1 soren #define RXSTAT_CRC 0x02 /* Frame CRC Error */
69 1.1 soren #define RXSTAT_DRIB 0x04 /* Frame Dribble Error */
70 1.1 soren #define RXSTAT_SHORT 0x08 /* Received Short Frame */
71 1.1 soren #define RXSTAT_END 0x10 /* Received End of Frame */
72 1.1 soren #define RXSTAT_GOOD 0x20 /* Received Good Frame */
73 1.1 soren #define RXSTAT_OLDNEW 0x80 /* Old/New Status */
74 1.1 soren
75 1.1 soren #define SEEQ_TXCMD 7 /* Tx Command */
76 1.1 soren #define TXCMD_IE_UFLOW 0x01 /* Interrupt on Transmit Underflow */
77 1.1 soren #define TXCMD_IE_COLL 0x02 /* Interrupt on Transmit Collision */
78 1.1 soren #define TXCMD_IE_16COLL 0x04 /* Interrupt on 16 Collisions */
79 1.1 soren #define TXCMD_IE_GOOD 0x08 /* Interrupt on Transmit Succes */
80 1.1 soren #define TXCMD_ENABLE_C 0xf0 /* (80C03) Enable 80C03 Mode */
81 1.1 soren #define TXCMD_BANK_MASK 0x60 /* (80C03) Register Bank Mask */
82 1.1 soren #define TXCMD_BANK0 0x00 /* (80C03) Register Bank 0 (8003) */
83 1.1 soren #define TXCMD_BANK1 0x20 /* (80C03) Register Bank 1 (Writes) */
84 1.1 soren #define TXCMD_BANK2 0x40 /* (80C03) Register Bank 2 (Writes) */
85 1.1 soren
86 1.1 soren #define SEEQ_TXSTAT 7 /* Tx Status */
87 1.1 soren #define TXSTAT_UFLOW 0x01 /* Transmit Underflow */
88 1.1 soren #define TXSTAT_COLL 0x02 /* Transmit Collision */
89 1.1 soren #define TXSTAT_16COLL 0x04 /* 16 Collisions */
90 1.1 soren #define TXSTAT_GOOD 0x08 /* Transmit Success */
91 1.1 soren #define TXSTAT_OLDNEW 0x80 /* Old/New Status */
92 1.1 soren
93 1.1 soren /*
94 1.1 soren * 80C03 Mode Register Bank 1
95 1.1 soren */
96 1.1 soren
97 1.1 soren #define SEEQ_MC_HASH0 0 /* Multicast Filter Byte 0 (LSB) */
98 1.1 soren #define SEEQ_MC_HASH1 1 /* Multicast Filter Byte 1 */
99 1.1 soren #define SEEQ_MC_HASH2 2 /* Multicast Filter Byte 2 */
100 1.1 soren #define SEEQ_MC_HASH3 3 /* Multicast Filter Byte 3 */
101 1.1 soren #define SEEQ_MC_HASH4 4 /* Multicast Filter Byte 4 */
102 1.1 soren #define SEEQ_MC_HASH5 5 /* Multicast Filter Byte 5 */
103 1.1 soren
104 1.1 soren /*
105 1.1 soren * 80C03 Mode Register Bank 2
106 1.1 soren */
107 1.1 soren
108 1.1 soren #define SEEQ_MC_HASH6 0 /* Multicast Filter Byte 6 */
109 1.1 soren #define SEEQ_MC_HASH7 1 /* Multicast Filter Byte 7 (MSB) */
110 1.1 soren
111 1.1 soren #define SEEQ_RESERVED0 2 /* Reserved (Set to All Zeroes) */
112 1.1 soren
113 1.1 soren #define SEEQ_TXCTRL 3 /* Tx Control */
114 1.1 soren #define TXCTRL_TXCOLL 0x01 /* Clear/Enable Tx Collision Counter */
115 1.1 soren #define TXCTRL_COLL 0x02 /* Clear/Enable Collision Counter */
116 1.1 soren #define TXCTRL_SQE 0x04 /* Clear/Enable SQE Flag */
117 1.1 soren #define TXCTRL_HASH 0x08 /* Enable Multicast Hash Filter */
118 1.1 soren #define TXCTRL_SHORT 0x10 /* Receive Short (<13 Bytes) Frames */
119 1.1 soren #define TXCTRL_NOCARR 0x20 /* Clear/Enable No Carrier Flag */
120 1.1 soren
121 1.1 soren #define SEEQ_CFG 4 /* Transmit/Receive Configuration */
122 1.1 soren #define CFG_RX_GRPADDR 0x01 /* Ignore Last 4 Bits of Address */
123 1.1 soren #define CFG_TX_AUTOPAD 0x02 /* Automatically Pad to 60 Bytes */
124 1.1 soren #define CFG_TX_NOPRE 0x04 /* Do Not Add Preamble Pattern */
125 1.1 soren #define CFG_RX_NOOWN 0x08 /* Do Not Receive Own Packets */
126 1.1 soren #define CFG_TX_NOCRC 0x10 /* No Not Append CRC */
127 1.1 soren #define CFG_TX_DUPLEX 0x20 /* AutoDUPLEX - Ignore Carrier */
128 1.1 soren #define CFG_RX_CRCFIFO 0x40 /* Write CRC to FIFO */
129 1.1 soren #define CFG_RX_FASTDISC 0x80 /* Fast Receive Discard Mode */
130 1.1 soren
131 1.1 soren #define SEEQ_RESERVED1 5 /* Reserved */
132 1.1 soren #define SEEQ_RESERVED2 6 /* Reserved */
133 1.1 soren #define SEEQ_RESERVED3 7 /* Reserved */
134