Messages in this thread Patch in this message | | | Date | Sat, 16 Aug 1997 00:32:20 +0200 (CEST) | From | Kurt Huwig <> | Subject | PATCH: ICL EtherTeam 16i fix |
| |
Hello!
I had problems with an ICL EtherTeam 16i when booting via a TCP/IP-bootprom. The card was not detected in 4 of 5 boots. I found that it was due to a too restrictive signature check. The patch below lets it boot fine now for 30+ reboots, so I guess it works.
I contacted the author, but he didn't reply yet and Linus wants to finish 2.0.31, so have a look at it.
Kurt
------------------------------------------------------------ | yes, it runs | Designed for | Microsoft | intel | | with Netware | Windows 95 | Windows compliant | inside | ------------------------------------------------------------ If you still have problems reading this signature, get Linux and a REAL cpu! --- linux-2.0.30/drivers/net/eth16i.c Tue Apr 8 17:47:45 1997 +++ linux/drivers/net/eth16i.c Sat Aug 16 00:30:40 1997 @@ -61,6 +61,11 @@ 0.21 17.10-95 Removed the unnecessary extern init_etherdev() declaration. Some other cleanups. + + 0.21a 15.08-97 Made signature check less restrictive to + detect card that have been used for booting + with a bootprom. + Kurt Huwig <kurt@huwig.de> Bugs: In some cases the interface autoprobing code doesn't find the correct interface type. In this case you can @@ -72,7 +77,7 @@ */ static char *version = - "eth16i.c: v0.21 17-10-95 Mika Kuoppala (miku@elt.icl.fi)\n"; + "eth16i.c: v0.21a 15-08-97 Mika Kuoppala (miku@elt.icl.fi)/Kurt Huwig (kurt@huwig.de)\n"; #include <linux/module.h> @@ -722,10 +727,10 @@ #endif if( !( (creg[2] == 0x36) && (creg[3] == 0xE0)) ) { - creg[2] &= 0x42; + creg[2] &= 0x40; creg[3] &= 0x03; - if( !( (creg[2] == 0x42) && (creg[3] == 0x00)) ) + if( !( (creg[2] == 0x40) && (creg[3] == 0x00)) ) return -1; } | |