[eepro100-bug] i82559er problem

Durval Menezes scyld@tmp.com.br
Mon Oct 7 18:31:01 2002

Content-Type: text/plain; charset=us-ascii

Dear Sirs,

As I told earlier, I've done some experimenting with the 82559ER board
I received earlier today (for the record, it's an IWill UPLAN 4Ports CF).

As expected (different PCI IDs) the venerable eepro100 version 1.05 
(which comes with the stock linux 2.0.39 kernel) does not recognize
this board.

Reluctant to rely on newer versions of this driver (see my own messages
on this list, also other people's), I've patched the v1.05 to recognize
the 82559ER PCI ID (0x1209). Apart from recognizing and initializing the
interfaces (this board has 4 of them) perfectly, which I expected, it 
greatly amazed me to find that this driver seems to be working perfectly,
without the problems reported by Mr. Sikka and others:

> On Fri, 9 Aug 2002, Pavan Sikka wrote:
> Problem (using version 1.24 of the driver off www.scyld.com):
> To demonstrate the problem:
> 1. On the "problem" machine:
>      ping -f -s 1024 <remote-machine>

With the above described hardware and software:

# ping -f -s 1500 <remote-machine>
23999509 packets transmitted, 23051044 packets received, 3% packet loss
round-trip min/avg/max 0.4/5.7/10.1ms

> 2. On the remote machine:
>     ping -f -s 1024 <problem-machine>

Running Linux 2.2.20 with the stock (v1.09j-t 9/29/99) eepro100 driver,
with a standard 82559 (not ER) Intel card:

# ping -s 1500 -f
PING ( from : 1500(1528) bytes of data.
Warning: no SO_RCVTIMEO support, falling back to poll
--- ping statistics ---
1018040 packets transmitted, 1018039 packets received, 0% packet loss
round-trip min/avg/max/mdev = 0.428/2.875/296.147/2.744 ms

Both pings ran simultaneously for something like 1 hour, with no issues
whatsoever: both machines stayed responsive during and after the test
(I don't have an explanation for the fact that the "remote" machine
was able to send much less packets than the "problem" machine, but I
suspect the "Warning:" above has something to do with it).

Attached please see my (trivial) patch.  I will be doing some more 
(heavier) testing on it over the next few days.

Hope this can be of use to someone else.

Best Regards,
   Durval Menezes (scyld AT tmp DOT com DOT br, http://www.tmp.com.br/)

On Mon, Oct 07, 2002 at 01:21:49PM -0300, Durval Menezes wrote:
> > On Fri, 9 Aug 2002, Pavan Sikka wrote:
> > > On Fri, 9 Aug 2002, Donald Becker wrote:
> > > 3. I have tried very hard to get the software manual for this chip but
> > > have not yet succeeded. I will be happy to sign an NDA but I cant seem
> > > to find anyone in Intel to talk to (I am in Australia). Could you
> > > provide a contact in Intel who could facilitate this ?
> > 
> > _I_ can't get updated programming information.  Some parts of Intel
> > can't figure out who their supporters are...
> I've found that chip's datasheet on the web: it's at 
> 	http://www.charmed.com/support/datasheets/lcd6/82559ER.pdf
> It contais at least _some_ programming info. If for some reason you
> can't get it, I will be happy to attach in an email, just holler.
> I've just received a board with 82559ER chips, I expect to do some
> experimenting real soon now.
> BTW: any further news on these 559ER issues?
> -- 
>    Durval Menezes (scyld AT tmp DOT com DOT br, http://www.tmp.com.br/)

Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="durval-i82559er.patch"

# durval-i82559er.patch
# Trivial patch to add i82559ER (newest Intel FastEthernet chip)
# recognition to the eepro100 driver
# Warning: the resulting driver is still EXPERIMENTAL and UNDER TEST.
# 2002/10/07 Durval Menezes <durval AT tmp DOT com DOT br>

--- linux-2.0.39/include/linux/pci.h.i82559er	Mon Aug 13 11:42:04 2001
+++ linux-2.0.39/include/linux/pci.h	Mon Oct  7 15:00:27 2002
@@ -937,6 +937,7 @@
 #define PCI_DEVICE_ID_INTEL_82596	0x1226
 #define PCI_DEVICE_ID_INTEL_82865	0x1227
 #define PCI_DEVICE_ID_INTEL_82557	0x1229
+#define PCI_DEVICE_ID_INTEL_82559ER	0x1209
 #define PCI_DEVICE_ID_INTEL_82437	0x122d
 #define PCI_DEVICE_ID_INTEL_82371_0	0x122e
 #define PCI_DEVICE_ID_INTEL_82371_1	0x1230
--- linux-2.0.39/drivers/net/eepro100.c.i82559er	Sun Sep  3 18:04:40 2000
+++ linux-2.0.39/drivers/net/eepro100.c	Mon Oct  7 18:49:48 2002
@@ -21,7 +21,7 @@
 static const char *version =
-"eepro100.c:v1.05 10/16/98 Donald Becker http://cesdis.gsfc.nasa.gov/linux/drivers/eepro100.html\n";
+"eepro100.c:v1.05dm1 10/16/98 Donald Becker http://cesdis.gsfc.nasa.gov/linux/drivers/eepro100.html, patched by Durval Menezes <durval AT tmp DOT com DOT br> in 2002/10/07 to recognize the i82559ER PCI ID\n";
 /* A few user-configurable values that apply to all boards.
    First set are undocumented and spelled per Intel recommendations. */
@@ -467,6 +467,10 @@
 		if (pcibios_find_device(PCI_VENDOR_ID_INTEL,
+								pci_index, &pci_bus,
+								&pci_device_fn) &&
+			pcibios_find_device(PCI_VENDOR_ID_INTEL,
+								PCI_DEVICE_ID_INTEL_82559ER,
 								pci_index, &pci_bus,

#eof durval-i82559er.patch