~ubuntu-branches/ubuntu/precise/linux-lowlatency/precise

« back to all changes in this revision

Viewing changes to include/linux/i82593.h

  • Committer: Package Import Robot
  • Author(s): Alessio Igor Bogani
  • Date: 2011-10-26 11:13:05 UTC
  • Revision ID: package-import@ubuntu.com-20111026111305-tz023xykf0i6eosh
Tags: upstream-3.2.0
ImportĀ upstreamĀ versionĀ 3.2.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Definitions for Intel 82593 CSMA/CD Core LAN Controller
 
3
 * The definitions are taken from the 1992 users manual with Intel
 
4
 * order number 297125-001.
 
5
 *
 
6
 * /usr/src/pc/RCS/i82593.h,v 1.1 1996/07/17 15:23:12 root Exp
 
7
 *
 
8
 * Copyright 1994, Anders Klemets <klemets@it.kth.se>
 
9
 *
 
10
 * HISTORY
 
11
 * i82593.h,v
 
12
 * Revision 1.4  2005/11/4  09:15:00  baroniunas
 
13
 * Modified copyright with permission of author as follows:
 
14
 *
 
15
 *   "If I82539.H is the only file with my copyright statement
 
16
 *    that is included in the Source Forge project, then you have
 
17
 *    my approval to change the copyright statement to be a GPL
 
18
 *    license, in the way you proposed on October 10."
 
19
 *
 
20
 * Revision 1.1  1996/07/17 15:23:12  root
 
21
 * Initial revision
 
22
 *
 
23
 * Revision 1.3  1995/04/05  15:13:58  adj
 
24
 * Initial alpha release
 
25
 *
 
26
 * Revision 1.2  1994/06/16  23:57:31  klemets
 
27
 * Mirrored all the fields in the configuration block.
 
28
 *
 
29
 * Revision 1.1  1994/06/02  20:25:34  klemets
 
30
 * Initial revision
 
31
 *
 
32
 *
 
33
 */
 
34
#ifndef _I82593_H
 
35
#define _I82593_H
 
36
 
 
37
/* Intel 82593 CSMA/CD Core LAN Controller */
 
38
 
 
39
/* Port 0 Command Register definitions */
 
40
 
 
41
/* Execution operations */
 
42
#define OP0_NOP                 0       /* CHNL = 0 */
 
43
#define OP0_SWIT_TO_PORT_1      0       /* CHNL = 1 */
 
44
#define OP0_IA_SETUP            1
 
45
#define OP0_CONFIGURE           2
 
46
#define OP0_MC_SETUP            3
 
47
#define OP0_TRANSMIT            4
 
48
#define OP0_TDR                 5
 
49
#define OP0_DUMP                6
 
50
#define OP0_DIAGNOSE            7
 
51
#define OP0_TRANSMIT_NO_CRC     9
 
52
#define OP0_RETRANSMIT          12
 
53
#define OP0_ABORT               13
 
54
/* Reception operations */
 
55
#define OP0_RCV_ENABLE          8
 
56
#define OP0_RCV_DISABLE         10
 
57
#define OP0_STOP_RCV            11
 
58
/* Status pointer control operations */
 
59
#define OP0_FIX_PTR             15      /* CHNL = 1 */
 
60
#define OP0_RLS_PTR             15      /* CHNL = 0 */
 
61
#define OP0_RESET               14
 
62
 
 
63
#define CR0_CHNL                (1 << 4)        /* 0=Channel 0, 1=Channel 1 */
 
64
#define CR0_STATUS_0            0x00
 
65
#define CR0_STATUS_1            0x20
 
66
#define CR0_STATUS_2            0x40
 
67
#define CR0_STATUS_3            0x60
 
68
#define CR0_INT_ACK             (1 << 7)        /* 0=No ack, 1=acknowledge */
 
69
 
 
70
/* Port 0 Status Register definitions */
 
71
 
 
72
#define SR0_NO_RESULT           0               /* dummy */
 
73
#define SR0_EVENT_MASK          0x0f
 
74
#define SR0_IA_SETUP_DONE       1
 
75
#define SR0_CONFIGURE_DONE      2
 
76
#define SR0_MC_SETUP_DONE       3
 
77
#define SR0_TRANSMIT_DONE       4
 
78
#define SR0_TDR_DONE            5
 
79
#define SR0_DUMP_DONE           6
 
80
#define SR0_DIAGNOSE_PASSED     7
 
81
#define SR0_TRANSMIT_NO_CRC_DONE 9
 
82
#define SR0_RETRANSMIT_DONE     12
 
83
#define SR0_EXECUTION_ABORTED   13
 
84
#define SR0_END_OF_FRAME        8
 
85
#define SR0_RECEPTION_ABORTED   10
 
86
#define SR0_DIAGNOSE_FAILED     15
 
87
#define SR0_STOP_REG_HIT        11
 
88
 
 
89
#define SR0_CHNL                (1 << 4)
 
90
#define SR0_EXECUTION           (1 << 5)
 
91
#define SR0_RECEPTION           (1 << 6)
 
92
#define SR0_INTERRUPT           (1 << 7)
 
93
#define SR0_BOTH_RX_TX          (SR0_EXECUTION | SR0_RECEPTION)
 
94
 
 
95
#define SR3_EXEC_STATE_MASK     0x03
 
96
#define SR3_EXEC_IDLE           0
 
97
#define SR3_TX_ABORT_IN_PROGRESS 1
 
98
#define SR3_EXEC_ACTIVE         2
 
99
#define SR3_ABORT_IN_PROGRESS   3
 
100
#define SR3_EXEC_CHNL           (1 << 2)
 
101
#define SR3_STP_ON_NO_RSRC      (1 << 3)
 
102
#define SR3_RCVING_NO_RSRC      (1 << 4)
 
103
#define SR3_RCV_STATE_MASK      0x60
 
104
#define SR3_RCV_IDLE            0x00
 
105
#define SR3_RCV_READY           0x20
 
106
#define SR3_RCV_ACTIVE          0x40
 
107
#define SR3_RCV_STOP_IN_PROG    0x60
 
108
#define SR3_RCV_CHNL            (1 << 7)
 
109
 
 
110
/* Port 1 Command Register definitions */
 
111
 
 
112
#define OP1_NOP                 0
 
113
#define OP1_SWIT_TO_PORT_0      1
 
114
#define OP1_INT_DISABLE         2
 
115
#define OP1_INT_ENABLE          3
 
116
#define OP1_SET_TS              5
 
117
#define OP1_RST_TS              7
 
118
#define OP1_POWER_DOWN          8
 
119
#define OP1_RESET_RING_MNGMT    11
 
120
#define OP1_RESET               14
 
121
#define OP1_SEL_RST             15
 
122
 
 
123
#define CR1_STATUS_4            0x00
 
124
#define CR1_STATUS_5            0x20
 
125
#define CR1_STATUS_6            0x40
 
126
#define CR1_STOP_REG_UPDATE     (1 << 7)
 
127
 
 
128
/* Receive frame status bits */
 
129
 
 
130
#define RX_RCLD                 (1 << 0)
 
131
#define RX_IA_MATCH             (1 << 1)
 
132
#define RX_NO_AD_MATCH          (1 << 2)
 
133
#define RX_NO_SFD               (1 << 3)
 
134
#define RX_SRT_FRM              (1 << 7)
 
135
#define RX_OVRRUN               (1 << 8)
 
136
#define RX_ALG_ERR              (1 << 10)
 
137
#define RX_CRC_ERR              (1 << 11)
 
138
#define RX_LEN_ERR              (1 << 12)
 
139
#define RX_RCV_OK               (1 << 13)
 
140
#define RX_TYP_LEN              (1 << 15)
 
141
 
 
142
/* Transmit status bits */
 
143
 
 
144
#define TX_NCOL_MASK            0x0f
 
145
#define TX_FRTL                 (1 << 4)
 
146
#define TX_MAX_COL              (1 << 5)
 
147
#define TX_HRT_BEAT             (1 << 6)
 
148
#define TX_DEFER                (1 << 7)
 
149
#define TX_UND_RUN              (1 << 8)
 
150
#define TX_LOST_CTS             (1 << 9)
 
151
#define TX_LOST_CRS             (1 << 10)
 
152
#define TX_LTCOL                (1 << 11)
 
153
#define TX_OK                   (1 << 13)
 
154
#define TX_COLL                 (1 << 15)
 
155
 
 
156
struct i82593_conf_block {
 
157
  u_char fifo_limit : 4,
 
158
         forgnesi   : 1,
 
159
         fifo_32    : 1,
 
160
         d6mod      : 1,
 
161
         throttle_enb : 1;
 
162
  u_char throttle   : 6,
 
163
         cntrxint   : 1,
 
164
         contin     : 1;
 
165
  u_char addr_len   : 3,
 
166
         acloc      : 1,
 
167
         preamb_len : 2,
 
168
         loopback   : 2;
 
169
  u_char lin_prio   : 3,
 
170
         tbofstop   : 1,
 
171
         exp_prio   : 3,
 
172
         bof_met    : 1;
 
173
  u_char            : 4,
 
174
         ifrm_spc   : 4;
 
175
  u_char            : 5,
 
176
         slottim_low : 3;
 
177
  u_char slottim_hi : 3,
 
178
                    : 1,
 
179
         max_retr   : 4;
 
180
  u_char prmisc     : 1,
 
181
         bc_dis     : 1,
 
182
                    : 1,
 
183
         crs_1      : 1,
 
184
         nocrc_ins  : 1,
 
185
         crc_1632   : 1,
 
186
                    : 1,
 
187
         crs_cdt    : 1;
 
188
  u_char cs_filter  : 3,
 
189
         crs_src    : 1,
 
190
         cd_filter  : 3,
 
191
                    : 1;
 
192
  u_char            : 2,
 
193
         min_fr_len : 6;
 
194
  u_char lng_typ    : 1,
 
195
         lng_fld    : 1,
 
196
         rxcrc_xf   : 1,
 
197
         artx       : 1,
 
198
         sarec      : 1,
 
199
         tx_jabber  : 1,        /* why is this called max_len in the manual? */
 
200
         hash_1     : 1,
 
201
         lbpkpol    : 1;
 
202
  u_char            : 6,
 
203
         fdx        : 1,
 
204
                    : 1;
 
205
  u_char dummy_6    : 6,        /* supposed to be ones */
 
206
         mult_ia    : 1,
 
207
         dis_bof    : 1;
 
208
  u_char dummy_1    : 1,        /* supposed to be one */
 
209
         tx_ifs_retrig : 2,
 
210
         mc_all     : 1,
 
211
         rcv_mon    : 2,
 
212
         frag_acpt  : 1,
 
213
         tstrttrs   : 1;
 
214
  u_char fretx      : 1,
 
215
         runt_eop   : 1,
 
216
         hw_sw_pin  : 1,
 
217
         big_endn   : 1,
 
218
         syncrqs    : 1,
 
219
         sttlen     : 1,
 
220
         tx_eop     : 1,
 
221
         rx_eop     : 1;
 
222
  u_char rbuf_size  : 5,
 
223
         rcvstop    : 1,
 
224
                    : 2;
 
225
};
 
226
 
 
227
#define I82593_MAX_MULTICAST_ADDRESSES  128     /* Hardware hashed filter */
 
228
 
 
229
#endif /* _I82593_H */