diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
commit | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (patch) | |
tree | 0bba044c4ce775e45a88a51686b5d9f90697ea9d /drivers/net/ni5010.h |
Linux-2.6.12-rc2v2.6.12-rc2
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.
Let it rip!
Diffstat (limited to 'drivers/net/ni5010.h')
-rw-r--r-- | drivers/net/ni5010.h | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/drivers/net/ni5010.h b/drivers/net/ni5010.h new file mode 100644 index 000000000000..e10e717fcd76 --- /dev/null +++ b/drivers/net/ni5010.h | |||
@@ -0,0 +1,144 @@ | |||
1 | /* | ||
2 | * Racal-Interlan ni5010 Ethernet definitions | ||
3 | * | ||
4 | * This is an extension to the Linux operating system, and is covered by the | ||
5 | * same GNU General Public License that covers that work. | ||
6 | * | ||
7 | * copyrights (c) 1996 by Jan-Pascal van Best (jvbest@wi.leidenuniv.nl) | ||
8 | * | ||
9 | * I have done a look in the following sources: | ||
10 | * crynwr-packet-driver by Russ Nelson | ||
11 | */ | ||
12 | |||
13 | #define NI5010_BUFSIZE 2048 /* number of bytes in a buffer */ | ||
14 | |||
15 | #define NI5010_MAGICVAL0 0x00 /* magic-values for ni5010 card */ | ||
16 | #define NI5010_MAGICVAL1 0x55 | ||
17 | #define NI5010_MAGICVAL2 0xAA | ||
18 | |||
19 | #define SA_ADDR0 0x02 | ||
20 | #define SA_ADDR1 0x07 | ||
21 | #define SA_ADDR2 0x01 | ||
22 | |||
23 | /* The number of low I/O ports used by the ni5010 ethercard. */ | ||
24 | #define NI5010_IO_EXTENT 32 | ||
25 | |||
26 | #define PRINTK(x) if (NI5010_DEBUG) printk x | ||
27 | #define PRINTK2(x) if (NI5010_DEBUG>=2) printk x | ||
28 | #define PRINTK3(x) if (NI5010_DEBUG>=3) printk x | ||
29 | |||
30 | /* The various IE command registers */ | ||
31 | #define EDLC_XSTAT (ioaddr + 0x00) /* EDLC transmit csr */ | ||
32 | #define EDLC_XCLR (ioaddr + 0x00) /* EDLC transmit "Clear IRQ" */ | ||
33 | #define EDLC_XMASK (ioaddr + 0x01) /* EDLC transmit "IRQ Masks" */ | ||
34 | #define EDLC_RSTAT (ioaddr + 0x02) /* EDLC receive csr */ | ||
35 | #define EDLC_RCLR (ioaddr + 0x02) /* EDLC receive "Clear IRQ" */ | ||
36 | #define EDLC_RMASK (ioaddr + 0x03) /* EDLC receive "IRQ Masks" */ | ||
37 | #define EDLC_XMODE (ioaddr + 0x04) /* EDLC transmit Mode */ | ||
38 | #define EDLC_RMODE (ioaddr + 0x05) /* EDLC receive Mode */ | ||
39 | #define EDLC_RESET (ioaddr + 0x06) /* EDLC RESET register */ | ||
40 | #define EDLC_TDR1 (ioaddr + 0x07) /* "Time Domain Reflectometry" reg1 */ | ||
41 | #define EDLC_ADDR (ioaddr + 0x08) /* EDLC station address, 6 bytes */ | ||
42 | /* 0x0E doesn't exist for r/w */ | ||
43 | #define EDLC_TDR2 (ioaddr + 0x0f) /* "Time Domain Reflectometry" reg2 */ | ||
44 | #define IE_GP (ioaddr + 0x10) /* GP pointer (word register) */ | ||
45 | /* 0x11 is 2nd byte of GP Pointer */ | ||
46 | #define IE_RCNT (ioaddr + 0x10) /* Count of bytes in rcv'd packet */ | ||
47 | /* 0x11 is 2nd byte of "Byte Count" */ | ||
48 | #define IE_MMODE (ioaddr + 0x12) /* Memory Mode register */ | ||
49 | #define IE_DMA_RST (ioaddr + 0x13) /* IE DMA Reset. write only */ | ||
50 | #define IE_ISTAT (ioaddr + 0x13) /* IE Interrupt Status. read only */ | ||
51 | #define IE_RBUF (ioaddr + 0x14) /* IE Receive Buffer port */ | ||
52 | #define IE_XBUF (ioaddr + 0x15) /* IE Transmit Buffer port */ | ||
53 | #define IE_SAPROM (ioaddr + 0x16) /* window on station addr prom */ | ||
54 | #define IE_RESET (ioaddr + 0x17) /* any write causes Board Reset */ | ||
55 | |||
56 | /* bits in EDLC_XSTAT, interrupt clear on write, status when read */ | ||
57 | #define XS_TPOK 0x80 /* transmit packet successful */ | ||
58 | #define XS_CS 0x40 /* carrier sense */ | ||
59 | #define XS_RCVD 0x20 /* transmitted packet received */ | ||
60 | #define XS_SHORT 0x10 /* transmission media is shorted */ | ||
61 | #define XS_UFLW 0x08 /* underflow. iff failed board */ | ||
62 | #define XS_COLL 0x04 /* collision occurred */ | ||
63 | #define XS_16COLL 0x02 /* 16th collision occurred */ | ||
64 | #define XS_PERR 0x01 /* parity error */ | ||
65 | |||
66 | #define XS_CLR_UFLW 0x08 /* clear underflow */ | ||
67 | #define XS_CLR_COLL 0x04 /* clear collision */ | ||
68 | #define XS_CLR_16COLL 0x02 /* clear 16th collision */ | ||
69 | #define XS_CLR_PERR 0x01 /* clear parity error */ | ||
70 | |||
71 | /* bits in EDLC_XMASK, mask/enable transmit interrupts. register is r/w */ | ||
72 | #define XM_TPOK 0x80 /* =1 to enable Xmt Pkt OK interrupts */ | ||
73 | #define XM_RCVD 0x20 /* =1 to enable Xmt Pkt Rcvd ints */ | ||
74 | #define XM_UFLW 0x08 /* =1 to enable Xmt Underflow ints */ | ||
75 | #define XM_COLL 0x04 /* =1 to enable Xmt Collision ints */ | ||
76 | #define XM_COLL16 0x02 /* =1 to enable Xmt 16th Coll ints */ | ||
77 | #define XM_PERR 0x01 /* =1 to enable Xmt Parity Error ints */ | ||
78 | /* note: always clear this bit */ | ||
79 | #define XM_ALL (XM_TPOK | XM_RCVD | XM_UFLW | XM_COLL | XM_COLL16) | ||
80 | |||
81 | /* bits in EDLC_RSTAT, interrupt clear on write, status when read */ | ||
82 | #define RS_PKT_OK 0x80 /* received good packet */ | ||
83 | #define RS_RST_PKT 0x10 /* RESET packet received */ | ||
84 | #define RS_RUNT 0x08 /* Runt Pkt rcvd. Len < 64 Bytes */ | ||
85 | #define RS_ALIGN 0x04 /* Alignment error. not 8 bit aligned */ | ||
86 | #define RS_CRC_ERR 0x02 /* Bad CRC on rcvd pkt */ | ||
87 | #define RS_OFLW 0x01 /* overflow for rcv FIFO */ | ||
88 | #define RS_VALID_BITS ( RS_PKT_OK | RS_RST_PKT | RS_RUNT | RS_ALIGN | RS_CRC_ERR | RS_OFLW ) | ||
89 | /* all valid RSTAT bits */ | ||
90 | |||
91 | #define RS_CLR_PKT_OK 0x80 /* clear rcvd packet interrupt */ | ||
92 | #define RS_CLR_RST_PKT 0x10 /* clear RESET packet received */ | ||
93 | #define RS_CLR_RUNT 0x08 /* clear Runt Pckt received */ | ||
94 | #define RS_CLR_ALIGN 0x04 /* clear Alignment error */ | ||
95 | #define RS_CLR_CRC_ERR 0x02 /* clear CRC error */ | ||
96 | #define RS_CLR_OFLW 0x01 /* clear rcv FIFO Overflow */ | ||
97 | |||
98 | /* bits in EDLC_RMASK, mask/enable receive interrupts. register is r/w */ | ||
99 | #define RM_PKT_OK 0x80 /* =1 to enable rcvd good packet ints */ | ||
100 | #define RM_RST_PKT 0x10 /* =1 to enable RESET packet ints */ | ||
101 | #define RM_RUNT 0x08 /* =1 to enable Runt Pkt rcvd ints */ | ||
102 | #define RM_ALIGN 0x04 /* =1 to enable Alignment error ints */ | ||
103 | #define RM_CRC_ERR 0x02 /* =1 to enable Bad CRC error ints */ | ||
104 | #define RM_OFLW 0x01 /* =1 to enable overflow error ints */ | ||
105 | |||
106 | /* bits in EDLC_RMODE, set Receive Packet mode. register is r/w */ | ||
107 | #define RMD_TEST 0x80 /* =1 for Chip testing. normally 0 */ | ||
108 | #define RMD_ADD_SIZ 0x10 /* =1 5-byte addr match. normally 0 */ | ||
109 | #define RMD_EN_RUNT 0x08 /* =1 enable runt rcv. normally 0 */ | ||
110 | #define RMD_EN_RST 0x04 /* =1 to rcv RESET pkt. normally 0 */ | ||
111 | |||
112 | #define RMD_PROMISC 0x03 /* receive *all* packets. unusual */ | ||
113 | #define RMD_MULTICAST 0x02 /* receive multicasts too. unusual */ | ||
114 | #define RMD_BROADCAST 0x01 /* receive broadcasts & normal. usual */ | ||
115 | #define RMD_NO_PACKETS 0x00 /* don't receive any packets. unusual */ | ||
116 | |||
117 | /* bits in EDLC_XMODE, set Transmit Packet mode. register is r/w */ | ||
118 | #define XMD_COLL_CNT 0xf0 /* coll's since success. read-only */ | ||
119 | #define XMD_IG_PAR 0x08 /* =1 to ignore parity. ALWAYS set */ | ||
120 | #define XMD_T_MODE 0x04 /* =1 to power xcvr. ALWAYS set this */ | ||
121 | #define XMD_LBC 0x02 /* =1 for loopbakc. normally set */ | ||
122 | #define XMD_DIS_C 0x01 /* =1 disables contention. normally 0 */ | ||
123 | |||
124 | /* bits in EDLC_RESET, write only */ | ||
125 | #define RS_RESET 0x80 /* =1 to hold EDLC in reset state */ | ||
126 | |||
127 | /* bits in IE_MMODE, write only */ | ||
128 | #define MM_EN_DMA 0x80 /* =1 begin DMA xfer, Cplt clrs it */ | ||
129 | #define MM_EN_RCV 0x40 /* =1 allows Pkt rcv. clr'd by rcv */ | ||
130 | #define MM_EN_XMT 0x20 /* =1 begin Xmt pkt. Cplt clrs it */ | ||
131 | #define MM_BUS_PAGE 0x18 /* =00 ALWAYS. Used when MUX=1 */ | ||
132 | #define MM_NET_PAGE 0x06 /* =00 ALWAYS. Used when MUX=0 */ | ||
133 | #define MM_MUX 0x01 /* =1 means Rcv Buff on system bus */ | ||
134 | /* =0 means Xmt Buff on system bus */ | ||
135 | |||
136 | /* bits in IE_ISTAT, read only */ | ||
137 | #define IS_TDIAG 0x80 /* =1 if Diagnostic problem */ | ||
138 | #define IS_EN_RCV 0x20 /* =1 until frame is rcv'd cplt */ | ||
139 | #define IS_EN_XMT 0x10 /* =1 until frame is xmt'd cplt */ | ||
140 | #define IS_EN_DMA 0x08 /* =1 until DMA is cplt or aborted */ | ||
141 | #define IS_DMA_INT 0x04 /* =0 iff DMA done interrupt. */ | ||
142 | #define IS_R_INT 0x02 /* =0 iff unmasked Rcv interrupt */ | ||
143 | #define IS_X_INT 0x01 /* =0 iff unmasked Xmt interrupt */ | ||
144 | |||