Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
/* EtherLinkXL.c: A 3Com EtherLink PCI III/XL ethernet driver for linux. */
/*
Written 1996-1999 by Donald Becker.
This software may be used and distributed according to the terms
of the GNU General Public License, incorporated herein by reference.
This driver is for the 3Com "Vortex" and "Boomerang" series ethercards.
Members of the series include Fast EtherLink 3c590/3c592/3c595/3c597
and the EtherLink XL 3c900 and 3c905 cards.
Problem reports and questions should be directed to
vortex@scyld.com
The author may be reached as becker@scyld.com, or C/O
Scyld Computing Corporation
410 Severn Ave., Suite 210
Annapolis MD 21403
Linux Kernel Additions:
0.99H+lk0.9 - David S. Miller - softnet, PCI DMA updates
0.99H+lk1.0 - Jeff Garzik <jgarzik@pobox.com>
Remove compatibility defines for kernel versions < 2.2.x.
Update for new 2.3.x module interface
LK1.1.2 (March 19, 2000)
* New PCI interface (jgarzik)
LK1.1.3 25 April 2000, Andrew Morton <andrewm@uow.edu.au>
- Merged with 3c575_cb.c
- Don't set RxComplete in boomerang interrupt enable reg
- spinlock in vortex_timer to protect mdio functions
- disable local interrupts around call to vortex_interrupt in
vortex_tx_timeout() (So vortex_interrupt can use spin_lock())
- Select window 3 in vortex_timer()'s write to Wn3_MAC_Ctrl
- In vortex_start_xmit(), move the lock to _after_ we've altered
vp->cur_tx and vp->tx_full. This defeats the race between
vortex_start_xmit() and vortex_interrupt which was identified
by Bogdan Costescu.
- Merged back support for six new cards from various sources
- Set vortex_have_pci if pci_module_init returns zero (fixes cardbus
insertion oops)
- Tell it that 3c905C has NWAY for 100bT autoneg
- Fix handling of SetStatusEnd in 'Too much work..' code, as
per 2.3.99's 3c575_cb (Dave Hinds).
- Split ISR into two for vortex & boomerang
- Fix MOD_INC/DEC races
- Handle resource allocation failures.
- Fix 3CCFE575CT LED polarity
- Make tx_interrupt_mitigation the default
LK1.1.4 25 April 2000, Andrew Morton <andrewm@uow.edu.au>
- Add extra TxReset to vortex_up() to fix 575_cb hotplug initialisation probs.
- Put vortex_info_tbl into __devinitdata
- In the vortex_error StatsFull HACK, disable stats in vp->intr_enable as well
as in the hardware.
- Increased the loop counter in issue_and_wait from 2,000 to 4,000.
LK1.1.5 28 April 2000, andrewm
- Added powerpc defines (John Daniel <jdaniel@etresoft.com> said these work...)
- Some extra diagnostics
- In vortex_error(), reset the Tx on maxCollisions. Otherwise most
chips usually get a Tx timeout.
- Added extra_reset module parm
- Replaced some inline timer manip with mod_timer
(Franois romieu <Francois.Romieu@nic.fr>)
- In vortex_up(), don't make Wn3_config initialisation dependent upon has_nway
(this came across from 3c575_cb).
LK1.1.6 06 Jun 2000, andrewm
- Backed out the PPC defines.
- Use del_timer_sync(), mod_timer().
- Fix wrapped ulong comparison in boomerang_rx()
- Add IS_TORNADO, use it to suppress 3c905C checksum error msg
(Donald Becker, I Lee Hetherington <ilh@sls.lcs.mit.edu>)
- Replace union wn3_config with BFINS/BFEXT manipulation for
sparc64 (Pete Zaitcev, Peter Jones)
- In vortex_error, do_tx_reset and vortex_tx_timeout(Vortex):
do a netif_wake_queue() to better recover from errors. (Anders Pedersen,
Donald Becker)
- Print a warning on out-of-memory (rate limited to 1 per 10 secs)
- Added two more Cardbus 575 NICs: 5b57 and 6564 (Paul Wagland)
LK1.1.7 2 Jul 2000 andrewm
- Better handling of shared IRQs
- Reset the transmitter on a Tx reclaim error
- Fixed crash under OOM during vortex_open() (Mark Hemment)
- Fix Rx cessation problem during OOM (help from Mark Hemment)
- The spinlocks around the mdio access were blocking interrupts for 300uS.
Fix all this to use spin_lock_bh() within mdio_read/write
- Only write to TxFreeThreshold if it's a boomerang - other NICs don't
have one.
- Added 802.3x MAC-layer flow control support
LK1.1.8 13 Aug 2000 andrewm
- Ignore request_region() return value - already reserved if Cardbus.
- Merged some additional Cardbus flags from Don's 0.99Qk
- Some fixes for 3c556 (Fred Maciel)
- Fix for EISA initialisation (Jan Rekorajski)
- Renamed MII_XCVR_PWR and EEPROM_230 to align with 3c575_cb and D. Becker's drivers
- Fixed MII_XCVR_PWR for 3CCFE575CT
- Added INVERT_LED_PWR, used it.
- Backed out the extra_reset stuff
LK1.1.9 12 Sep 2000 andrewm
- Backed out the tx_reset_resume flags. It was a no-op.
- In vortex_error, don't reset the Tx on txReclaim errors
- In vortex_error, don't reset the Tx on maxCollisions errors.
Hence backed out all the DownListPtr logic here.
- In vortex_error, give Tornado cards a partial TxReset on
maxCollisions (David Hinds). Defined MAX_COLLISION_RESET for this.
- Redid some driver flags and device names based on pcmcia_cs-3.1.20.
- Fixed a bug where, if vp->tx_full is set when the interface
is downed, it remains set when the interface is upped. Bad
things happen.
LK1.1.10 17 Sep 2000 andrewm
- Added EEPROM_8BIT for 3c555 (Fred Maciel)
- Added experimental support for the 3c556B Laptop Hurricane (Louis Gerbarg)
- Add HAS_NWAY to "3c900 Cyclone 10Mbps TPO"
LK1.1.11 13 Nov 2000 andrewm
- Dump MOD_INC/DEC_USE_COUNT, use SET_MODULE_OWNER
LK1.1.12 1 Jan 2001 andrewm (2.4.0-pre1)
- Call pci_enable_device before we request our IRQ (Tobias Ringstrom)
- Add 3c590 PCI latency timer hack to vortex_probe1 (from 0.99Ra)
- Added extended issue_and_wait for the 3c905CX.
- Look for an MII on PHY index 24 first (3c905CX oddity).
- Add HAS_NWAY to 3cSOHO100-TX (Brett Frankenberger)
- Don't free skbs we don't own on oom path in vortex_open().
LK1.1.13 27 Jan 2001
- Added explicit `medialock' flag so we can truly
lock the media type down with `options'.
- "check ioremap return and some tidbits" (Arnaldo Carvalho de Melo <acme@conectiva.com.br>)
- Added and used EEPROM_NORESET for 3c556B PM resumes.
- Fixed leakage of vp->rx_ring.
- Break out separate HAS_HWCKSM device capability flag.
- Kill vp->tx_full (ANK)
- Merge zerocopy fragment handling (ANK?)
LK1.1.14 15 Feb 2001
- Enable WOL. Can be turned on with `enable_wol' module option.
- EISA and PCI initialisation fixes (jgarzik, Manfred Spraul)
- If a device's internalconfig register reports it has NWAY,
use it, even if autoselect is enabled.
LK1.1.15 6 June 2001 akpm
- Prevent double counting of received bytes (Lars Christensen)
- Add ethtool support (jgarzik)
- Add module parm descriptions (Andrzej M. Krzysztofowicz)
- Implemented alloc_etherdev() API
- Special-case the 'Tx error 82' message.
LK1.1.16 18 July 2001 akpm
- Make NETIF_F_SG dependent upon nr_free_highpages(), not on CONFIG_HIGHMEM
- Lessen verbosity of bootup messages
- Fix WOL - use new PM API functions.
- Use netif_running() instead of vp->open in suspend/resume.
- Don't reset the interface logic on open/close/rmmod. It upsets
autonegotiation, and hence DHCP (from 0.99T).
- Back out EEPROM_NORESET flag because of the above (we do it for all
NICs).
- Correct 3c982 identification string
- Rename wait_for_completion() to issue_and_wait() to avoid completion.h
clash.
LK1.1.17 18Dec01 akpm
- PCI ID 9805 is a Python-T, not a dual-port Cyclone. Apparently.
And it has NWAY.
- Mask our advertised modes (vp->advertising) with our capabilities
(MII reg5) when deciding which duplex mode to use.
- Add `global_options' as default for options[]. Ditto global_enable_wol,
global_full_duplex.
LK1.1.18 01Jul02 akpm
- Fix for undocumented transceiver power-up bit on some 3c566B's
(Donald Becker, Rahul Karnik)
- See http://www.zip.com.au/~akpm/linux/#3c59x-2.3 for more details.
- Also see Documentation/networking/vortex.txt
LK1.1.19 10Nov02 Marc Zyngier <maz@wild-wind.fr.eu.org>
- EISA sysfs integration.
*/
/*
* FIXME: This driver _could_ support MTU changing, but doesn't. See Don's hamachi.c implementation
* as well as other drivers
*
* NOTE: If you make 'vortex_debug' a constant (#define vortex_debug 0) the driver shrinks by 2k
* due to dead code elimination. There will be some performance benefits from this due to
* elimination of all the tests and reduced cache footprint.
*/
#define DRV_NAME "3c59x"
#define DRV_VERSION "LK1.1.19"
#define DRV_RELDATE "10 Nov 2002"
Loading
Loading full blame...