OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [drivers/] [net/] [dl2k.h] - Blame information for rev 62

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
/*  D-Link DL2000-based Gigabit Ethernet Adapter Linux driver */
2
/*
3
    Copyright (c) 2001, 2002 by D-Link Corporation
4
    Written by Edward Peng.<edward_peng@dlink.com.tw>
5
    Created 03-May-2001, base on Linux' sundance.c.
6
 
7
    This program is free software; you can redistribute it and/or modify
8
    it under the terms of the GNU General Public License as published by
9
    the Free Software Foundation; either version 2 of the License, or
10
    (at your option) any later version.
11
*/
12
 
13
#ifndef __DL2K_H__
14
#define __DL2K_H__
15
 
16
#include <linux/module.h>
17
#include <linux/kernel.h>
18
#include <linux/string.h>
19
#include <linux/timer.h>
20
#include <linux/errno.h>
21
#include <linux/ioport.h>
22
#include <linux/slab.h>
23
#include <linux/interrupt.h>
24
#include <linux/pci.h>
25
#include <linux/netdevice.h>
26
#include <linux/etherdevice.h>
27
#include <linux/skbuff.h>
28
#include <linux/init.h>
29
#include <linux/crc32.h>
30
#include <linux/ethtool.h>
31
#include <linux/bitops.h>
32
#include <asm/processor.h>      /* Processor type for cache alignment. */
33
#include <asm/io.h>
34
#include <asm/uaccess.h>
35
#include <linux/delay.h>
36
#include <linux/spinlock.h>
37
#include <linux/time.h>
38
#define TX_RING_SIZE    256
39
#define TX_QUEUE_LEN    (TX_RING_SIZE - 1) /* Limit ring entries actually used.*/
40
#define RX_RING_SIZE    256
41
#define TX_TOTAL_SIZE   TX_RING_SIZE*sizeof(struct netdev_desc)
42
#define RX_TOTAL_SIZE   RX_RING_SIZE*sizeof(struct netdev_desc)
43
 
44
/* This driver was written to use PCI memory space, however x86-oriented
45
   hardware often uses I/O space accesses. */
46
#ifndef MEM_MAPPING
47
#undef readb
48
#undef readw
49
#undef readl
50
#undef writeb
51
#undef writew
52
#undef writel
53
#define readb inb
54
#define readw inw
55
#define readl inl
56
#define writeb outb
57
#define writew outw
58
#define writel outl
59
#endif
60
 
61
/* Offsets to the device registers.
62
   Unlike software-only systems, device drivers interact with complex hardware.
63
   It's not useful to define symbolic names for every register bit in the
64
   device.  The name can only partially document the semantics and make
65
   the driver longer and more difficult to read.
66
   In general, only the important configuration values or bits changed
67
   multiple times should be defined symbolically.
68
*/
69
enum dl2x_offsets {
70
        /* I/O register offsets */
71
        DMACtrl = 0x00,
72
        RxDMAStatus = 0x08,
73
        TFDListPtr0 = 0x10,
74
        TFDListPtr1 = 0x14,
75
        TxDMABurstThresh = 0x18,
76
        TxDMAUrgentThresh = 0x19,
77
        TxDMAPollPeriod = 0x1a,
78
        RFDListPtr0 = 0x1c,
79
        RFDListPtr1 = 0x20,
80
        RxDMABurstThresh = 0x24,
81
        RxDMAUrgentThresh = 0x25,
82
        RxDMAPollPeriod = 0x26,
83
        RxDMAIntCtrl = 0x28,
84
        DebugCtrl = 0x2c,
85
        ASICCtrl = 0x30,
86
        FifoCtrl = 0x38,
87
        RxEarlyThresh = 0x3a,
88
        FlowOffThresh = 0x3c,
89
        FlowOnThresh = 0x3e,
90
        TxStartThresh = 0x44,
91
        EepromData = 0x48,
92
        EepromCtrl = 0x4a,
93
        ExpromAddr = 0x4c,
94
        Exprodata = 0x50,
95
        WakeEvent = 0x51,
96
        CountDown = 0x54,
97
        IntStatusAck = 0x5a,
98
        IntEnable = 0x5c,
99
        IntStatus = 0x5e,
100
        TxStatus = 0x60,
101
        MACCtrl = 0x6c,
102
        VLANTag = 0x70,
103
        PhyCtrl = 0x76,
104
        StationAddr0 = 0x78,
105
        StationAddr1 = 0x7a,
106
        StationAddr2 = 0x7c,
107
        VLANId = 0x80,
108
        MaxFrameSize = 0x86,
109
        ReceiveMode = 0x88,
110
        HashTable0 = 0x8c,
111
        HashTable1 = 0x90,
112
        RmonStatMask = 0x98,
113
        StatMask = 0x9c,
114
        RxJumboFrames = 0xbc,
115
        TCPCheckSumErrors = 0xc0,
116
        IPCheckSumErrors = 0xc2,
117
        UDPCheckSumErrors = 0xc4,
118
        TxJumboFrames = 0xf4,
119
        /* Ethernet MIB statistic register offsets */
120
        OctetRcvOk = 0xa8,
121
        McstOctetRcvOk = 0xac,
122
        BcstOctetRcvOk = 0xb0,
123
        FramesRcvOk = 0xb4,
124
        McstFramesRcvdOk = 0xb8,
125
        BcstFramesRcvdOk = 0xbe,
126
        MacControlFramesRcvd = 0xc6,
127
        FrameTooLongErrors = 0xc8,
128
        InRangeLengthErrors = 0xca,
129
        FramesCheckSeqErrors = 0xcc,
130
        FramesLostRxErrors = 0xce,
131
        OctetXmtOk = 0xd0,
132
        McstOctetXmtOk = 0xd4,
133
        BcstOctetXmtOk = 0xd8,
134
        FramesXmtOk = 0xdc,
135
        McstFramesXmtdOk = 0xe0,
136
        FramesWDeferredXmt = 0xe4,
137
        LateCollisions = 0xe8,
138
        MultiColFrames = 0xec,
139
        SingleColFrames = 0xf0,
140
        BcstFramesXmtdOk = 0xf6,
141
        CarrierSenseErrors = 0xf8,
142
        MacControlFramesXmtd = 0xfa,
143
        FramesAbortXSColls = 0xfc,
144
        FramesWEXDeferal = 0xfe,
145
        /* RMON statistic register offsets */
146
        EtherStatsCollisions = 0x100,
147
        EtherStatsOctetsTransmit = 0x104,
148
        EtherStatsPktsTransmit = 0x108,
149
        EtherStatsPkts64OctetTransmit = 0x10c,
150
        EtherStats65to127OctetsTransmit = 0x110,
151
        EtherStatsPkts128to255OctetsTransmit = 0x114,
152
        EtherStatsPkts256to511OctetsTransmit = 0x118,
153
        EtherStatsPkts512to1023OctetsTransmit = 0x11c,
154
        EtherStatsPkts1024to1518OctetsTransmit = 0x120,
155
        EtherStatsCRCAlignErrors = 0x124,
156
        EtherStatsUndersizePkts = 0x128,
157
        EtherStatsFragments = 0x12c,
158
        EtherStatsJabbers = 0x130,
159
        EtherStatsOctets = 0x134,
160
        EtherStatsPkts = 0x138,
161
        EtherStats64Octets = 0x13c,
162
        EtherStatsPkts65to127Octets = 0x140,
163
        EtherStatsPkts128to255Octets = 0x144,
164
        EtherStatsPkts256to511Octets = 0x148,
165
        EtherStatsPkts512to1023Octets = 0x14c,
166
        EtherStatsPkts1024to1518Octets = 0x150,
167
};
168
 
169
/* Bits in the interrupt status/mask registers. */
170
enum IntStatus_bits {
171
        InterruptStatus = 0x0001,
172
        HostError = 0x0002,
173
        MACCtrlFrame = 0x0008,
174
        TxComplete = 0x0004,
175
        RxComplete = 0x0010,
176
        RxEarly = 0x0020,
177
        IntRequested = 0x0040,
178
        UpdateStats = 0x0080,
179
        LinkEvent = 0x0100,
180
        TxDMAComplete = 0x0200,
181
        RxDMAComplete = 0x0400,
182
        RFDListEnd = 0x0800,
183
        RxDMAPriority = 0x1000,
184
};
185
 
186
/* Bits in the ReceiveMode register. */
187
enum ReceiveMode_bits {
188
        ReceiveUnicast = 0x0001,
189
        ReceiveMulticast = 0x0002,
190
        ReceiveBroadcast = 0x0004,
191
        ReceiveAllFrames = 0x0008,
192
        ReceiveMulticastHash = 0x0010,
193
        ReceiveIPMulticast = 0x0020,
194
        ReceiveVLANMatch = 0x0100,
195
        ReceiveVLANHash = 0x0200,
196
};
197
/* Bits in MACCtrl. */
198
enum MACCtrl_bits {
199
        DuplexSelect = 0x20,
200
        TxFlowControlEnable = 0x80,
201
        RxFlowControlEnable = 0x0100,
202
        RcvFCS = 0x200,
203
        AutoVLANtagging = 0x1000,
204
        AutoVLANuntagging = 0x2000,
205
        StatsEnable = 0x00200000,
206
        StatsDisable = 0x00400000,
207
        StatsEnabled = 0x00800000,
208
        TxEnable = 0x01000000,
209
        TxDisable = 0x02000000,
210
        TxEnabled = 0x04000000,
211
        RxEnable = 0x08000000,
212
        RxDisable = 0x10000000,
213
        RxEnabled = 0x20000000,
214
};
215
 
216
enum ASICCtrl_LoWord_bits {
217
        PhyMedia = 0x0080,
218
};
219
 
220
enum ASICCtrl_HiWord_bits {
221
        GlobalReset = 0x0001,
222
        RxReset = 0x0002,
223
        TxReset = 0x0004,
224
        DMAReset = 0x0008,
225
        FIFOReset = 0x0010,
226
        NetworkReset = 0x0020,
227
        HostReset = 0x0040,
228
        ResetBusy = 0x0400,
229
};
230
 
231
/* Transmit Frame Control bits */
232
enum TFC_bits {
233
        DwordAlign = 0x00000000,
234
        WordAlignDisable = 0x00030000,
235
        WordAlign = 0x00020000,
236
        TCPChecksumEnable = 0x00040000,
237
        UDPChecksumEnable = 0x00080000,
238
        IPChecksumEnable = 0x00100000,
239
        FCSAppendDisable = 0x00200000,
240
        TxIndicate = 0x00400000,
241
        TxDMAIndicate = 0x00800000,
242
        FragCountShift = 24,
243
        VLANTagInsert = 0x0000000010000000,
244
        TFDDone = 0x80000000,
245
        VIDShift = 32,
246
        UsePriorityShift = 48,
247
};
248
 
249
/* Receive Frames Status bits */
250
enum RFS_bits {
251
        RxFIFOOverrun = 0x00010000,
252
        RxRuntFrame = 0x00020000,
253
        RxAlignmentError = 0x00040000,
254
        RxFCSError = 0x00080000,
255
        RxOverSizedFrame = 0x00100000,
256
        RxLengthError = 0x00200000,
257
        VLANDetected = 0x00400000,
258
        TCPDetected = 0x00800000,
259
        TCPError = 0x01000000,
260
        UDPDetected = 0x02000000,
261
        UDPError = 0x04000000,
262
        IPDetected = 0x08000000,
263
        IPError = 0x10000000,
264
        FrameStart = 0x20000000,
265
        FrameEnd = 0x40000000,
266
        RFDDone = 0x80000000,
267
        TCIShift = 32,
268
        RFS_Errors = 0x003f0000,
269
};
270
 
271
#define MII_RESET_TIME_OUT              10000
272
/* MII register */
273
enum _mii_reg {
274
        MII_BMCR = 0,
275
        MII_BMSR = 1,
276
        MII_PHY_ID1 = 2,
277
        MII_PHY_ID2 = 3,
278
        MII_ANAR = 4,
279
        MII_ANLPAR = 5,
280
        MII_ANER = 6,
281
        MII_ANNPT = 7,
282
        MII_ANLPRNP = 8,
283
        MII_MSCR = 9,
284
        MII_MSSR = 10,
285
        MII_ESR = 15,
286
        MII_PHY_SCR = 16,
287
};
288
/* PCS register */
289
enum _pcs_reg {
290
        PCS_BMCR = 0,
291
        PCS_BMSR = 1,
292
        PCS_ANAR = 4,
293
        PCS_ANLPAR = 5,
294
        PCS_ANER = 6,
295
        PCS_ANNPT = 7,
296
        PCS_ANLPRNP = 8,
297
        PCS_ESR = 15,
298
};
299
 
300
/* Basic Mode Control Register */
301
enum _mii_bmcr {
302
        MII_BMCR_RESET = 0x8000,
303
        MII_BMCR_LOOP_BACK = 0x4000,
304
        MII_BMCR_SPEED_LSB = 0x2000,
305
        MII_BMCR_AN_ENABLE = 0x1000,
306
        MII_BMCR_POWER_DOWN = 0x0800,
307
        MII_BMCR_ISOLATE = 0x0400,
308
        MII_BMCR_RESTART_AN = 0x0200,
309
        MII_BMCR_DUPLEX_MODE = 0x0100,
310
        MII_BMCR_COL_TEST = 0x0080,
311
        MII_BMCR_SPEED_MSB = 0x0040,
312
        MII_BMCR_SPEED_RESERVED = 0x003f,
313
        MII_BMCR_SPEED_10 = 0,
314
        MII_BMCR_SPEED_100 = MII_BMCR_SPEED_LSB,
315
        MII_BMCR_SPEED_1000 = MII_BMCR_SPEED_MSB,
316
};
317
 
318
/* Basic Mode Status Register */
319
enum _mii_bmsr {
320
        MII_BMSR_100BT4 = 0x8000,
321
        MII_BMSR_100BX_FD = 0x4000,
322
        MII_BMSR_100BX_HD = 0x2000,
323
        MII_BMSR_10BT_FD = 0x1000,
324
        MII_BMSR_10BT_HD = 0x0800,
325
        MII_BMSR_100BT2_FD = 0x0400,
326
        MII_BMSR_100BT2_HD = 0x0200,
327
        MII_BMSR_EXT_STATUS = 0x0100,
328
        MII_BMSR_PREAMBLE_SUPP = 0x0040,
329
        MII_BMSR_AN_COMPLETE = 0x0020,
330
        MII_BMSR_REMOTE_FAULT = 0x0010,
331
        MII_BMSR_AN_ABILITY = 0x0008,
332
        MII_BMSR_LINK_STATUS = 0x0004,
333
        MII_BMSR_JABBER_DETECT = 0x0002,
334
        MII_BMSR_EXT_CAP = 0x0001,
335
};
336
 
337
/* ANAR */
338
enum _mii_anar {
339
        MII_ANAR_NEXT_PAGE = 0x8000,
340
        MII_ANAR_REMOTE_FAULT = 0x4000,
341
        MII_ANAR_ASYMMETRIC = 0x0800,
342
        MII_ANAR_PAUSE = 0x0400,
343
        MII_ANAR_100BT4 = 0x0200,
344
        MII_ANAR_100BX_FD = 0x0100,
345
        MII_ANAR_100BX_HD = 0x0080,
346
        MII_ANAR_10BT_FD = 0x0020,
347
        MII_ANAR_10BT_HD = 0x0010,
348
        MII_ANAR_SELECTOR = 0x001f,
349
        MII_IEEE8023_CSMACD = 0x0001,
350
};
351
 
352
/* ANLPAR */
353
enum _mii_anlpar {
354
        MII_ANLPAR_NEXT_PAGE = MII_ANAR_NEXT_PAGE,
355
        MII_ANLPAR_REMOTE_FAULT = MII_ANAR_REMOTE_FAULT,
356
        MII_ANLPAR_ASYMMETRIC = MII_ANAR_ASYMMETRIC,
357
        MII_ANLPAR_PAUSE = MII_ANAR_PAUSE,
358
        MII_ANLPAR_100BT4 = MII_ANAR_100BT4,
359
        MII_ANLPAR_100BX_FD = MII_ANAR_100BX_FD,
360
        MII_ANLPAR_100BX_HD = MII_ANAR_100BX_HD,
361
        MII_ANLPAR_10BT_FD = MII_ANAR_10BT_FD,
362
        MII_ANLPAR_10BT_HD = MII_ANAR_10BT_HD,
363
        MII_ANLPAR_SELECTOR = MII_ANAR_SELECTOR,
364
};
365
 
366
/* Auto-Negotiation Expansion Register */
367
enum _mii_aner {
368
        MII_ANER_PAR_DETECT_FAULT = 0x0010,
369
        MII_ANER_LP_NEXTPAGABLE = 0x0008,
370
        MII_ANER_NETXTPAGABLE = 0x0004,
371
        MII_ANER_PAGE_RECEIVED = 0x0002,
372
        MII_ANER_LP_NEGOTIABLE = 0x0001,
373
};
374
 
375
/* MASTER-SLAVE Control Register */
376
enum _mii_mscr {
377
        MII_MSCR_TEST_MODE = 0xe000,
378
        MII_MSCR_CFG_ENABLE = 0x1000,
379
        MII_MSCR_CFG_VALUE = 0x0800,
380
        MII_MSCR_PORT_VALUE = 0x0400,
381
        MII_MSCR_1000BT_FD = 0x0200,
382
        MII_MSCR_1000BT_HD = 0X0100,
383
};
384
 
385
/* MASTER-SLAVE Status Register */
386
enum _mii_mssr {
387
        MII_MSSR_CFG_FAULT = 0x8000,
388
        MII_MSSR_CFG_RES = 0x4000,
389
        MII_MSSR_LOCAL_RCV_STATUS = 0x2000,
390
        MII_MSSR_REMOTE_RCVR = 0x1000,
391
        MII_MSSR_LP_1000BT_HD = 0x0800,
392
        MII_MSSR_LP_1000BT_FD = 0x0400,
393
        MII_MSSR_IDLE_ERR_COUNT = 0x00ff,
394
};
395
 
396
/* IEEE Extened Status Register */
397
enum _mii_esr {
398
        MII_ESR_1000BX_FD = 0x8000,
399
        MII_ESR_1000BX_HD = 0x4000,
400
        MII_ESR_1000BT_FD = 0x2000,
401
        MII_ESR_1000BT_HD = 0x1000,
402
};
403
/* PHY Specific Control Register */
404
#if 0
405
typedef union t_MII_PHY_SCR {
406
        u16 image;
407
        struct {
408
                u16 disable_jabber:1;   // bit 0
409
                u16 polarity_reversal:1;        // bit 1
410
                u16 SEQ_test:1; // bit 2
411
                u16 _bit_3:1;   // bit 3
412
                u16 disable_CLK125:1;   // bit 4
413
                u16 mdi_crossover_mode:2;       // bit 6:5
414
                u16 enable_ext_dist:1;  // bit 7
415
                u16 _bit_8_9:2; // bit 9:8
416
                u16 force_link:1;       // bit 10
417
                u16 assert_CRS:1;       // bit 11
418
                u16 rcv_fifo_depth:2;   // bit 13:12
419
                u16 xmit_fifo_depth:2;  // bit 15:14
420
        } bits;
421
} PHY_SCR_t, *PPHY_SCR_t;
422
#endif
423
 
424
typedef enum t_MII_ADMIN_STATUS {
425
        adm_reset,
426
        adm_operational,
427
        adm_loopback,
428
        adm_power_down,
429
        adm_isolate
430
} MII_ADMIN_t, *PMII_ADMIN_t;
431
 
432
/* Physical Coding Sublayer Management (PCS) */
433
/* PCS control and status registers bitmap as the same as MII */
434
/* PCS Extended Status register bitmap as the same as MII */
435
/* PCS ANAR */
436
enum _pcs_anar {
437
        PCS_ANAR_NEXT_PAGE = 0x8000,
438
        PCS_ANAR_REMOTE_FAULT = 0x3000,
439
        PCS_ANAR_ASYMMETRIC = 0x0100,
440
        PCS_ANAR_PAUSE = 0x0080,
441
        PCS_ANAR_HALF_DUPLEX = 0x0040,
442
        PCS_ANAR_FULL_DUPLEX = 0x0020,
443
};
444
/* PCS ANLPAR */
445
enum _pcs_anlpar {
446
        PCS_ANLPAR_NEXT_PAGE = PCS_ANAR_NEXT_PAGE,
447
        PCS_ANLPAR_REMOTE_FAULT = PCS_ANAR_REMOTE_FAULT,
448
        PCS_ANLPAR_ASYMMETRIC = PCS_ANAR_ASYMMETRIC,
449
        PCS_ANLPAR_PAUSE = PCS_ANAR_PAUSE,
450
        PCS_ANLPAR_HALF_DUPLEX = PCS_ANAR_HALF_DUPLEX,
451
        PCS_ANLPAR_FULL_DUPLEX = PCS_ANAR_FULL_DUPLEX,
452
};
453
 
454
typedef struct t_SROM {
455
        u16 config_param;       /* 0x00 */
456
        u16 asic_ctrl;          /* 0x02 */
457
        u16 sub_vendor_id;      /* 0x04 */
458
        u16 sub_system_id;      /* 0x06 */
459
        u16 reserved1[12];      /* 0x08-0x1f */
460
        u8 mac_addr[6];         /* 0x20-0x25 */
461
        u8 reserved2[10];       /* 0x26-0x2f */
462
        u8 sib[204];            /* 0x30-0xfb */
463
        u32 crc;                /* 0xfc-0xff */
464
} SROM_t, *PSROM_t;
465
 
466
/* Ioctl custom data */
467
struct ioctl_data {
468
        char signature[10];
469
        int cmd;
470
        int len;
471
        char *data;
472
};
473
 
474
struct mii_data {
475
        __u16 reserved;
476
        __u16 reg_num;
477
        __u16 in_value;
478
        __u16 out_value;
479
};
480
 
481
/* The Rx and Tx buffer descriptors. */
482
struct netdev_desc {
483
        __le64 next_desc;
484
        __le64 status;
485
        __le64 fraginfo;
486
};
487
 
488
#define PRIV_ALIGN      15      /* Required alignment mask */
489
/* Use  __attribute__((aligned (L1_CACHE_BYTES)))  to maintain alignment
490
   within the structure. */
491
struct netdev_private {
492
        /* Descriptor rings first for alignment. */
493
        struct netdev_desc *rx_ring;
494
        struct netdev_desc *tx_ring;
495
        struct sk_buff *rx_skbuff[RX_RING_SIZE];
496
        struct sk_buff *tx_skbuff[TX_RING_SIZE];
497
        dma_addr_t tx_ring_dma;
498
        dma_addr_t rx_ring_dma;
499
        struct pci_dev *pdev;
500
        spinlock_t tx_lock;
501
        spinlock_t rx_lock;
502
        struct net_device_stats stats;
503
        unsigned int rx_buf_sz;         /* Based on MTU+slack. */
504
        unsigned int speed;             /* Operating speed */
505
        unsigned int vlan;              /* VLAN Id */
506
        unsigned int chip_id;           /* PCI table chip id */
507
        unsigned int rx_coalesce;       /* Maximum frames each RxDMAComplete intr */
508
        unsigned int rx_timeout;        /* Wait time between RxDMAComplete intr */
509
        unsigned int tx_coalesce;       /* Maximum frames each tx interrupt */
510
        unsigned int full_duplex:1;     /* Full-duplex operation requested. */
511
        unsigned int an_enable:2;       /* Auto-Negotiated Enable */
512
        unsigned int jumbo:1;           /* Jumbo frame enable */
513
        unsigned int coalesce:1;        /* Rx coalescing enable */
514
        unsigned int tx_flow:1;         /* Tx flow control enable */
515
        unsigned int rx_flow:1;         /* Rx flow control enable */
516
        unsigned int phy_media:1;       /* 1: fiber, 0: copper */
517
        unsigned int link_status:1;     /* Current link status */
518
        struct netdev_desc *last_tx;    /* Last Tx descriptor used. */
519
        unsigned long cur_rx, old_rx;   /* Producer/consumer ring indices */
520
        unsigned long cur_tx, old_tx;
521
        struct timer_list timer;
522
        int wake_polarity;
523
        char name[256];         /* net device description */
524
        u8 duplex_polarity;
525
        u16 mcast_filter[4];
526
        u16 advertising;        /* NWay media advertisement */
527
        u16 negotiate;          /* Negotiated media */
528
        int phy_addr;           /* PHY addresses. */
529
};
530
 
531
/* The station address location in the EEPROM. */
532
/* The struct pci_device_id consist of:
533
        vendor, device          Vendor and device ID to match (or PCI_ANY_ID)
534
        subvendor, subdevice    Subsystem vendor and device ID to match (or PCI_ANY_ID)
535
        class                   Device class to match. The class_mask tells which bits
536
        class_mask              of the class are honored during the comparison.
537
        driver_data             Data private to the driver.
538
*/
539
 
540
static const struct pci_device_id rio_pci_tbl[] = {
541
        {0x1186, 0x4000, PCI_ANY_ID, PCI_ANY_ID, },
542
        {0x13f0, 0x1021, PCI_ANY_ID, PCI_ANY_ID, },
543
        { }
544
};
545
MODULE_DEVICE_TABLE (pci, rio_pci_tbl);
546
#define TX_TIMEOUT  (4*HZ)
547
#define PACKET_SIZE             1536
548
#define MAX_JUMBO               8000
549
#define RIO_IO_SIZE             340
550
#define DEFAULT_RXC             5
551
#define DEFAULT_RXT             750
552
#define DEFAULT_TXC             1
553
#define MAX_TXC                 8
554
#endif                          /* __DL2K_H__ */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.