~ubuntu-branches/ubuntu/precise/linux-ti-omap4/precise-security

« back to all changes in this revision

Viewing changes to drivers/net/ethernet/racal/ni5010.h

  • Committer: Package Import Robot
  • Author(s): Paolo Pisati, Paolo Pisati
  • Date: 2011-12-06 15:56:07 UTC
  • Revision ID: package-import@ubuntu.com-20111206155607-pcf44kv5fmhk564f
Tags: 3.2.0-1401.1
[ Paolo Pisati ]

* Rebased on top of Ubuntu-3.2.0-3.8
* Tilt-tracking @ ef2487af4bb15bdd0689631774b5a5e3a59f74e2
* Delete debian.ti-omap4/control, it shoudln't be tracked
* Fix architecture spelling (s/armel/armhf/)
* [Config] Update configs following 3.2 import
* [Config] Fix compilation: disable CODA and ARCH_OMAP3
* [Config] Fix compilation: disable Ethernet Faraday
* Update series to precise

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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