From service@huali-cn.com Wed Nov 3 20:21:02 1999 Date: Wed Nov 3 20:21:02 1999 From: 华立服务速递 service@huali-cn.com Subject: 华立服务 ---SpringSun-attach-boundary-941677477--- Content-type: text/plain 欢迎使用 五邑五线 ============================ http://www.wyol.huali-cn.com ============================ 五邑在线是广东省江门五邑侨乡地区的一个商业性 搜索引擎,收录了江门五邑地区的几百家商业企业网站, 并有众多的商业合作项目、商业快讯,是您事业成功的 第一步! 把握机遇、再创辉煌! 欢迎使用 五邑五线 ============================ http://www.wyol.huali-cn.com ============================ 感谢您订阅《华立服务》,您可以点击以下地址订阅或退订《华立服务》 http://www.shangshang.com/cgi-bin/emailer.pl?do=suborunsub&user=huali 本邮件采用无限邮件列表发送,但所有言论不代表溧阳人信息网任何观点 ================================================================ 欢迎使用溧阳人信息网(溧阳无限网络工作室)开发的网络五虎将系统 http://www.liyangman.com/ ---------------------------------------------------------------- 免费邮件列表、邮件使者、文件传送专家、网站镜像专家、网站上传专家 ---SpringSun-attach-boundary-941677477----- From gooba42@yahoo.com Thu Nov 4 20:45:51 1999 Date: Thu Nov 4 20:45:51 1999 From: Gooba gooba42@yahoo.com Subject: No subject This is a multi-part message in MIME format. ------=_NextPart_000_001B_01BF26EC.6C3AE680 Content-Type: multipart/alternative; boundary="----=_NextPart_001_001C_01BF26EC.6C3AE680" ------=_NextPart_001_001C_01BF26EC.6C3AE680 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable (Previously copied and pasted to the wrong group, but here goes) I'm running a system configured as: AMD K6-2 350 128 MB RAM Sohoware NDC 10/100 Fast Ethernet NIC Mandrake Linux 6.0 Kernel 2.2.13-22MDK (mandrake distributed kernel) I previously used a modified version of the tulip driver available from = the Sohoware website. I did so without a problem until a kernel upgrade = stopped my network card form functioning, at which point I was told that = the two versions had been merged and that if I came to the NASA site and = got the new version all would be well. This was true until my most = recent kernel upgrade to the kernel above and now it won't install the = module properly, gives me about 2 dozen "unresolved symbol" messages and = then dumps out. Is there a new version of the driver somewhere that's = gonna work or is there one in the works?=20 I'd hate to have to sacrifice the UDF support and a couple of other = goodies to make the card work. (Hope I did this right) Thanks ------=_NextPart_001_001C_01BF26EC.6C3AE680 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
(Previously copied and pasted to the = wrong group,=20 but here goes)
 
I'm running a system configured = as:
AMD K6-2 350
128 MB RAM
Sohoware NDC 10/100 Fast Ethernet = NIC
Mandrake Linux 6.0
Kernel 2.2.13-22MDK (mandrake = distributed=20 kernel)
 
I previously used a modified version of = the tulip=20 driver available from the Sohoware website. I did so without a problem = until a=20 kernel upgrade stopped my network card form functioning, at which point = I was=20 told that the two versions had been merged and that if I came to the = NASA site=20 and got the new version all would be well. This was true until my most = recent=20 kernel upgrade to the kernel above and now it won't install the module = properly,=20 gives me about 2 dozen "unresolved symbol" messages and then dumps out. = Is there=20 a new version of the driver somewhere that's gonna work or is there one = in the=20 works?
I'd hate to have to sacrifice the UDF = support and a=20 couple of other goodies to make the card work.
 
(Hope I did this right)
Thanks
------=_NextPart_001_001C_01BF26EC.6C3AE680-- ------=_NextPart_000_001B_01BF26EC.6C3AE680 Content-Type: application/x-pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIII7DCCAp8w ggIIoAMCAQICAwF/rDANBgkqhkiG9w0BAQQFADCBlDELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdl c3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzANBgNVBAoTBlRoYXd0ZTEdMBsGA1UE CxMUQ2VydGlmaWNhdGUgU2VydmljZXMxKDAmBgNVBAMTH1BlcnNvbmFsIEZyZWVtYWlsIFJTQSAx OTk5LjkuMTYwHhcNOTkxMDA4MDE0NTIzWhcNMDAxMDA3MDE0NTIzWjBDMR8wHQYDVQQDExZUaGF3 dGUgRnJlZW1haWwgTWVtYmVyMSAwHgYJKoZIhvcNAQkBFhFnb29iYTQyQHlhaG9vLmNvbTCBnzAN BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuXIIse4YO1Y3daIkDq0x7CiFi9ShjlhW1c4jh85wAhJe CFLymYf+6n5BIfdvqeQ5oHjKuGBUgZoWqp5MveNZrDjVJgscYf0NQv3GAZtxfuErFCoJHIMK3ogI mtsaolV97kPFM0Qt0t46az6fOSFAeg3JEP+cz5ToGLa1I76EQ6UCAwEAAaNPME0wHAYDVR0RBBUw E4ERZ29vYmE0MkB5YWhvby5jb20wDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBSIq/Fgg2ZV9ORY x0YdwGG9I9fDjDANBgkqhkiG9w0BAQQFAAOBgQAuunl5CmIR9lCtl0YSv8CLHH8lZ9XsN4FzesFm S445U0djL01NidExLvmv2A/2MHoqKxqPTFhEluKggFoeI3OZ4OOnFhRh5yyS5gRUzWd/GEpyV/jU p22oQrI9g8CL4b4ePZwFhi0XaCRrG5tv4NtpPxHTOixfPNJJkALJOPyvljCCAxQwggJ9oAMCAQIC AQswDQYJKoZIhvcNAQEEBQAwgdExCzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUx EjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UEChMRVGhhd3RlIENvbnN1bHRpbmcxKDAmBgNVBAsT H0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24xJDAiBgNVBAMTG1RoYXd0ZSBQZXJzb25h bCBGcmVlbWFpbCBDQTErMCkGCSqGSIb3DQEJARYccGVyc29uYWwtZnJlZW1haWxAdGhhd3RlLmNv bTAeFw05OTA5MTYxNDAxNDBaFw0wMTA5MTUxNDAxNDBaMIGUMQswCQYDVQQGEwJaQTEVMBMGA1UE CBMMV2VzdGVybiBDYXBlMRQwEgYDVQQHEwtEdXJiYW52aWxsZTEPMA0GA1UEChMGVGhhd3RlMR0w GwYDVQQLExRDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEoMCYGA1UEAxMfUGVyc29uYWwgRnJlZW1haWwg UlNBIDE5OTkuOS4xNjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAs2lal9TQFgt6tcVd6SGc I3LNEkxL937Px/vKciT0QlKsV5Xje2F6F4Tn/XI5OJS06u1lp5IGXr3gZfYZu5R5dkw+uWhwdYQc 9BF0ALwFLE8JAxcxzPRB1HLGpl3iiESwiy7ETfHw1oU+bPOVlHiRfkDpnNGNFVeOwnPlMN5G9U8C AwEAAaM3MDUwEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNVHSMEGDAWgBRyScJzNMZV9At2coF+d/SH 58ayDjANBgkqhkiG9w0BAQQFAAOBgQBrxlnpMfrptuyxA9jfcnL+kWBI6sZV3XvwZ47GYXDnbcKl N9idtxcoVgWL3Vx1b8aRkMZsZnET0BB8a5FvhuAhNi3B1+qyCa3PLW3Gg1Kb+7v+nIed/LfpdJLk XJeu/H6syg1vcnpnLGtz9Yb5nfUAbvQdB86dnoJjKe+TCX5V3jCCAy0wggKWoAMCAQICAQAwDQYJ KoZIhvcNAQEEBQAwgdExCzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNV BAcTCUNhcGUgVG93bjEaMBgGA1UEChMRVGhhd3RlIENvbnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRp ZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24xJDAiBgNVBAMTG1RoYXd0ZSBQZXJzb25hbCBGcmVl bWFpbCBDQTErMCkGCSqGSIb3DQEJARYccGVyc29uYWwtZnJlZW1haWxAdGhhd3RlLmNvbTAeFw05 NjAxMDEwMDAwMDBaFw0yMDEyMzEyMzU5NTlaMIHRMQswCQYDVQQGEwJaQTEVMBMGA1UECBMMV2Vz dGVybiBDYXBlMRIwEAYDVQQHEwlDYXBlIFRvd24xGjAYBgNVBAoTEVRoYXd0ZSBDb25zdWx0aW5n MSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMSQwIgYDVQQDExtUaGF3 dGUgUGVyc29uYWwgRnJlZW1haWwgQ0ExKzApBgkqhkiG9w0BCQEWHHBlcnNvbmFsLWZyZWVtYWls QHRoYXd0ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANRp19SwlGRbcelH2AxRtupy kbCEXn0tDY97Et+FJXUodDpCLGMnn5V7S+9+GYcdhuqj3bnOlmQawhRuRKx85o/oTQ9xH0A4pgCj h3j2+ZSGXq3qwF5269kUo11uenwMpUtVfwYZKX+emibVars4JAhqmMex2qOYkf152+VaxBy5AgMB AAGjEzARMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAx+ySfk749ZalZ2IqpPBN EWDQb41gWGGsJrtSNVwIzzD7qEqWih9iQiOMFw/0umScF6xHKd+dmF7SbGBxXKKs3Hnj524ARx+1 DSjoAp3kmv0T9KbZfLH43F8jJgmRgHPQFBveQ6mDJfLmnC8Vyv6mq4oHdYsM3VGEa+T40c53ooEx ggIAMIIB/AIBATCBnDCBlDELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTEUMBIG A1UEBxMLRHVyYmFudmlsbGUxDzANBgNVBAoTBlRoYXd0ZTEdMBsGA1UECxMUQ2VydGlmaWNhdGUg U2VydmljZXMxKDAmBgNVBAMTH1BlcnNvbmFsIEZyZWVtYWlsIFJTQSAxOTk5LjkuMTYCAwF/rDAJ BgUrDgMCGgUAoIG6MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTk5 MTEwNDE3NDU0NVowIwYJKoZIhvcNAQkEMRYEFDj4FrqxUPqaVK53xScASuI/GZ6BMFsGCSqGSIb3 DQEJDzFOMEwwCgYIKoZIhvcNAwcwDgYIKoZIhvcNAwICAgCAMA0GCCqGSIb3DQMCAgFAMAcGBSsO AwIHMA0GCCqGSIb3DQMCAgEoMAcGBSsOAwIdMA0GCSqGSIb3DQEBAQUABIGAbCKzdlWP69gK6iEz Wcub6xLsxqaXp4eKWh2mKVUnajkhAWwSgZq6uzVrQ1DHKnL15YjfN1Byz7Jga6W/8fo+zd4tIIoQ Nfa0QM+1AUomRVc4QTHABcT2n8C840klXTDGIScAvvbU8bGxrn7NoPlBMFfhNEWEBXQjMDplL3Nx PC8AAAAAAAA= ------=_NextPart_000_001B_01BF26EC.6C3AE680-- From avneetb@sympatico.ca Sun Nov 7 16:38:12 1999 Date: Sun Nov 7 16:38:12 1999 From: Avneet Bhatia avneetb@sympatico.ca Subject: No subject This is a multi-part message in MIME format. ------=_NextPart_000_0006_01BF293F.302B8460 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable hello i am desperately trying to get my smc network card to work, it is the =20 SMC 8432BT=20 With DEC21041\ i followed the instructions, but when i run ifconfig, i do not see = 'eth0' i tried linuxconf, but i am not sure what to type in for netdevice is there anyway you can help me out? =20 Avneet Bhatia abhatia@uwaterloo.ca ------=_NextPart_000_0006_01BF293F.302B8460 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
hello i am desperately trying to get my = smc network=20 card to work, it is
 
the 
SMC 8432BT=20
With DEC21041\
i followed the instructions, but when i run ifconfig, i do not see=20 'eth0'
 
i tried linuxconf, but i am not sure what to type in for = netdevice
 
is there anyway you can help me out?
 
Avneet Bhatia
abhatia@uwaterloo.ca
------=_NextPart_000_0006_01BF293F.302B8460-- From eliot.muir@interfaceware.com Mon Nov 8 15:28:11 1999 Date: Mon Nov 8 15:28:11 1999 From: Eliot Muir eliot.muir@interfaceware.com Subject: Strange cutting out problem with tulip driver. Hi, I have a strange cutting out problem with my TCP/IP ethernet connection using the tulip driver. I'm running two machines, one Linux running a Mandrake Redhat distribution and the other is a Windows NT 4.0 machine. They're connected using 20m of BNC cable and have both been assigned static IPs (no other machines are connected). The behaviour is that I have to ping from the Linux box to the NT box to get the TCP/IP connection working. Then everything works fine, I can use telnet, samba and ftp etc. etc. with no trouble. Then usually after about half an hour all the TCP/IP connections break and the only way I seem to be able to get the TCP/IP working again is to go to the Linux box and ping the NT box. I usually have to do this a couple of times before it works. Once it starts being able to ping again and the TCP/IP connections work until it cuts out again after half an hour. The printout from dmesg is: Linux version 2.2.10 (root@testbox.interfaceware) (gcc version pgcc-2.91.66 19990314 (egcs-1.1.2 release)) #12 Fri Nov 5 18:41:18 NZDT 1999 Detected 400920929 Hz processor. Console: colour VGA+ 80x25 Calibrating delay loop... 399.77 BogoMIPS Memory: 63244k/65472k available (916k kernel code, 412k reserved, 864k data, 36k init) CPU: Intel Celeron (Mendocino) stepping 05 Checking 386/387 coupling... OK, FPU using exception 16 error reporting. Checking 'hlt' instruction... OK. POSIX conformance testing by UNIFIX PCI: PCI BIOS revision 2.10 entry at 0xfb350 PCI: Using configuration type 1 PCI: Probing PCI hardware Linux NET4.0 for Linux 2.2 Based upon Swansea University Computer Society NET3.039 NET4: Unix domain sockets 1.0 for Linux NET4.0. NET4: Linux TCP/IP 1.0 for NET4.0 IP Protocols: ICMP, UDP, TCP Starting kswapd v 1.5 parport0: PC-style at 0x378 [SPP,PS2] parport0: no IEEE-1284 device present. Detected PS/2 Mouse Port. Serial driver version 4.27 with no serial options enabled ttyS00 at 0x03f8 (irq = 4) is a 16550A ttyS01 at 0x02f8 (irq = 3) is a 16550A PIIX4: IDE controller on PCI bus 00 dev 39 PIIX4: not 100% native mode: will probe irqs later ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:pio, hdb:pio ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:pio, hdd:pio hda: ST310232A, ATA DISK drive ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 hda: ST310232A, 9768MB w/512kB Cache, CHS=1245/255/63, UDMA Floppy drive(s): fd0 is 1.44M FDC 0 is a post-1991 82077 tulip.c:v0.91e 5/27/99 becker@cesdis.gsfc.nasa.gov eth0: ASIX AX88140 rev 16 at 0xd400, 00:80:AD:F0:21:23, IRQ 5. eth0: EEPROM default media type Autosense. eth0: Index #0 - Media MII (#11) described by a 21140 MII PHY (1) block. eth0: MII transceiver #1 config 1000 status 786b advertising 01e1. eth0: Advertising 0001 on PHY 1, previously advertising 01e1. Partition check: hda: hda1 hda2 hda3 < hda5 hda6 > hda4 NTFS version 990411 VFS: Mounted root (ext2 filesystem) readonly. Freeing unused kernel memory: 36k freed Adding Swap: 128484k swap-space (priority -1) I'm happy to do what it takes to print out more debugging information if it helps - has anyone else seen anything like this? Cheers, Eliot -- Eliot Muir, Technical Director iNTERFACEWARE mailto:eliot.muir@interfaceware.com Voice 64-21-333068 http://www.interfaceware.com Makers of iNTERFACEWARE Chameleon "Program to the iNTERFACE not the implementation" From becker@cesdis.gsfc.nasa.gov Mon Nov 8 15:47:26 1999 Date: Mon Nov 8 15:47:26 1999 From: Donald Becker becker@cesdis.gsfc.nasa.gov Subject: Strange cutting out problem with tulip driver. On Tue, 9 Nov 1999, Eliot Muir wrote: > I have a strange cutting out problem with my TCP/IP ethernet connection > using the tulip driver. .. > The behaviour is that I have to ping from the Linux box to the NT box to > get the TCP/IP connection working. Then everything works fine, I can use > telnet, samba and ftp etc. etc. with no trouble. ... > tulip.c:v0.91e 5/27/99 becker@cesdis.gsfc.nasa.gov > eth0: ASIX AX88140 rev 16 at 0xd400, 00:80:AD:F0:21:23, IRQ 5. You must update to the v0.91g driver, which has the setting needed to allow the AX88140 to receive broadcast packets. ftp://cesdis.gsfc.nasa.gov/pub/linux/drivers/test/tulip.c Donald Becker Scyld Computing Corporation, and USRA-CESDIS, becker@cesdis.gsfc.nasa.gov From marc@destek.net Wed Nov 10 11:09:29 1999 Date: Wed Nov 10 11:09:29 1999 From: Marc Evans marc@destek.net Subject: Compaq Presario 1900T laptop dock with 21142 rev 65 Hello - I have just acquired a Compaq 1900T with a docking wedge that contains a Tulip 21142 rev 65 ethernet. I have installed RedHat 6.1 on it, and am unable to use the ethernet. Prior to loading RH, Windows/98 was installed, and worked fine through the ethernet device. I have experimented a bit and have discovered the following: - When connected to my 10baseT half-duplex hub, the partition light immediately comes on. This did not happen under windows/98. - When connected to my 10/100 switch, if I do: ifconfig eth0 down ifconfig eth0 up ping {addr_on_lan} I get 4 seconds worth of pings through, before failure. I can instead do a "ping -f {addr_on_lan}" and get about 10000 packets through (or four seconds worth) before failure. I also observe that RH comes with the tulip driver version 0.89H which appears to be slightly behind the most current available 0.91e. Is there any reason for me to believe that what I am seeing has been fixed in the newer version? (Somewhat retorical question, since I plan to try to compile that soon anyway). Does anyone have any suggestions as to how I might get this device operational? Please reply directly, since I am not a list member. Thanks in advance - Marc From frank.stefani@ead-systeme.de Thu Nov 11 03:00:47 1999 Date: Thu Nov 11 03:00:47 1999 From: Frank Stefani frank.stefani@ead-systeme.de Subject: Beeeeeeeeep [Fastline-II-PCI UTP, SuSE Linux 6.2 (Kernel 2.2.10)] Hi all, we use discless clients with Tulip based Fastline network cards. Everything works well most of the time. Occasionally one or the other of the clients starts to beeeeeeeeeep for a long time, while everything is still working. I found no reason to avoid this, no debug/error messages in the syslog or elsewhere. Finally I gave up and disconnected the speaker :-) but I'd rather like to know a reason for this beeping and a way to avoid it (kernel module option??) Any help is greatly appreciated, TIA, Frank -- ____ ___ ___ Frank Stefani | frank.stefani@ead-systeme.de / / | / \ EAD-Systeme GmbH | www.ead-systeme.de /--- /---| / / Nachfeldstr. 4 | Phone +49 8821 9623-0 /____ / | /____/ D-82490 Farchant | Fax +49 8821 9623-20 From bob@drzyzgula.org Thu Nov 11 07:00:14 1999 Date: Thu Nov 11 07:00:14 1999 From: Bob Drzyzgula bob@drzyzgula.org Subject: Beeeeeeeeep Do your systems have environmental monitors? If so, there should be a page in the BIOS/CMOS setup utility to set thresholds for CPU temperature, supply voltages, fan speeds, etc. Often there will be one temperature threshold for sounding an alarm and another for system shutdown. It could be that on occasion some of your systems reach a temperature between those two setpoints. --Bob On Thu, Nov 11, 1999 at 09:01:15AM +0100, Frank Stefani wrote: > [Fastline-II-PCI UTP, SuSE Linux 6.2 (Kernel 2.2.10)] > > Hi all, > > we use discless clients with Tulip based Fastline network cards. > Everything works well most of the time. Occasionally one or the > other of the clients starts to beeeeeeeeeep for a long time, while > everything is still working. > > I found no reason to avoid this, no debug/error messages in the > syslog or elsewhere. Finally I gave up and disconnected the > speaker :-) but I'd rather like to know a reason for this beeping > and a way to avoid it (kernel module option??) > > Any help is greatly appreciated, TIA, > Frank > -- > ____ ___ ___ Frank Stefani | frank.stefani@ead-systeme.de > / / | / \ EAD-Systeme GmbH | www.ead-systeme.de > /--- /---| / / Nachfeldstr. 4 | Phone +49 8821 9623-0 > /____ / | /____/ D-82490 Farchant | Fax +49 8821 9623-20 -- ============================================================ Bob Drzyzgula It's not a problem bob@drzyzgula.org until something bad happens ============================================================ http://www.drzyzgula.org/bob/electronics/ ============================================================ From frank.stefani@ead-systeme.de Thu Nov 11 08:49:43 1999 Date: Thu Nov 11 08:49:43 1999 From: Frank Stefani frank.stefani@ead-systeme.de Subject: Beeeeeeeeep We do have those BIOS features, but there is nothing related to network cards. The behaviour appears to be solely network relevant and has nothing to do with temperatures or fan speeds. If we change the network card to a different manufacturer, we never hear a sound. Simply, we MUST use the FASTline cards and they are really good for all our purposes. Just that beeeeeep thing gets on our nerves ... Frank Bob Drzyzgula schrieb: > > Do your systems have environmental monitors? If > so, there should be a page in the BIOS/CMOS setup > utility to set thresholds for CPU temperature, > supply voltages, fan speeds, etc. Often there will > be one temperature threshold for sounding an alarm > and another for system shutdown. It could be that > on occasion some of your systems reach a temperature > between those two setpoints. > > --Bob > > On Thu, Nov 11, 1999 at 09:01:15AM +0100, Frank Stefani wrote: > > [Fastline-II-PCI UTP, SuSE Linux 6.2 (Kernel 2.2.10)] > > > > Hi all, > > > > we use discless clients with Tulip based Fastline network cards. > > Everything works well most of the time. Occasionally one or the > > other of the clients starts to beeeeeeeeeep for a long time, while > > everything is still working. > > > > I found no reason to avoid this, no debug/error messages in the > > syslog or elsewhere. Finally I gave up and disconnected the > > speaker :-) but I'd rather like to know a reason for this beeping > > and a way to avoid it (kernel module option??) > > > > Any help is greatly appreciated, TIA, > > Frank > > -- > > ____ ___ ___ Frank Stefani | frank.stefani@ead-systeme.de > > / / | / \ EAD-Systeme GmbH | www.ead-systeme.de > > /--- /---| / / Nachfeldstr. 4 | Phone +49 8821 9623-0 > > /____ / | /____/ D-82490 Farchant | Fax +49 8821 9623-20 > > -- > ============================================================ > Bob Drzyzgula It's not a problem > bob@drzyzgula.org until something bad happens > ============================================================ > http://www.drzyzgula.org/bob/electronics/ > ============================================================ -- ____ ___ ___ Frank Stefani | frank.stefani@ead-systeme.de / / | / \ EAD-Systeme GmbH | www.ead-systeme.de /--- /---| / / Nachfeldstr. 4 | Phone +49 8821 9623-0 /____ / | /____/ D-82490 Farchant | Fax +49 8821 9623-20 From jds@aixulsa.ulsa.mx Mon Nov 15 12:51:20 1999 Date: Mon Nov 15 12:51:20 1999 From: Ing. Jesus Delgado jds@aixulsa.ulsa.mx Subject: Drivers for network card ANSEL 2095 This is a multi-part message in MIME format. ------=_NextPart_000_0005_01BF2F60.06DCE910 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi, Iam need the drivers for Network Card ANSEL 2095 Fast Ethernet = for LINUX redhat 6.1 Help me please Regards. ------=_NextPart_000_0005_01BF2F60.06DCE910 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Hi,
 
        = Iam need the=20 drivers for Network Card ANSEL 2095 Fast Ethernet for LINUX redhat=20 6.1
 
        = Help me=20 please
 
Regards.
 
------=_NextPart_000_0005_01BF2F60.06DCE910-- From bmullins@asante.com Mon Nov 15 13:37:44 1999 Date: Mon Nov 15 13:37:44 1999 From: Breen Mullins bmullins@asante.com Subject: tulip driver & Asante Fast 10/100 card >Bob Farmer (ucs_brf@unx1.shsu.edu) reported: > The net cards we've been buying, Asante Fast 10/100, recently switched >> > from 21140A chips to the PNIC chips. On startup, the driver reports the >> > chip as a "Lite-On 82c168 PNIC rev 32". It works for a bit, but as soon >> > as you try to transfer more than about 50K of data through the card, it >> > locks, and the interface has to be taken down and brought back up again to >> > restore connectivity. >> I've been looking at this problem with Bob and I see the same things here. >> What's the whole detection message? >> Is the an MII transceiver, or does it use the internal encoder and an >> external twister (SYM PHY)? > >The whole detection message is this (with 0.89H): > >tulip.c:v0.89H 5/23/98 becker@cesdis.gsfc.nasa.gov >eth0: Lite-On 82c168 PNIC at 0xe400, 00 00 b4 94 e0 99, IRQ 10. >eth0: MII transceiver found at MDIO address 1, config 3100 status 7829. >eth0: Advertising 01e1 on PHY 1, previously advertising 01e1. >eth0: Changing PNIC configuration to full-duplex, CSR6 812e0200. > >I am using Intel BX chipset Pentium II motherboards. > >If, while doing the receive-file test, I turn on "debug=3" on the module, >I get this output when the interface hangs: > >eth0: Oversized Ethernet frame spanned multiple buffers, status 7fff0200! >eth0: Oversized Ethernet frame spanned multiple buffers, status 08018192! I get these messages, but the interface has not yet frozen when I receive them -- my ftp transfers (about 30MB) always complete. The first (and other odd-numbered) message always report status 7fff0200. The even numbered messages are of the form 06xx8186 or occasionally 06xx8182. > >When using half-duplex those warnings above never appear. > >Now, retrying all of the above things with 0.91g, everything's the same >except one thing: no crash or interface hang when I send a large file with >FTP. Just a ton of the "Oversized Ethernet frame spanned multiple >buffers" warnings (debug=3). Still the same interface hang when receiving >a large file with FTP, though, at full-duplex. After the transfer finishes if I either exit the ftp program or wait a minute or two, I get these messages: Too much work during an interrupt, csr5=0x026f0050. Too much work during an interrupt, csr5=0x026d80d4. at which point the interface must be brought down and restarted, as Bob reports. I also see another problem which worries me even more: the address is being put on the wire incorrectly. >eth0: Lite-On 82c168 PNIC at 0xe400, 00 00 b4 94 e0 99, IRQ 10. That isn't an Asante address; it should be 000094 b499e0. The byte-reversal happens only with the tulip driver; our MacOS and Windows drivers pick up the address correctly. A generic LiteOn card works correctly with the same tulip driver. Here are the EEPROM contents of the two cards I'm using here: LiteOn: 00a0 cc2c 5734 f001 128a 00f1 0000 f19e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 Asante: 0000 94b4 6061 f001 128a 00f1 0000 8851 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 Any help with these problems is much appreciated. Breen Mullins SQA Engineer Asante Technologies, Inc. 800-662-9686x323 From ucs_brf@unx1.shsu.edu Mon Nov 15 16:13:45 1999 Date: Mon Nov 15 16:13:45 1999 From: Bob Farmer ucs_brf@unx1.shsu.edu Subject: tulip driver & Asante Fast 10/100 card > >Bob Farmer (ucs_brf@unx1.shsu.edu) reported: > > The net cards we've been buying, Asante Fast 10/100, recently switched > >> > from 21140A chips to the PNIC chips. On startup, the driver reports the > >> > chip as a "Lite-On 82c168 PNIC rev 32". It works for a bit, but as soon > >> > as you try to transfer more than about 50K of data through the card, it > >> > locks, and the interface has to be taken down and brought back up again to > >> > restore connectivity. > >> > > I've been looking at this problem with Bob and I see the same things > here. > > >> What's the whole detection message? > >> Is the an MII transceiver, or does it use the internal encoder and an > >> external twister (SYM PHY)? > > > >The whole detection message is this (with 0.89H): > > > >tulip.c:v0.89H 5/23/98 becker@cesdis.gsfc.nasa.gov > >eth0: Lite-On 82c168 PNIC at 0xe400, 00 00 b4 94 e0 99, IRQ 10. > >eth0: MII transceiver found at MDIO address 1, config 3100 status 7829. > >eth0: Advertising 01e1 on PHY 1, previously advertising 01e1. > >eth0: Changing PNIC configuration to full-duplex, CSR6 812e0200. > > > >I am using Intel BX chipset Pentium II motherboards. > > > >If, while doing the receive-file test, I turn on "debug=3" on the module, > >I get this output when the interface hangs: > > > >eth0: Oversized Ethernet frame spanned multiple buffers, status 7fff0200! > >eth0: Oversized Ethernet frame spanned multiple buffers, status 08018192! > > I get these messages, but the interface has not yet frozen when > > The first (and other odd-numbered) message always report status 7fff0200. > The even numbered messages are of the form 06xx8186 or occasionally > 06xx8182. > > > > >When using half-duplex those warnings above never appear. > > > > >Now, retrying all of the above things with 0.91g, everything's the same > >except one thing: no crash or interface hang when I send a large file with > >FTP. Just a ton of the "Oversized Ethernet frame spanned multiple > >buffers" warnings (debug=3). Still the same interface hang when receiving > >a large file with FTP, though, at full-duplex. > > > After the transfer finishes if I either exit the ftp program or > wait a minute or two, I get these messages: > > Too much work during an interrupt, csr5=0x026f0050. > Too much work during an interrupt, csr5=0x026d80d4. > > at which point the interface must be brought down and restarted, > as Bob reports. The "too much work during an interrupt" error is normal when transferring a whole lot of data when you haven't modified the "max_interrupt_work" variable. When I did my testing, I had modified it. I think I was using "max_interrupt_work=32000". So, I didn't get the "Too much work" error, yet my interface still froze. Bob From esnible@goodnet.com Mon Nov 15 22:22:06 1999 Date: Mon Nov 15 22:22:06 1999 From: Ed Snible esnible@goodnet.com Subject: Newbie question I am new to Linux. I have two Kingston KNE100TX tulip cards. I installed Linux and it found the cards but they could not ping each other. I suspected link speed problems (the cards are 100mbps, but my SOHOware four port hub is 10mbps). I tried some stuff on the cesdis page and came here. Any help greatly appreciated, I'm attaching the output from insmod, ifconfig up, and tulip-diag: # /sbin/insmod tulip.o debug=3 options=9 (/var/log/messages reports) ... kernel: tulip.c:v0.89H 5/23/98 becker@cesdis.gsfc.nasa.gov Nov 15 21:55:03 asus kernel: eth0: Digital DS21142/3 Tulip at 0xb800, 00 c0 f0 3b 66 ae, IRQ 10. xxx kernel: eth0: EEPROM default media type Autosense. ... kernel: eth0: MII interface PHY 0, setup/reset sequences 0/0 long, capabilities e0 78. ... kernel: eth0: Index #0 - Media MII (#11) described by a 21142 MII PHY (3) block. ... kernel: eth0: MII transceiver found at MDIO address 1, config 3100 status 782d. ... kernel: PCI latency timer (CFLT) is 0x20, PCI command is 0017. # /sbin/ifconfig eth0 up (var/log/messages reports) ... kernel: eth0: Using user-specified media MII 10baseT. ... kernel: eth0: 21142 negotiation status 000000c6, MII. ... kernel: eth0: 21142 negotiation failed, status 000000c6. ... kernel: eth0: Testing new 21142 media 100baseTx. ... kernel: eth0: The transmitter stopped! CSR5 is f0678006, CSR6 b3862002. # tulip-diag -m tulip-diag.c:v1.19 10/2/99 Donald Becker (becker@cesdis.gsfc.nasa.gov) Index #1: Found a Digital DS21143 Tulip adapter at 0xb800. Port selection is 100mbps-SYM/PCS 100baseTx scrambler, half-duplex. Transmit started, Receive started, half-duplex. The Rx process state is 'Waiting for packets'. The Tx process state is 'Idle'. The transmit threshold is 128. The NWay status register is 000000c6. MII PHY found at address 1, status 0x782d. MII PHY #1 transceiver registers: 3100 782d 0016 f831 0021 0021 ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff 0022 ff00 0000 fff0 00a0 ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff. Internal autonegotiation state is 'Autonegotiation disabled'. Any ideas? PS: If it helps, I'm using PII-400, Asus P2B, Redhat 6.0. The cards and hub have worked in the past under Windows98. From jds@aixulsa.ulsa.mx Wed Nov 17 11:58:43 1999 Date: Wed Nov 17 11:58:43 1999 From: Ing. Jesus Delgado jds@aixulsa.ulsa.mx Subject: Ayuda para compilar driver ?? This is a multi-part message in MIME format. ------=_NextPart_000_0023_01BF30EA.F5B4CA90 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hola a todos: Tengo un problema al compilar un driver para una tarjeta de = red,=20 ya trate de ponerle la bandera "-O" con diferentes valores que es la que = me pide, pero no he tenido exito, el mensaje es el siguiente: #make tulip cc tulip.c -o tulip tulip.c:100: warning: #warning You must compile this file with the = correct options! tulip.c:101: warning: #warning See the last lines of the source file. tulip.c:102: #error You must compile this driver with "-O". make: *** [tulip] Error 1 otra opciones que he tratado es : gcc -O1 tulip.c -o tulip gcc -O2 tulip.c -o tulip gcc -O0 tulip.c -o tulip gcc tulip.c -o tulip -O2 etc, etc. y sigo teniendo el mismo error. Espero me puedan ayudar. Saludos. Se libre usa LINUX. ------=_NextPart_000_0023_01BF30EA.F5B4CA90 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Hola a todos:
 
        = Tengo =20 un problema al compilar un driver para una tarjeta de red,
ya trate de ponerle la bandera "-O" con = diferentes=20 valores que es la que me pide, pero no he tenido exito, el mensaje es el = siguiente:
#make tulip

cc tulip.c -o tulip

tulip.c:100: warning: #warning You must compile this file with the = correct=20 options!

tulip.c:101: warning: #warning See the last lines of the source = file.

tulip.c:102: #error You must compile this driver with "-O".

make: *** [tulip] Error 1

otra opciones que he tratado es = :
 
gcc -O1 tulip.c -o tulip
gcc -O2 tulip.c -o = tulip
gcc -O0 tulip.c -o = tulip
gcc  tulip.c -o tulip = -O2
 
etc, etc.
y sigo teniendo el mismo error.
 
    Espero me puedan ayudar.
 
Saludos.
 
 
Se libre usa LINUX.
 
 
 
------=_NextPart_000_0023_01BF30EA.F5B4CA90-- From jds@aixulsa.ulsa.mx Wed Nov 17 12:05:25 1999 Date: Wed Nov 17 12:05:25 1999 From: Ing. Jesus Delgado jds@aixulsa.ulsa.mx Subject: problemas para compilar un driver Hola a todos: Tengo un problema al compilar un driver para una tarjeta de red, ya trate de ponerle la bandera "-O" con diferentes valores que es la que me pide, pero no he tenido exito, el mensaje es el siguiente: #make tulip cc tulip.c -o tulip tulip.c:100: warning: #warning You must compile this file with the correct options! tulip.c:101: warning: #warning See the last lines of the source file. tulip.c:102: #error You must compile this driver with "-O". make: *** [tulip] Error 1 otra opciones que he tratado es : gcc -O1 tulip.c -o tulip gcc -O2 tulip.c -o tulip gcc -O0 tulip.c -o tulip gcc tulip.c -o tulip -O2 etc, etc.y sigo teniendo el mismo error. Espero me puedan ayudar. Saludos. Se libre usa LINUX From becker@cesdis.gsfc.nasa.gov Wed Nov 17 16:29:07 1999 Date: Wed Nov 17 16:29:07 1999 From: Donald Becker becker@cesdis.gsfc.nasa.gov Subject: problemas para compilar un driver On Wed, 17 Nov 1999, Ing. Jesus Delgado wrote: > Tengo un problema al compilar un driver para una tarjeta de red, > ya trate de ponerle la bandera "-O" con diferentes valores que es la que > me pide, pero no he tenido exito, el mensaje es el siguiente: > #make tulip > cc tulip.c -o tulip > > tulip.c:100: warning: #warning You must compile this file with the correct > options! > > tulip.c:101: warning: #warning See the last lines of the source file. > > tulip.c:102: #error You must compile this driver with "-O". > > make: *** [tulip] Error 1 > > otra opciones que he tratado es : > > gcc -O1 tulip.c -o tulip Use gcc -DMODULE -D__KERNEL__ -O6 -c tulip.c Donald Becker Scyld Computing Corporation, and USRA-CESDIS, becker@cesdis.gsfc.nasa.gov From wolfgang.walter@stusta.mhn.de Mon Nov 22 23:10:59 1999 Date: Mon Nov 22 23:10:59 1999 From: Wolfgang Walter wolfgang.walter@stusta.mhn.de Subject: bug in tulip_rx? Hi, We have a server with heavy load (2.2.14pre4, 64MB Ram, D-Link 530CT+) running squid. The problem is that it sometimes just stops receiving frames. A ifconfig down and then restart of the network cures the problem. Nothing is logged. The same machine just worked fine with 2.0.38 for month. So I first thought it might be a problem of the tulip-driver of 2.2.14pre4 and I replaced it with several older versions - didn't help. I now took a closer look at the drivers and I think I found a problem. Please correct me if I'm wrong. The following situation may happens: cur_rx == dirty_rx + RX_RING_SIZE This case happens if (and only if) we cannot allocate any skb for the receive-ring. In this situation therefor we cannot receive frames any more. If a frame arrives, the 21041 sets a RU-interrupt and the receiving process is suspended. tulip_rx is entered. 2 possibilities: 1. we can allocate at least one skb. In this case dirty_rx gets increased and 21041 will switch in running mode when the next frame arrives. 2. we cannot allocate a skb. In this case 21041 remains in suspend mode and will not send any further interrupt (if I read the manual correctly) which will call tulip_rx => hang. A workaround would either to use the timer of the chip and a receive poll command or the following modification (is not meant as patch but as idea) in tulip_rx: unsigned int orx_dirty = tp->rx_dirty; int skbs = rx_work_limit; int lskb = -1; .... while(...) { if ( (pkt_len < rx_copybreak || skbs == 1) && (skb = dev_alloc_skb(pkt_len + 2)) != NULL) { lskb = entry; .... } else if (skbs != 1) { skbs--; ... } else { /* drop the packet and keep the skb: it is our last * and we couldn't allocate another one */ lskb = entry; } .... } /* Refill the Rx ring buffers. */ .... if (lskb>=0 && odirty_rx == tp->dirty_rx) { /* could not allocate a skb for dirty_rx */ entry = tp->dirty_rx % RX_RING_SIZE; tp->rx_skbuff[entry] = tp->rx_skbuff[lskb]; tp->rx_ring[entry].buffer1 = tp->rx_ring[lskb].buffer1; tp->rx_skbuff[lskb] = NULL; } The above scenario can not happen any more because there will be always a next buffer for 21041. So even if it is already in suspend mode it will go to running mode when receiving another packet. What do you think? Could this be the reason for these spurious hangs? Greetings, Wolfgang Walter From wolfgang.walter@stusta.mhn.de Tue Nov 23 20:30:38 1999 Date: Tue Nov 23 20:30:38 1999 From: Wolfgang Walter wolfgang.walter@stusta.mhn.de Subject: bug in tulip_rx? patch Hi Donald, First (as I post it on linux-kernel, too) again a short description of my problem: Since we use 2.2.14pre4 instead of 2.0.38 we observe random hangs of the network interface which is a tulip card. I tried older tulip-drivers, but this happens with all of them. Now I had a closer look at the code and found a situation which will cause a hang (see my older mail on tulip-bug). I now could catch the driver this state (switched suspend mode): tulip-diag.c:v1.19 10/2/99 Donald Becker (becker@cesdis.gsfc.nasa.gov) Index #1: Found a Digital DC21041 Tulip adapter at 0xe000. Digital DC21041 Tulip chip registers at 0xe000: ffe08000 ffffffff ffffffff 002f5810 002f5a10 fc680000 fffe2002 ffffebef fffe0001 ffff4bf8 ffffffff fffe0000 000001c8 ffffef05 ffffff3f ffff0008 Port selection is half-duplex. Transmit started, Receive started, half-duplex. The Rx process state is 'Suspended -- no Rx buffers'. The Tx process state is 'Idle'. The transmit unit is set to store-and-forward. The NWay status register is 000001c8. PCI Subsystem IDs, vendor 1186, device 0100. CardBus Information Structure at offset 00000000. Ethernet MAC Station Address 00:80:C8:E6:1C:2F. EEPROM transceiver/media description for the Digital DC21041 Tulip chip. Leaf node at offset 30, default media type 0800 (Autosense). 3 transceiver description blocks: 21041 media index 00 (10baseT). 21041 media index 04 (10baseT-Full Duplex). 21041 media index 01 (10base2). Internal autonegotiation state is 'Autonegotiation disabled'. The driver does not recover from this state. I attached a patch which seems to work. But it runs only since some hours. I post it here so that you may have a look at it. Also, there seem to be people who have the same problem, they may try it out. Wolfgang Walter --- 2.2.14pre4/drivers/net/tulip.c Fri Nov 5 18:02:35 1999 +++ 2.2.14pre4-m/drivers/net/tulip.c Wed Nov 24 02:04:13 1999 @@ -509,6 +509,7 @@ int interrupt; /* In-interrupt flag. */ unsigned int cur_rx, cur_tx; /* The next free ring entry */ unsigned int dirty_rx, dirty_tx; /* The ring entries to be free()ed. */ + unsigned int nr_skbs_rx; /* number of skbs */ unsigned int tx_full:1; /* The Tx queue is full. */ unsigned int full_duplex:1; /* Full-duplex operation requested. */ unsigned int full_duplex_lock:1; @@ -2484,6 +2485,7 @@ tp->tx_full = 0; tp->cur_rx = tp->cur_tx = 0; tp->dirty_rx = tp->dirty_tx = 0; + tp->nr_skbs_rx = 0; for (i = 0; i < RX_RING_SIZE; i++) { tp->rx_ring[i].status = 0x00000000; @@ -2503,6 +2505,7 @@ tp->rx_skbuff[i] = skb; if (skb == NULL) break; + tp->nr_skbs_rx++; skb->dev = dev; /* Mark as being used by this device. */ tp->rx_ring[i].status = cpu_to_le32(DescOwned); /* Owned by Tulip chip */ tp->rx_ring[i].buffer1 = virt_to_le32desc(skb->tail); @@ -2607,7 +2610,11 @@ if ((csr5 & (NormalIntr|AbnormalIntr)) == 0) break; - if (csr5 & (RxIntr | RxNoBuf)) + /* tp->nr_skbs_rx == 0 can only happen if we never succeeded to allocate at least + * one skb (which we usually do at initialisation time. + * We then hope do do so now or any later non-RD/RU interrupt + */ + if (csr5 & (RxIntr | RxNoBuf) || tp->nr_skbs_rx == 0) work_budget -= tulip_rx(dev); if (csr5 & (TxNoBuf | TxDied | TxIntr)) { @@ -2797,7 +2804,7 @@ #endif /* Check if the packet is long enough to accept without copying to a minimally-sized skbuff. */ - if (pkt_len < rx_copybreak + if ((pkt_len < rx_copybreak || tp->nr_skbs_rx < 2) && (skb = dev_alloc_skb(pkt_len + 2)) != NULL) { skb->dev = dev; skb_reserve(skb, 2); /* 16 byte align the IP header */ @@ -2809,9 +2816,10 @@ pkt_len); #endif work_done++; - } else { /* Pass up the skb already on the Rx ring. */ + } else if (tp->nr_skbs_rx > 1) { /* Pass up the skb already on the Rx ring. */ char *temp = skb_put(skb = tp->rx_skbuff[entry], pkt_len); tp->rx_skbuff[entry] = NULL; + tp->nr_skbs_rx--; #ifndef final_version if (le32desc_to_virt(tp->rx_ring[entry].buffer1) != temp) printk(KERN_ERR "%s: Internal fault: The skbuff addresses " @@ -2820,6 +2828,9 @@ le32desc_to_virt(tp->rx_ring[entry].buffer1), skb->head, temp); #endif + } else { + /* we have only one skb; we must keep it: drop the packet */ + tp->stats.rx_dropped++; } skb->protocol = eth_type_trans(skb, dev); netif_rx(skb); @@ -2840,11 +2851,55 @@ skb = tp->rx_skbuff[entry] = dev_alloc_skb(PKT_BUF_SZ); if (skb == NULL) break; + tp->nr_skbs_rx++; skb->dev = dev; /* Mark as being used by this device. */ tp->rx_ring[entry].buffer1 = virt_to_le32desc(skb->tail); work_done++; } tp->rx_ring[entry].status = cpu_to_le32(DescOwned); + } + + /* + * We must catch the situation: + * the card run out of RX-buffers when this interrupt was triggered (but we have a skb available) + * + * This is the case, if + * tp->nr_skbs_rx > 0 + * and + * all buffers are dirty + * <=> tp->dirty_rx + RX_RING_SIZE == tp->cur_rx + * <=> tp->cur_rx has no skb associated + * + * Why? + * => + * If at this stage all buffers are dirty this means that + * tp->dirty_rx + RX_RING_SIZE == tp->cur_rx + * must hold. This means that the above refill did not change tp->dirty_rx at all + * which means that the associated skb must be null. As this is the same in the ring as + * tp->cur_rx represents, there is no skb associated with tp->cur_rx. + * + * <= + * If tp->cur_rx has no skb associated the rx-loop must be terminated with + * rx_work_limit<0 (tp->rx_ring[entry].status & cpu_to_le32(DescOwned) can't be + * true if no skb is associated). This means that + * tp->dirty_rx + RX_RING_SIZE == tp->cur_rx + * holds which means that all buffers are dirty + * + */ + entry = tp->cur_rx % RX_RING_SIZE; + if (tp->nr_skbs_rx > 0 && tp->rx_skbuff[entry] == NULL) { + int i; + /* search a free buffer */ + for (i = 0; i < RX_RING_SIZE; i++) { + if (tp->rx_skbuff[i] != NULL) { + tp->rx_skbuff[entry] = tp->rx_skbuff[i]; + tp->rx_ring[entry].buffer1 = tp->rx_ring[i].buffer1; + tp->rx_skbuff[i] = NULL; + tp->rx_ring[entry].status = cpu_to_le32(DescOwned); + tp->dirty_rx++; + break; + } + } } return work_done; From avneetb@sympatico.ca Wed Nov 24 01:14:57 1999 Date: Wed Nov 24 01:14:57 1999 From: Avneet Bhatia avneetb@sympatico.ca Subject: SMC 8432BT With DEC21041 This is a multi-part message in MIME format. ------=_NextPart_000_000B_01BF361A.07D34880 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hello, I have the following network card: SMC 8432BT=20 With DEC21041 Where can I find the latest driver for this card??? thanks avneetb@sympatico.ca ------=_NextPart_000_000B_01BF361A.07D34880 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Hello, I have the following network card:
 
SMC 8432BT=20
With DEC21041
 
Where can I find the latest driver for = this=20 card???
thanks
 
avneetb@sympatico.ca
=
------=_NextPart_000_000B_01BF361A.07D34880-- From b-@n-iterate.org Wed Nov 24 02:04:41 1999 Date: Wed Nov 24 02:04:41 1999 From: byoung b-@n-iterate.org Subject: tulip failure on NetGear FA 310TX (10/100) -----BEGIN PGP SIGNED MESSAGE----- Hi, I am experiencing problem with tulip driver used with NetGear FA 310TX 10/100Mbps ethernet card. It appears that after several days of fine operation, eth (tulip) suddenly stops working - it fails to send or receive packets, and any commands to do so just hangs (and nope, it's not dns hangup). I'm using the tulip driver integrated into the source tree of linux kernel 2.0.38. the following is the kernel messages generated when the interface is brought up (when system booted - empty line represents line break, as the log line runs longer than 80 columns): Nov 23 22:30:33 foo kernel: tulip.c:v0.90 10/20/98 becker@cesdis.gsfc.nasa.gov Nov 23 22:30:33 foo kernel: eth0: Lite-On 82c168 PNIC at 0xd000, 00 a0 cc 53 43 87, IRQ 5. Nov 23 22:30:33 foo kernel: eth0: MII transceiver #1 config 3000 status 7829 advertising 01e1. after a couple of seconds, the above are always followed by the following lines: Nov 23 22:30:35 foo kernel: eth0: The transmitter stopped! CSR5 is 2678016, CSR6 816e2002. Nov 23 22:30:35 foo kernel: eth0: Changing PNIC configuration to half-duplex, CSR6 816e0000. the host is a single-homed, connected to a 10Mbps shared hub (half-duplex). there is no warning/error messages before the driver stops working. At one time, i may have gotten it to work again by removing and reloading the driver, but i'm not sure that was the case, and it certainly doesn't seem to work always. Anyone with similar problem? Thanx for any info. byoung -----BEGIN PGP SIGNATURE----- Version: 2.6.3a Charset: noconv iQCVAwUBODuNpY8n9J7I/lFdAQGFgQQAzcoXp2zYDwya7wWcci67JYhzJVVbYRyD H7QVlwmgXSAKi1MsmZ2RtQniTmkRFBzd3beYHWY13nIuogztXdOqYB7o5yNu0qhp BZpnLRrLoHQcDiGqDIsfbNK+XQShgwfAKqxjV1QU9qbIvj5JnZc5KGUIHMyroJcu wo1B+8SQ/Zw= =xIt9 -----END PGP SIGNATURE----- From b-@n-iterate.org Wed Nov 24 02:25:25 1999 Date: Wed Nov 24 02:25:25 1999 From: byoung b-@n-iterate.org Subject: tulip failure on NetGear FA 310TX (10/100) sorry for the repeat post - my pgp filter may not have been set up corectly. Again, any info would be appreciated. byoung ---------------------------------------------------- Hi, I am experiencing problem with tulip driver used with NetGear FA 310TX 10/100Mbps ethernet card. It appears that after several days of fine operation, eth (tulip) suddenly stops working - it fails to send or receive packets, and any commands to do so just hangs (and nope, it's not dns hangup). I'm using the tulip driver integrated into the source tree of linux kernel 2.0.38. the following is the kernel messages generated when the interface is brought up (when system booted - empty line represents line break, as the log line runs longer than 80 columns): Nov 23 22:30:33 foo kernel: tulip.c:v0.90 10/20/98 becker@cesdis.gsfc.nasa.gov Nov 23 22:30:33 foo kernel: eth0: Lite-On 82c168 PNIC at 0xd000, 00 a0 cc 53 43 87, IRQ 5. Nov 23 22:30:33 foo kernel: eth0: MII transceiver #1 config 3000 status 7829 advertising 01e1. after a couple of seconds, the above are always followed by the following lines: Nov 23 22:30:35 foo kernel: eth0: The transmitter stopped! CSR5 is 2678016, CSR6 816e2002. Nov 23 22:30:35 foo kernel: eth0: Changing PNIC configuration to half-duplex, CSR6 816e0000. the host is a single-homed, connected to a 10Mbps shared hub (half-duplex). there is no warning/error messages before the driver stops working. At one time, i may have gotten it to work again by removing and reloading the driver, but i'm not sure that was the case, and it certainly doesn't seem to work always. Anyone with similar problem? Thanx for any info. byoung From srb@cuci.nl Wed Nov 24 07:38:22 1999 Date: Wed Nov 24 07:38:22 1999 From: Stephen R. van den Berg srb@cuci.nl Subject: bug in tulip_rx? patch Wolfgang Walter wrote: >Since we use 2.2.14pre4 instead of 2.0.38 we observe random hangs of the >network interface which is a tulip card. > Transmit started, Receive started, half-duplex. > The Rx process state is 'Suspended -- no Rx buffers'. > The Tx process state is 'Idle'. >The driver does not recover from this state. I can confirm this. I've experienced this bug on some cards and some machines for ages now (at least for the past three years, I guess). When it first became a problem I didn't have the tulip-diag program. So I put in a very crude workaround which periodically checks for this condition and empties all receive buffers. -- Sincerely, srb@cuci.nl Stephen R. van den Berg (AKA BuGless). Are they twins? Yes. Are they *both* yours? From marcs@skyhunter.com Wed Nov 24 17:05:45 1999 Date: Wed Nov 24 17:05:45 1999 From: Marc Stiegler marcs@skyhunter.com Subject: Unknown Tulip-style chip? Dear Sirs: I recently installed a Linksys EtherFast 10/100 PCI card in my Linux machine. I followed the manufacturer instructions for compiling the tulip driver (version 0.91) and installing into the system. After this did not work (modprobe would install the driver, but when I did an lsmod it would describe the tulip driver as "unused"), I recompiled my kernel (version 2.2.5) with the tulip driver specified as a module. Now I get during the startup process, Unknown Tulip-style PCI ethernet chip type 11ad c115 detected: not configured. I have compiled and run the diagnostic tulip-diag.c program (v1.19), and it gives me this: Index #1: Found a Lite-On PNIC-II adapter at 0x6600. Port selection is 10mpbs-serial, half-duplex Transmitt stopped, Receive stopped, half-duplex. The Rx process state is 'Stopped'. The Tx process state is 'Stopped'. The transmit threshold is 72. The NWay status register is 000050ca. The current PNIC-II MAC address is 00:a0:cc:33:9b:38 (a000a000 33cc389b). The current PNIC-II WOL address is 00:a0:cc:33:9b:38. Internal autonegotiation state is 'Negotiation complete'. If I try to do a modprobe at this point, I am told init_module: Device or resource busy. I currently have it hooked up to a LAN running 10Mbps hubs. I get the same "not configured" message regardless of whether I use the tulip.o module created during the kernel compilation or whether I use the 0.91 version tulip.o I compiled myself. Does anyone have a clue what I am doing wrong here? Thank you. --marcs From wolfgang.walter@stusta.mhn.de Wed Nov 24 21:23:23 1999 Date: Wed Nov 24 21:23:23 1999 From: Wolfgang Walter wolfgang.walter@stusta.mhn.de Subject: bug in tulip_rx? corrected patch Hi, a just realised that my patch is buggy :-). Of course, if I drop the packet I must not give it to netif_rx() :-). Wolfgang Walter Here is the corrected version: --- 2.2.14pre4/drivers/net/tulip.c Fri Nov 5 18:02:35 1999 +++ 2.2.14pre4-m/drivers/net/tulip.c Thu Nov 25 03:48:23 1999 @@ -509,6 +509,7 @@ int interrupt; /* In-interrupt flag. */ unsigned int cur_rx, cur_tx; /* The next free ring entry */ unsigned int dirty_rx, dirty_tx; /* The ring entries to be free()ed. */ + unsigned int nr_skbs_rx; /* number of skbs */ unsigned int tx_full:1; /* The Tx queue is full. */ unsigned int full_duplex:1; /* Full-duplex operation requested. */ unsigned int full_duplex_lock:1; @@ -2484,6 +2485,7 @@ tp->tx_full = 0; tp->cur_rx = tp->cur_tx = 0; tp->dirty_rx = tp->dirty_tx = 0; + tp->nr_skbs_rx = 0; for (i = 0; i < RX_RING_SIZE; i++) { tp->rx_ring[i].status = 0x00000000; @@ -2503,6 +2505,7 @@ tp->rx_skbuff[i] = skb; if (skb == NULL) break; + tp->nr_skbs_rx++; skb->dev = dev; /* Mark as being used by this device. */ tp->rx_ring[i].status = cpu_to_le32(DescOwned); /* Owned by Tulip chip */ tp->rx_ring[i].buffer1 = virt_to_le32desc(skb->tail); @@ -2595,6 +2598,13 @@ dev->interrupt = 1; #endif + /* tp->nr_skbs_rx == 0 can only happen if we never succeeded to allocate at least + * one skb (which we usually do at initialisation time. + * We then hope do do so now or any later non-RD/RU interrupt + */ + if (tp->nr_skbs_rx == 0) + work_budget -= tulip_rx(dev); + do { csr5 = inl(ioaddr + CSR5); /* Acknowledge all of the current interrupt sources ASAP. */ @@ -2729,7 +2739,7 @@ break; } } while (1); - + if (tulip_debug > 4) printk(KERN_DEBUG "%s: exiting interrupt, csr5=%#4.4x.\n", dev->name, inl(ioaddr + CSR5)); @@ -2797,7 +2807,7 @@ #endif /* Check if the packet is long enough to accept without copying to a minimally-sized skbuff. */ - if (pkt_len < rx_copybreak + if ((pkt_len < rx_copybreak || tp->nr_skbs_rx < 2) && (skb = dev_alloc_skb(pkt_len + 2)) != NULL) { skb->dev = dev; skb_reserve(skb, 2); /* 16 byte align the IP header */ @@ -2809,9 +2819,10 @@ pkt_len); #endif work_done++; - } else { /* Pass up the skb already on the Rx ring. */ + } else if (tp->nr_skbs_rx > 1) { /* Pass up the skb already on the Rx ring. */ char *temp = skb_put(skb = tp->rx_skbuff[entry], pkt_len); tp->rx_skbuff[entry] = NULL; + tp->nr_skbs_rx--; #ifndef final_version if (le32desc_to_virt(tp->rx_ring[entry].buffer1) != temp) printk(KERN_ERR "%s: Internal fault: The skbuff addresses " @@ -2820,14 +2831,20 @@ le32desc_to_virt(tp->rx_ring[entry].buffer1), skb->head, temp); #endif - } - skb->protocol = eth_type_trans(skb, dev); - netif_rx(skb); - dev->last_rx = jiffies; - tp->stats.rx_packets++; + } else { + /* we have only one skb; we must keep it: drop the packet */ + tp->stats.rx_dropped++; + skb = NULL; + } + if (skb) { + skb->protocol = eth_type_trans(skb, dev); + netif_rx(skb); + dev->last_rx = jiffies; + tp->stats.rx_packets++; #if LINUX_VERSION_CODE > 0x20127 - tp->stats.rx_bytes += pkt_len; + tp->stats.rx_bytes += pkt_len; #endif + } } entry = (++tp->cur_rx) % RX_RING_SIZE; } @@ -2840,11 +2857,55 @@ skb = tp->rx_skbuff[entry] = dev_alloc_skb(PKT_BUF_SZ); if (skb == NULL) break; + tp->nr_skbs_rx++; skb->dev = dev; /* Mark as being used by this device. */ tp->rx_ring[entry].buffer1 = virt_to_le32desc(skb->tail); work_done++; } tp->rx_ring[entry].status = cpu_to_le32(DescOwned); + } + + /* + * We must catch the situation: + * the card run out of RX-buffers when this interrupt was triggered (but we have a skb available) + * + * This is the case, if + * tp->nr_skbs_rx > 0 + * and + * all buffers are dirty + * <=> tp->dirty_rx + RX_RING_SIZE == tp->cur_rx + * <=> tp->cur_rx has no skb associated + * + * Why? + * => + * If at this stage all buffers are dirty this means that + * tp->dirty_rx + RX_RING_SIZE == tp->cur_rx + * must hold. This means that the above refill did not change tp->dirty_rx at all + * which means that the associated skb must be null. As this is the same in the ring as + * tp->cur_rx represents, there is no skb associated with tp->cur_rx. + * + * <= + * If tp->cur_rx has no skb associated the rx-loop must be terminated with + * rx_work_limit<0 (tp->rx_ring[entry].status & cpu_to_le32(DescOwned) can't be + * true if no skb is associated). This means that + * tp->dirty_rx + RX_RING_SIZE == tp->cur_rx + * holds which means that all buffers are dirty + * + */ + entry = tp->cur_rx % RX_RING_SIZE; + if (tp->nr_skbs_rx > 0 && tp->rx_skbuff[entry] == NULL) { + int i; + /* search the one free buffer */ + for (i = 0; i < RX_RING_SIZE; i++) { + if (tp->rx_skbuff[i] != NULL) { + tp->rx_skbuff[entry] = tp->rx_skbuff[i]; + tp->rx_ring[entry].buffer1 = tp->rx_ring[i].buffer1; + tp->rx_skbuff[i] = NULL; + tp->rx_ring[entry].status = cpu_to_le32(DescOwned); + tp->dirty_rx++; + break; + } + } } return work_done; From wolfgang.walter@stusta.mhn.de Thu Nov 25 13:54:06 1999 Date: Thu Nov 25 13:54:06 1999 From: Wolfgang Walter wolfgang.walter@stusta.mhn.de Subject: bug in tulip_rx? corrected patch 2 Hi, another version of my patch. My previous one generally works but has a problem when we get a lot of packets while we drop packets. This is because I did not return a work_done>0 in this case. Another thing I changed is to always call tulip_rx() in the interrupt. The reason is that (especially in "dropping mode") we switch off interrupts and wait for a timer interrupt. If such a timer interrupt occurs, I'm not sure that always a RD or a RU interrupt is generated. Of course one could change that to call it when a timer-interrupt occurs. I can't see any performance difference so (sending as many 64byte sized packets as possible via 10Base-T from the machine without receiving actually something). Can this be a problem with 100Base-T? Can't test it here. Would appreciate if someone with a 100MBit card could test that. Another possibilty would be to check the card for suspend mode. Wolfgang Walter --- 2.2.14pre4/drivers/net/tulip.c Fri Nov 5 18:02:35 1999 +++ 2.2.14pre4-m/drivers/net/tulip.c Thu Nov 25 19:45:47 1999 @@ -509,6 +509,7 @@ int interrupt; /* In-interrupt flag. */ unsigned int cur_rx, cur_tx; /* The next free ring entry */ unsigned int dirty_rx, dirty_tx; /* The ring entries to be free()ed. */ + unsigned int nr_skbs_rx; /* number of skbs */ unsigned int tx_full:1; /* The Tx queue is full. */ unsigned int full_duplex:1; /* Full-duplex operation requested. */ unsigned int full_duplex_lock:1; @@ -2484,6 +2485,7 @@ tp->tx_full = 0; tp->cur_rx = tp->cur_tx = 0; tp->dirty_rx = tp->dirty_tx = 0; + tp->nr_skbs_rx = 0; for (i = 0; i < RX_RING_SIZE; i++) { tp->rx_ring[i].status = 0x00000000; @@ -2503,6 +2505,7 @@ tp->rx_skbuff[i] = skb; if (skb == NULL) break; + tp->nr_skbs_rx++; skb->dev = dev; /* Mark as being used by this device. */ tp->rx_ring[i].status = cpu_to_le32(DescOwned); /* Owned by Tulip chip */ tp->rx_ring[i].buffer1 = virt_to_le32desc(skb->tail); @@ -2595,6 +2598,9 @@ dev->interrupt = 1; #endif + /* to be sure we restart receiving */ + tulip_rx(dev); + do { csr5 = inl(ioaddr + CSR5); /* Acknowledge all of the current interrupt sources ASAP. */ @@ -2797,7 +2803,7 @@ #endif /* Check if the packet is long enough to accept without copying to a minimally-sized skbuff. */ - if (pkt_len < rx_copybreak + if ((pkt_len < rx_copybreak || tp->nr_skbs_rx < 2) && (skb = dev_alloc_skb(pkt_len + 2)) != NULL) { skb->dev = dev; skb_reserve(skb, 2); /* 16 byte align the IP header */ @@ -2809,9 +2815,10 @@ pkt_len); #endif work_done++; - } else { /* Pass up the skb already on the Rx ring. */ + } else if (tp->nr_skbs_rx > 1) { /* Pass up the skb already on the Rx ring. */ char *temp = skb_put(skb = tp->rx_skbuff[entry], pkt_len); tp->rx_skbuff[entry] = NULL; + tp->nr_skbs_rx--; #ifndef final_version if (le32desc_to_virt(tp->rx_ring[entry].buffer1) != temp) printk(KERN_ERR "%s: Internal fault: The skbuff addresses " @@ -2820,14 +2827,24 @@ le32desc_to_virt(tp->rx_ring[entry].buffer1), skb->head, temp); #endif + } else { + /* we have only one skb; we must keep it: drop the packet */ + tp->stats.rx_dropped++; + skb = NULL; + /* Make this expensive: we do not want to be called immediately again + * the situation only gets after this interrupt handler finished + */ + work_done++; } - skb->protocol = eth_type_trans(skb, dev); - netif_rx(skb); - dev->last_rx = jiffies; - tp->stats.rx_packets++; + if (skb) { + skb->protocol = eth_type_trans(skb, dev); + netif_rx(skb); + dev->last_rx = jiffies; + tp->stats.rx_packets++; #if LINUX_VERSION_CODE > 0x20127 - tp->stats.rx_bytes += pkt_len; + tp->stats.rx_bytes += pkt_len; #endif + } } entry = (++tp->cur_rx) % RX_RING_SIZE; } @@ -2840,11 +2857,55 @@ skb = tp->rx_skbuff[entry] = dev_alloc_skb(PKT_BUF_SZ); if (skb == NULL) break; + tp->nr_skbs_rx++; skb->dev = dev; /* Mark as being used by this device. */ tp->rx_ring[entry].buffer1 = virt_to_le32desc(skb->tail); work_done++; } tp->rx_ring[entry].status = cpu_to_le32(DescOwned); + } + + /* + * We must catch the situation: + * the card run out of RX-buffers when this interrupt was triggered (but we have a skb available) + * + * This is the case, if + * tp->nr_skbs_rx > 0 + * and + * all buffers are dirty + * <=> tp->dirty_rx + RX_RING_SIZE == tp->cur_rx + * <=> tp->cur_rx has no skb associated + * + * Why? + * => + * If at this stage all buffers are dirty this means that + * tp->dirty_rx + RX_RING_SIZE == tp->cur_rx + * must hold. This means that the above refill did not change tp->dirty_rx at all + * which means that the associated skb must be null. As this is the same in the ring as + * tp->cur_rx represents, there is no skb associated with tp->cur_rx. + * + * <= + * If tp->cur_rx has no skb associated the rx-loop must be terminated with + * rx_work_limit<0 (tp->rx_ring[entry].status & cpu_to_le32(DescOwned) can't be + * true if no skb is associated). This means that + * tp->dirty_rx + RX_RING_SIZE == tp->cur_rx + * holds which means that all buffers are dirty + * + */ + entry = tp->cur_rx % RX_RING_SIZE; + if (tp->nr_skbs_rx > 0 && tp->rx_skbuff[entry] == NULL) { + int i; + /* search the one free buffer */ + for (i = 0; i < RX_RING_SIZE; i++) { + if (tp->rx_skbuff[i] != NULL) { + tp->rx_skbuff[entry] = tp->rx_skbuff[i]; + tp->rx_ring[entry].buffer1 = tp->rx_ring[i].buffer1; + tp->rx_skbuff[i] = NULL; + tp->rx_ring[entry].status = cpu_to_le32(DescOwned); + tp->dirty_rx++; + break; + } + } } return work_done; From mark@lightning.cistron.nl Fri Nov 26 06:05:22 1999 Date: Fri Nov 26 06:05:22 1999 From: mark@lightning.cistron.nl mark@lightning.cistron.nl Subject: 100baseTx-FD problem with 21143 Hi, Yesterday I made a testsetup with a 3com 8 port Officeconnect switch and some Linux PC's. Two of the PC's have 100Mbit cards, one is a 3com 905 and the other a Tulip 21143 (unknown brand). The 3com works perfectly at 100Mbit full duplex. But the Tulip has problems. The switch gives both full duplex and 100Mbit link lights, but when I try to transfer data it is very slow. When I force the tulip into half dulpex mode it works great. Here some stats: Insert module, using auto detect. Switch goes to 100Mbit full duplex thunder# ./mii-diag Using the default interface 'eth0'. Basic registers of MII PHY #32: 1000 786c 0000 0000 01e1 45e1 0000 0000. Basic mode control register 0x1000: Auto-negotiation enabled. You have link beat, and everything is working OK. Your link partner advertised 45e1: Flow-control 100baseTx-FD 100baseTx 10baseT-FD 10baseT, w/ 802.3X flow control. thunder# tcpspray -n 600 192.168.1.20 Transmitted 614400 bytes in 25.639532 seconds (23.401 kbytes/s) Interface stats: eth0 Link encap:Ethernet HWaddr 00:00:CB:53:16:02 inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:203 errors:0 dropped:0 overruns:0 frame:0 TX packets:431 errors:113 dropped:0 overruns:0 carrier:113 collisions:0 txqueuelen:100 Interrupt:9 Base address:0xec00 Insert module using options=3, switch goes to 100mbit, half duplex thunder# ./mii-diag Using the default interface 'eth0'. Basic registers of MII PHY #32: 0000 784c 0000 0000 0001 0000 0000 0000. Basic mode control register 0x0000: Auto-negotiation disabled, with Speed fixed at 10 mbps, half-duplex. You have link beat, and everything is working OK. Link partner information information is not exchanged when in fixed speed mode. So, according to mii-diag it's in 10mbps, half duplex. thunder# tcpspray -n 600 192.168.1.20 Transmitted 6144000 bytes in 0.587399 seconds (10214.522 kbytes/s) Interface stats: eth0 Link encap:Ethernet HWaddr 00:00:CB:53:16:02 inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:6289 errors:0 dropped:0 overruns:0 frame:0 TX packets:12548 errors:0 dropped:0 overruns:0 carrier:0 collisions:6261 txqueuelen:100 Interrupt:9 Base address:0xec00 Am I doing something wrong, or is there a problem with my card or driver? Thanks, Mark From minfrin@sharp.fm Fri Nov 26 09:37:11 1999 Date: Fri Nov 26 09:37:11 1999 From: Graham Leggett minfrin@sharp.fm Subject: Off topic question... Hi all, Sorry for what might be a silly question, but how do you get off this list? Regards, Graham -- ----------------------------------------- minfrin@sharp.fm "There's a moon over Bourbon Street tonight... From wolfgang.walter@stusta.mhn.de Fri Nov 26 11:51:51 1999 Date: Fri Nov 26 11:51:51 1999 From: Wolfgang Walter wolfgang.walter@stusta.mhn.de Subject: bug in tulip_rx? corrected patch 2 On Fri, Nov 26, 1999 at 01:48:43AM -0700, Edward Schlunder wrote: > On Thu, 25 Nov 1999, Wolfgang Walter wrote: > > > another version of my patch. My previous one generally works but has a > > problem when we get a lot of packets while we drop packets. This is > > because I did not return a work_done>0 in this case. > > Okay, one of my systems consistently runs into the tulip_rx bug every > night (other than Sun/Mon) between 1:00AM and 1:05AM. Your first and > second patches didn't seem to make any differences. Last night, on the To begin: thank you very much for you mail. This helps me a lot finding a good way for fixing the bug. The first one was buggy, the second one has problems if you constantly receive a lot of packets - one must call it buggy, too :-). > dot, my system go stuck in the "Suspended -- no Rx buffers" state with > your second patch: > > Date: Thu, 25 Nov 1999 01:05:00 -0700 > From: Cron Daemon > To: edward@ajusd.org > Subject: Cron /root/bin/reset-eth0.pl > > tulip-diag.c:v1.19 10/2/99 Donald Becker (becker@cesdis.gsfc.nasa.gov) > Index #1: Found a Lite-On 82c168 PNIC adapter at 0xe400. > Lite-On 82c168 PNIC chip registers at 0xe400: > 00008000 01ff01ff 42422600 00f03810 00f03a10 026800d7 816ce202 0000eb28 > 000006aa 00000000 00f03b00 05454844 00000020 00000000 00000000 10000001 > 00000000 00000000 f0041385 000000bf 609641e1 00f03870 393e8810 0001e978 > 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 > Port selection is MII, full-duplex. > Transmit started, Receive started, full-duplex. > The Rx process state is 'Suspended -- no Rx buffers'. > The Tx process state is 'Idle'. > The transmit unit is set to store-and-forward. > A simplifed EEPROM data table was found. > The EEPROM does not contain transceiver control information. > MII PHY found at address 1, status 0x782d. > MII PHY #1 transceiver registers: > 3000 782d 0040 6212 01e1 41e1 0003 0000 > 0000 0000 0000 0000 0000 0000 0000 0000 > 5000 0300 0000 0000 0000 0f74 0700 0000 > 003f 853e 0f00 ff00 002f 4000 80a0 000b. > Couldn't ping 206.207.140.1. Assuming network offline, restarting eth0 > > This third patch of yours I tried and tonight got a different result: > > tulip-diag.c:v1.19 10/2/99 Donald Becker (becker@cesdis.gsfc.nasa.gov) > Index #1: Found a Lite-On 82c168 PNIC adapter at 0xe400. > Lite-On 82c168 PNIC chip registers at 0xe400: > 00008000 01ff0000 aaaa6100 00f03010 00f03210 02670055 810ca202 0000fbaf > 00000000 00000000 00f032b0 30a4cc60 00000020 00000000 00000000 10000001 > 00000000 00000000 f0041385 000000bf 60fe000b 00f03060 393e8010 0001e978 > 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 > Port selection is MII, full-duplex. > Transmit started, Receive started, full-duplex. > The Rx process state is 'Waiting for packets'. > The Tx process state is 'Idle'. > The transmit threshold is 512. > Interrupt sources are pending! CSR5 is 02670055. > Tx done indication. > Tx out of buffers indication. > Link passed indication. > Rx Done indication. > A simplifed EEPROM data table was found. > The EEPROM does not contain transceiver control information. > MII PHY found at address 1, status 0x782d. > MII PHY #1 transceiver registers: > 3000 782d 0040 6212 01e1 41e1 0003 0000 > 0000 0000 0000 0000 0000 0000 0000 0000 > 5000 0300 0000 0000 0000 00af 0100 0000 > 003f 853e 0f00 ff00 002f 4000 80a0 000b. > > The machine seems to be able to recieve packets fine, but now transmitting > doesn't work very well. Pinging the machine from my home computer over > cable modem normally looks something like: > > 64 bytes from 206.207.140.3: icmp_seq=0 ttl=242 time=69.1 ms > 64 bytes from 206.207.140.3: icmp_seq=1 ttl=242 time=77.1 ms > 64 bytes from 206.207.140.3: icmp_seq=2 ttl=242 time=57.5 ms > > But right now it looks like: > > 64 bytes from 206.207.140.5: icmp_seq=1290 ttl=242 time=22351.6 ms > 64 bytes from 206.207.140.5: icmp_seq=1293 ttl=242 time=25455.2 ms > 64 bytes from 206.207.140.5: icmp_seq=1291 ttl=242 time=27456.5 ms > > tcpdump -i eth0 shows the machine recieving packets seemingly fine. > ifconfig eth0: > eth0 Link encap:Ethernet HWaddr 00:A0:CC:55:8D:99 > inet addr:206.207.140.5 Bcast:206.207.140.255 Mask:255.255.255.0 > IPX/Ethernet 802.2 addr:000143AA:00A0CC558D99 > IPX/Ethernet 802.3 addr:00000002:00A0CC558D99 > UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 > RX packets:267115 errors:0 dropped:0 overruns:0 frame:0 > TX packets:214608 errors:121 dropped:0 overruns:2 carrier:3 > collisions:0 txqueuelen:100 > Interrupt:20 Base address:0xe400 > Yes, this is what I expect. Short explanation. In the interrupt handler we have a loop which finish when no further event of the card arrived or if we processed to many of them. If there are to many, the driver sets a timer on the card and disables all interrupts but the timer interrupt. This way it controls that we are not overstressed. In the criticial situation you have only one skb left. This means we call tulip_rx for every single packet. Therefor we would be really overstressed. And so sending is temporarly stopped, too. What we would need is to temporarly suspend receiving. I think I will have a patch tomorrow with the following strategy: accept rx suspend mode (and therefor no skb can be allowed again), but if we are in rx suspend mode when leaving the interrupt handler then set the card timer if the interrupt handling is called and we are already in rx suspend mode: call tulip_rx (which tries to allocate new skbs). This should work much better then the approach I use now. Well, I had no experience with network-drivers at all. But now I get a feeling for it :-). I would be very glad if you would try out this alternativ approach (I'll send you the patch). As I sometimes have to wait 2 or 3 days to get into this skb-shortage it. Greetings, Wolfgang Walter > -- > Ed Schlunder > From wolfgang.walter@stusta.mhn.de Fri Nov 26 19:31:17 1999 Date: Fri Nov 26 19:31:17 1999 From: Wolfgang Walter wolfgang.walter@stusta.mhn.de Subject: bug in tulip_rx? corrected patch 2 On Fri, Nov 26, 1999 at 05:51:46PM +0100, Wolfgang Walter wrote: > On Fri, Nov 26, 1999 at 01:48:43AM -0700, Edward Schlunder wrote: > > On Thu, 25 Nov 1999, Wolfgang Walter wrote: > > > > > another version of my patch. My previous one generally works but has a > > > problem when we get a lot of packets while we drop packets. This is > > > because I did not return a work_done>0 in this case. > > > > Okay, one of my systems consistently runs into the tulip_rx bug every > > night (other than Sun/Mon) between 1:00AM and 1:05AM. Your first and > > second patches didn't seem to make any differences. Last night, on the > > To begin: thank you very much for you mail. This helps me a lot finding a > good way for fixing the bug. > > The first one was buggy, the second one has problems if you constantly receive > a lot of packets - one must call it buggy, too :-). > > > dot, my system go stuck in the "Suspended -- no Rx buffers" state with > > your second patch: > > > > Date: Thu, 25 Nov 1999 01:05:00 -0700 > > From: Cron Daemon > > To: edward@ajusd.org > > Subject: Cron /root/bin/reset-eth0.pl > > > > tulip-diag.c:v1.19 10/2/99 Donald Becker (becker@cesdis.gsfc.nasa.gov) > > Index #1: Found a Lite-On 82c168 PNIC adapter at 0xe400. > > Lite-On 82c168 PNIC chip registers at 0xe400: > > 00008000 01ff01ff 42422600 00f03810 00f03a10 026800d7 816ce202 0000eb28 > > 000006aa 00000000 00f03b00 05454844 00000020 00000000 00000000 10000001 > > 00000000 00000000 f0041385 000000bf 609641e1 00f03870 393e8810 0001e978 > > 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 > > Port selection is MII, full-duplex. > > Transmit started, Receive started, full-duplex. > > The Rx process state is 'Suspended -- no Rx buffers'. > > The Tx process state is 'Idle'. > > The transmit unit is set to store-and-forward. > > A simplifed EEPROM data table was found. > > The EEPROM does not contain transceiver control information. > > MII PHY found at address 1, status 0x782d. > > MII PHY #1 transceiver registers: > > 3000 782d 0040 6212 01e1 41e1 0003 0000 > > 0000 0000 0000 0000 0000 0000 0000 0000 > > 5000 0300 0000 0000 0000 0f74 0700 0000 > > 003f 853e 0f00 ff00 002f 4000 80a0 000b. > > Couldn't ping 206.207.140.1. Assuming network offline, restarting eth0 > > > > This third patch of yours I tried and tonight got a different result: > > > > tulip-diag.c:v1.19 10/2/99 Donald Becker (becker@cesdis.gsfc.nasa.gov) > > Index #1: Found a Lite-On 82c168 PNIC adapter at 0xe400. > > Lite-On 82c168 PNIC chip registers at 0xe400: > > 00008000 01ff0000 aaaa6100 00f03010 00f03210 02670055 810ca202 0000fbaf > > 00000000 00000000 00f032b0 30a4cc60 00000020 00000000 00000000 10000001 > > 00000000 00000000 f0041385 000000bf 60fe000b 00f03060 393e8010 0001e978 > > 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 > > Port selection is MII, full-duplex. > > Transmit started, Receive started, full-duplex. > > The Rx process state is 'Waiting for packets'. > > The Tx process state is 'Idle'. > > The transmit threshold is 512. > > Interrupt sources are pending! CSR5 is 02670055. > > Tx done indication. > > Tx out of buffers indication. > > Link passed indication. > > Rx Done indication. > > A simplifed EEPROM data table was found. > > The EEPROM does not contain transceiver control information. > > MII PHY found at address 1, status 0x782d. > > MII PHY #1 transceiver registers: > > 3000 782d 0040 6212 01e1 41e1 0003 0000 > > 0000 0000 0000 0000 0000 0000 0000 0000 > > 5000 0300 0000 0000 0000 00af 0100 0000 > > 003f 853e 0f00 ff00 002f 4000 80a0 000b. > > > > The machine seems to be able to recieve packets fine, but now transmitting > > doesn't work very well. Pinging the machine from my home computer over > > cable modem normally looks something like: > > > > 64 bytes from 206.207.140.3: icmp_seq=0 ttl=242 time=69.1 ms > > 64 bytes from 206.207.140.3: icmp_seq=1 ttl=242 time=77.1 ms > > 64 bytes from 206.207.140.3: icmp_seq=2 ttl=242 time=57.5 ms > > > > But right now it looks like: > > > > 64 bytes from 206.207.140.5: icmp_seq=1290 ttl=242 time=22351.6 ms > > 64 bytes from 206.207.140.5: icmp_seq=1293 ttl=242 time=25455.2 ms > > 64 bytes from 206.207.140.5: icmp_seq=1291 ttl=242 time=27456.5 ms > > > > tcpdump -i eth0 shows the machine recieving packets seemingly fine. > > ifconfig eth0: > > eth0 Link encap:Ethernet HWaddr 00:A0:CC:55:8D:99 > > inet addr:206.207.140.5 Bcast:206.207.140.255 Mask:255.255.255.0 > > IPX/Ethernet 802.2 addr:000143AA:00A0CC558D99 > > IPX/Ethernet 802.3 addr:00000002:00A0CC558D99 > > UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 > > RX packets:267115 errors:0 dropped:0 overruns:0 frame:0 > > TX packets:214608 errors:121 dropped:0 overruns:2 carrier:3 > > collisions:0 txqueuelen:100 > > Interrupt:20 Base address:0xe400 > > > > Yes, this is what I expect. Short explanation. > > In the interrupt handler we have a loop which finish when no further event > of the card arrived or if we processed to many of them. If there are to > many, the driver sets a timer on the card and disables all interrupts but > the timer interrupt. This way it controls that we are not overstressed. > > In the criticial situation you have only one skb left. This means we call > tulip_rx for every single packet. Therefor we would be really overstressed. > And so sending is temporarly stopped, too. > > What we would need is to temporarly suspend receiving. I have to correct me: the code does not disable all interrupts from the card, only the last one processed. But these may be send interrupts, too. > > I think I will have a patch tomorrow with the following strategy: > > accept rx suspend mode (and therefor no skb can be allowed again), > but if we are in rx suspend mode when leaving the interrupt handler > then set the card timer > > if the interrupt handling is called and we are already in rx suspend > mode: call tulip_rx (which tries to allocate new skbs). > > This should work much better then the approach I use now. I now implemented that and do a short test (if it runs under normal conditions), then I'll post it. > > Well, I had no experience with network-drivers at all. But now I get a feeling > for it :-). > > I would be very glad if you would try out this alternativ approach (I'll send > you the patch). As I sometimes have to wait 2 or 3 days to get into this > skb-shortage it. I now had this situation again and my patch really worked fine: the interface continued to work fine after 55 packets got dropped. Greetings, Wolfgang Walter From mark@lightning.cistron.nl Fri Nov 26 19:46:59 1999 Date: Fri Nov 26 19:46:59 1999 From: mark@lightning.cistron.nl mark@lightning.cistron.nl Subject: 100baseTx-FD problem with 21143 Hi. On Fri, 26 Nov 1999, Wolfgang Walter wrote: > On Fri, Nov 26, 1999 at 12:01:16PM +0100, mark@lightning.cistron.nl wrote: > > Hi, > > > > Yesterday I made a testsetup with a 3com 8 port Officeconnect switch and some > > Linux PC's. Two of the PC's have 100Mbit cards, one is a 3com 905 and the other > > a Tulip 21143 (unknown brand). The 3com works perfectly at 100Mbit full duplex. > > But the Tulip has problems. The switch gives both full duplex and 100Mbit > > link lights, but when I try to transfer data it is very slow. When I force the > > tulip into half dulpex mode it works great. > > > > Here some stats: > > > > Which driver do you use? I head similar problems with drivers 0.89H, too. > Indeed, the driver didn't really put the card to FD-mode with flow-control. I'm using driver: Nov 26 11:52:26 localhost kernel: tulip.c:v0.91 4/14/99 becker@cesdis.gsfc.nasa.gov Bye, Mark -- Discussion is futile, you will be ignored, - Linus From wolfgang.walter@stusta.mhn.de Fri Nov 26 20:16:49 1999 Date: Fri Nov 26 20:16:49 1999 From: Wolfgang Walter wolfgang.walter@stusta.mhn.de Subject: tulip bug, alternative fix (untested) Hi Edward, my patch (corrected patch 2) does work here. Now I implemented another approach which may be more elegant and better. It works under normal condition without problems. If it works under the hang-condition I could not verify yet. Try out :-). Greetings, Wolfgang Walter --- 2.2.14pre4/drivers/net/tulip.c Fri Nov 5 18:02:35 1999 +++ 2.2.14pre4-m/drivers/net/tulip.c Sat Nov 27 02:03:32 1999 @@ -530,6 +530,8 @@ int cur_index; /* Current media index. */ int saved_if_port; unsigned char pci_bus, pci_devfn; + int ttimer; + int susp_rx; int pad0, pad1; /* Used for 8-byte alignment */ }; @@ -2484,6 +2486,8 @@ tp->tx_full = 0; tp->cur_rx = tp->cur_tx = 0; tp->dirty_rx = tp->dirty_tx = 0; + tp->susp_rx = 0; + tp->ttimer = 0; for (i = 0; i < RX_RING_SIZE; i++) { tp->rx_ring[i].status = 0x00000000; @@ -2578,6 +2582,8 @@ struct tulip_private *tp = (struct tulip_private *)dev->priv; long ioaddr = dev->base_addr; int csr5, work_budget = max_interrupt_work; + int entry; + int missed; #if defined(__i386__) && defined(SMP_CHECK) if (test_and_set_bit(0, (void*)&dev->interrupt)) { @@ -2594,7 +2600,7 @@ } dev->interrupt = 1; #endif - + do { csr5 = inl(ioaddr + CSR5); /* Acknowledge all of the current interrupt sources ASAP. */ @@ -2607,7 +2613,10 @@ if ((csr5 & (NormalIntr|AbnormalIntr)) == 0) break; - if (csr5 & (RxIntr | RxNoBuf)) + if (csr5 & RxNoBuf) + tp->susp_rx = 1; + + if (csr5 & RxIntr) work_budget -= tulip_rx(dev); if (csr5 & (TxNoBuf | TxDied | TxIntr)) { @@ -2708,6 +2717,7 @@ printk(KERN_ERR "%s: Re-enabling interrupts, %8.8x.\n", dev->name, csr5); outl(tulip_tbl[tp->chip_id].valid_intrs, ioaddr + CSR7); + tp->ttimer = 0; } if (csr5 & (TPLnkPass | TPLnkFail | 0x08000000)) { if (tp->link_change) @@ -2726,9 +2736,34 @@ outl(((~csr5) & 0x0001ebef) | AbnormalIntr | TimerInt, ioaddr + CSR7); outl(12, ioaddr + CSR11); + tp->ttimer = 1; break; } } while (1); + + + /* if in suspend mode: try to get an skb */ + entry = tp->cur_rx % RX_RING_SIZE; + if (tp->susp_rx) { + tulip_rx(dev); + tp->susp_rx = 0; + } + + /* check if we card is in suspend mode */ + if (tp->rx_skbuff[entry] == NULL) { + tp->susp_rx = 1; + if (tp->ttimer == 0 || (inl(ioaddr + CSR11) & 0xffff) == 0) { + outl(tulip_tbl[tp->chip_id].valid_intrs | TimerInt, + ioaddr + CSR7); + outl(TimerInt, ioaddr + CSR5); + outl(12, ioaddr + CSR11); + tp->ttimer = 1; + } + } + + if ((missed = inl(ioaddr + CSR8) & 0x1ffff)) { + tp->stats.rx_dropped += missed & 0x10000 ? 0x10000 : missed; + } if (tulip_debug > 4) printk(KERN_DEBUG "%s: exiting interrupt, csr5=%#4.4x.\n", From wolfgang.walter@stusta.mhn.de Sat Nov 27 23:38:12 1999 Date: Sat Nov 27 23:38:12 1999 From: Wolfgang Walter wolfgang.walter@stusta.mhn.de Subject: another tuilp bug? Hi, there seems to be another tulip bug. The timer interrupt is handled as abnormal interrupt. At least for 21041 it seems to be a normal interrupt. This means that the handling of TimeInt should be moved. As I don't know if it is not an abnormal interrupt for other chips of the tulip familie, one should move out of normal and abnormal. And one should explicit enable NormalInt when setting the timer. The 21041-manual says in 3-45 that is an normal interrupt, too. Greetings, Wolfgang Walter From wolfgang.walter@stusta.mhn.de Sat Nov 27 23:48:04 1999 Date: Sat Nov 27 23:48:04 1999 From: Wolfgang Walter wolfgang.walter@stusta.mhn.de Subject: tulip bug, alternative fix, #3 (tested) Hi, this patch works for me. Would be nice if you could confirm it :-). Change compared with my previous one I sent you: TimerInt handling changed. Thanks, Wolfgang Walter --- 2.2.14pre4/drivers/net/tulip.c Fri Nov 5 18:02:35 1999 +++ 2.2.14pre4-m/drivers/net/tulip.c Sun Nov 28 05:59:44 1999 @@ -530,6 +530,9 @@ int cur_index; /* Current media index. */ int saved_if_port; unsigned char pci_bus, pci_devfn; + int ttimer; + int susp_rx; + unsigned long nir; int pad0, pad1; /* Used for 8-byte alignment */ }; @@ -2484,6 +2487,9 @@ tp->tx_full = 0; tp->cur_rx = tp->cur_tx = 0; tp->dirty_rx = tp->dirty_tx = 0; + tp->susp_rx = 0; + tp->ttimer = 0; + tp->nir = 0; for (i = 0; i < RX_RING_SIZE; i++) { tp->rx_ring[i].status = 0x00000000; @@ -2578,6 +2584,8 @@ struct tulip_private *tp = (struct tulip_private *)dev->priv; long ioaddr = dev->base_addr; int csr5, work_budget = max_interrupt_work; + int entry; + int missed; #if defined(__i386__) && defined(SMP_CHECK) if (test_and_set_bit(0, (void*)&dev->interrupt)) { @@ -2595,6 +2603,8 @@ dev->interrupt = 1; #endif + tp->nir++; + do { csr5 = inl(ioaddr + CSR5); /* Acknowledge all of the current interrupt sources ASAP. */ @@ -2703,12 +2713,6 @@ tp->stats.rx_missed_errors += inl(ioaddr + CSR8) & 0xffff; outl(tp->csr6 | 0x2002, ioaddr + CSR6); } - if (csr5 & TimerInt) { - if (tulip_debug > 2) - printk(KERN_ERR "%s: Re-enabling interrupts, %8.8x.\n", - dev->name, csr5); - outl(tulip_tbl[tp->chip_id].valid_intrs, ioaddr + CSR7); - } if (csr5 & (TPLnkPass | TPLnkFail | 0x08000000)) { if (tp->link_change) (tp->link_change)(dev, csr5); @@ -2716,6 +2720,13 @@ /* Clear all error sources, included undocumented ones! */ outl(0x0800f7ba, ioaddr + CSR5); } + if (csr5 & TimerInt) { + if (tulip_debug > 2) + printk(KERN_ERR "%s: Re-enabling interrupts, %8.8x.\n", + dev->name, csr5); + outl(tulip_tbl[tp->chip_id].valid_intrs, ioaddr + CSR7); + tp->ttimer = 0; + } if (--work_budget < 0) { if (tulip_debug > 1) printk(KERN_WARNING "%s: Too much work during an interrupt, " @@ -2723,12 +2734,43 @@ /* Acknowledge all interrupt sources. */ outl(0x8001ffff, ioaddr + CSR5); /* Clear all interrupting sources, set timer to re-enable. */ - outl(((~csr5) & 0x0001ebef) | AbnormalIntr | TimerInt, + outl(((~csr5) & 0x0001ebef) | NormalIntr | AbnormalIntr | TimerInt, ioaddr + CSR7); outl(12, ioaddr + CSR11); + tp->ttimer = 1; break; } } while (1); + + + /* if in suspend mode: try to get an skb */ + entry = tp->cur_rx % RX_RING_SIZE; + /* if in suspend mode: try to get an skb; if received packets pending: receive */ + if (tp->susp_rx || (tp->rx_skbuff[entry] != NULL && ! (tp->rx_ring[entry].status & cpu_to_le32(DescOwned)))) { + if (tp->susp_rx) + printk(KERN_WARNING "%s: in rx suspend mode: (%lu) (cur_rx = %u, ttimer = %d) try to get some skbs\n", dev->name, tp->nir, tp->cur_rx, tp->ttimer); + tulip_rx(dev); + tp->susp_rx = 0; + entry = tp->cur_rx % RX_RING_SIZE; + } + + /* check if we card is in suspend mode */ + if (tp->rx_skbuff[entry] == NULL) { + printk(KERN_WARNING "%s: in rx suspend mode: (%lu) (tp->cur_rx = %u, ttimer = %d) go/stay in suspend mode\n", dev->name, tp->nir, tp->cur_rx, tp->ttimer); + tp->susp_rx = 1; + if (tp->ttimer == 0 || (inl(ioaddr + CSR11) & 0xffff) == 0) { + printk(KERN_WARNING "%s: in rx suspend mode: (%lu) set timer\n", dev->name, tp->nir); + outl(tulip_tbl[tp->chip_id].valid_intrs | TimerInt, + ioaddr + CSR7); + outl(TimerInt, ioaddr + CSR5); + outl(12, ioaddr + CSR11); + tp->ttimer = 1; + } + } + + if ((missed = inl(ioaddr + CSR8) & 0x1ffff)) { + tp->stats.rx_dropped += missed & 0x10000 ? 0x10000 : missed; + } if (tulip_debug > 4) printk(KERN_DEBUG "%s: exiting interrupt, csr5=%#4.4x.\n", From kernel@venus.ajusd.org Sun Nov 28 02:54:28 1999 Date: Sun Nov 28 02:54:28 1999 From: Edward Schlunder kernel@venus.ajusd.org Subject: tulip bug, alternative fix, #3 (tested) On Sun, 28 Nov 1999, Wolfgang Walter wrote: > How long transmitting does not work very well after hang situation is > over (rx-dropped does not increase any more?). Does it help if you > just kill some applications whioch allocated a lot of memory? It stayed in the bad transmitting state up until I reset it ("ifdown eth0; ifup eth0") at least 30 minutes after it went phooey. I didn't try killing off any applications, but I doubt memory should be a problem. It dies in the middle of the night (around 1AM) when nobody is using the system and the system has 1GB of memory to begin with. > It is interesting that you run out of skbs always at a certain time. > What runs then (do you start special cron-jobs?). How much memory do > you have and how big is your swap? Yes, it is rather interesting that it always konks out at around 1AM. Let me explain my set up... I have 8 servers: a main one (the one that's konking out) with 1GB RAM and quad PPro 200s, and 7 site ones with 512MB RAM and dual PPro 200s. The site server each have their time syncronized via xntpd to the main server. At 1:01AM, each server is set up to run a cronjob that basically does "mt lock" to lock a tape in the SCSI tape drive (of which there hasn't been one lately), fails, and then sends off an email complaining to the main server. The main server also runs nntpsend every hour at 1 minute past the hour (ie, *:01). The tape drive cronjob seems to be part of the cause, as it consistently crashes the network every night around 1AM -- except for the two nights (Sun and Mon) that the tape drive cronjobs were turned off last week. But -- it's not just the tape drive cornjob because one day I tried setting all the servers to do the tape drive job hourly (ie, *:01) and it didn't crash during the day (I only tried a few times and then set it back). > How long does your skript wait before it resets eth0? Because with my > script Rx should remain in supsend mode until skbs are again > available. Could you send me the output of ifconfig eth0? If your > script detects the situation: The network reset script was set to run every 5 minutes and reset immediately if it finds the net broken. I have now set it to run at *:05 hourly and to show "ifconfig eth0 ; sleep 2" ten times before resetting the network card. > this patch works for me. Would be nice if you could confirm it :-). Change > compared with my previous one I sent you: TimerInt handling changed. Will do.. Since I've never had the system crash before on Sun or Mon night, we will not really know if your patch is working or if it it just never happens on Sun/Mon if it doesn't crash. ;-) But after Tuesday night we will know for sure. -- Ed Schlunder From Mike.Rudgyard@comlab.ox.ac.uk Tue Nov 30 08:25:06 1999 Date: Tue Nov 30 08:25:06 1999 From: Mike Rudgyard Mike.Rudgyard@comlab.ox.ac.uk Subject: Intel EtherExpress PRO/100 Mobile Cardbus 32 Adapter Hi, According to the latest PCMCIA howto, this card is now supported, although it does not work on my setup. I have mailed the PCMCIA Message Forum, with no response, so I am not sure whether the problem is in the Tulip driver, the Cardbus interface or the PCMCIA package. As you will see below, the tulip-diag programme informs me about a PCI bus error, before moaning about the EEPROM, hence this mail. Many thanks, Mike Rudgyard -------------------------------------------------------------------------- System: Red Hat 6.1 Kernel 2.2.12 tulip.c:v0.91g 7/16/99 pcmcia-cs-3.1.4 Here's what I get in /var/log/messages : Nov 18 10:52:43 rock last message repeated 19 times Nov 18 10:52:44 rock cardmgr[360]: initializing socket 1 Nov 18 10:52:44 rock cardmgr[360]: socket 1: Intel EtherExpress PRO/100 CardBus Mobile Adapter32 Nov 18 10:52:44 rock kernel: cs: cb_alloc(bus 35): vendor 0x1011, device 0x0019 Nov 18 10:52:44 rock cardmgr[360]: executing: 'insmod /lib/modules/2.2.12-20/pcmcia/cb_enabler.o' Nov 18 10:52:44 rock cardmgr[360]: executing: 'insmod /lib/modules/2.2.12-20/pcmcia/tulip_cb.o' Nov 18 10:52:44 rock kernel: cs: cb_config(bus 35) Nov 18 10:52:44 rock kernel: fn 0 bar 1: io 0x100-0x17f Nov 18 10:52:44 rock kernel: fn 0 bar 2: mem 0x60081000-0x6008107f Nov 18 10:52:44 rock kernel: fn 0 rom: mem 0x60041000-0x60080fff Nov 18 10:52:44 rock kernel: tulip_attach(bus 35, function 0) Nov 18 10:52:44 rock kernel: tulip.c:v0.91 4/14/99 becker@cesdis.gsfc.nasa.gov (modified by danilo@cs.uni-magdeburg.de for XIRCOM CBE, fixed by Doug Ledford) Nov 18 10:52:44 rock kernel: eth0: Digital DS21143 Tulip rev 48 at 0x100, EEPROM not present, 00:4C:69:6E:75:79, IRQ 3. Nov 18 10:52:44 rock cardmgr[360]: executing: './network start eth0' Nov 18 10:52:45 rock modprobe: can't locate module block-major-22 Here's what I get with another 3COM card (that works fine...): Nov 18 10:52:17 rock last message repeated 53 times Nov 18 10:52:18 rock cardmgr[360]: initializing socket 1 Nov 18 10:52:18 rock cardmgr[360]: socket 1: 3Com 3CCFE575B/3CXFE575B Fast EtherLink XL Nov 18 10:52:18 rock kernel: cs: cb_alloc(bus 35): vendor 0x10b7, device 0x5157 Nov 18 10:52:18 rock cardmgr[360]: executing: 'insmod /lib/modules/2.2.12-20/pcmcia/cb_enabler.o' Nov 18 10:52:18 rock cardmgr[360]: executing: 'insmod /lib/modules/2.2.12-20/pcmcia/3c575_cb.o' Nov 18 10:52:18 rock kernel: 3c59x.c:v0.99L 5/28/99 Donald Becker http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html Nov 18 10:52:18 rock kernel: cs: cb_config(bus 35) Nov 18 10:52:18 rock kernel: fn 0 bar 1: io 0x100-0x17f Nov 18 10:52:18 rock kernel: fn 0 bar 2: mem 0x60021000-0x6002107f Nov 18 10:52:18 rock kernel: fn 0 bar 3: mem 0x60020000-0x6002007f Nov 18 10:52:18 rock kernel: fn 0 rom: mem 0x60000000-0x6001ffff Nov 18 10:52:18 rock kernel: vortex_attach(bus 35, function 0, device 5157) Nov 18 10:52:18 rock kernel: eth0: 3Com 3CCFE575 Cyclone CardBus at 0x100, 00:50:04:5b:b0:b9, IRQ 3 Nov 18 10:52:18 rock kernel: eth0: CardBus functions mapped 60020000->c8073000 Nov 18 10:52:18 rock kernel: 8K byte-wide RAM 5:3 Rx:Tx split, MII interface. Nov 18 10:52:18 rock kernel: MII transceiver found at address 0, status 7809. Nov 18 10:52:18 rock kernel: Enabling bus-master transmits and whole-frame receives. Nov 18 10:52:18 rock cardmgr[360]: executing: './network start eth0' Nov 18 10:52:18 rock modprobe: can't locate module block-major-22 Nov 18 10:52:21 rock last message repeated 5 times Nov 18 10:52:21 rock kernel: eth0: Setting full-duplex based on MII #0 link partner capability of 41e1. Nov 18 10:52:22 rock modprobe: can't locate module block-major-22 Here's what tulip-diag gives on the EEPRO card: [root@rock incoming]# tulip-diag tulip-diag.c:v1.19 10/2/99 Donald Becker (becker@cesdis.gsfc.nasa.gov) Index #1: Found a Digital DS21143 Tulip adapter at 0x60081000. Port selection is 100mbps-SYM/PCS 100baseTx scrambler, full-duplex. Transmit started, Receive started, full-duplex. The Rx process state is 'Transferring Rx frame into memory'. The Tx process state is 'Closing Tx descriptor'. PCI bus error!: Unknown 7. The transmit unit is set to store-and-forward. Interrupt sources are pending! CSR5 is ffffffff. Tx done indication. Tx complete indication. Tx out of buffers indication. Transmit Jabber indication. Link passed indication. Tx FIFO Underflow indication. Rx Done indication. Receiver out of buffers indication. Receiver stopped indication. Receiver jabber indication. Link changed indication. Timer expired indication. Link failed indication. PCI bus error indication. Early Rx indication. The NWay status register is ffffffff. WARNING: The EEPROM is missing or erased! Internal autonegotiation state is 'Invalid state'. Use '-a' or '-aa' to show device registers, '-e' to show EEPROM contents, -ee for parsed contents, or '-m' or '-mm' to show MII management registers. Since it tells me there is a PCI bus error, here's some info on the PCI devices on Dell Latitude CPi (with the EtherExpress card in....) PCI devices found: Bus 35, device 0, function 0: Ethernet controller: DEC DC21142 (rev 48). Medium devsel. Fast back-to-back capable. IRQ 3. Non-prefetchable 32 bit memory at 0x100 [0x100]. Non-prefetchable 32 bit memory at 0x60081000 [0x60081000]. Bus 0, device 0, function 0: Host bridge: Intel 440BX - 82443BX Host (no AGP) (rev 2). Medium devsel. Master Capable. Latency=32. Prefetchable 32 bit memory at 0xd0000000 [0xd0000008]. Bus 0, device 2, function 0: VGA compatible controller: Neomagic MagicGraph NM2160 (rev 1). Medium devsel. Fast back-to-back capable. IRQ 11. Master Capable. Latency=32. Min Gnt=16.Max Lat=255. Prefetchable 32 bit memory at 0xe1000000 [0xe1000008]. Non-prefetchable 32 bit memory at 0xfde00000 [0xfde00000]. Non-prefetchable 32 bit memory at 0xfdd00000 [0xfdd00000]. Bus 0, device 3, function 0: CardBus bridge: Texas Instruments PCI1131 (rev 1). Medium devsel. IRQ 11. Master Capable. Latency=32. Min Gnt=192.Max Lat=7. Bus 0, device 3, function 1: CardBus bridge: Texas Instruments PCI1131 (rev 1). Medium devsel. IRQ 11. Master Capable. Latency=32. Min Gnt=128.Max Lat=7. Bus 0, device 7, function 0: Bridge: Intel 82371AB PIIX4 ISA (rev 1). Medium devsel. Fast back-to-back capable. Master Capable. No bursts. Bus 0, device 7, function 1: IDE interface: Intel 82371AB PIIX4 IDE (rev 1). Medium devsel. Fast back-to-back capable. Master Capable. Latency=32. I/O at 0x860 [0x861]. Bus 0, device 7, function 2: USB Controller: Intel 82371AB PIIX4 USB (rev 1). Medium devsel. Fast back-to-back capable. IRQ 11. Master Capable. Latency=32. I/O at 0xece0 [0xece1]. Bus 0, device 7, function 3: Bridge: Intel 82371AB PIIX4 ACPI (rev 1). Medium devsel. Fast back-to-back capable. -- Michael Rudgyard Smith Fellow Oxford University Computing Laboratory Wolfson Building Parks Rd Oxford OX1 3QD UK Tel : +44 (0)1865 273896 Fax : +44 (0)1865 273839 From becker@cesdis.gsfc.nasa.gov Tue Nov 30 16:00:46 1999 Date: Tue Nov 30 16:00:46 1999 From: Donald Becker becker@cesdis.gsfc.nasa.gov Subject: Intel EtherExpress PRO/100 Mobile Cardbus 32 Adapter On Tue, 30 Nov 1999, Mike Rudgyard wrote: > Subject: Intel EtherExpress PRO/100 Mobile Cardbus 32 Adapter > According to the latest PCMCIA howto, this card is now supported, although > it does not work on my setup. I have mailed the PCMCIA Message Forum, with > no response, so I am not sure whether the problem is in the Tulip driver, > the Cardbus interface or the PCMCIA package. As you will see below, the > tulip-diag programme informs me about a PCI bus error, before moaning > about the EEPROM, hence this mail. It's supported *IF* the EEPROM media table is correct. Some editions of the card don't have a blank EEPROM, and you must use a recent tulip-diag program to write it. > Nov 18 10:52:44 rock cardmgr[360]: socket 1: Intel EtherExpress PRO/100 CardBus Mobile Adapter32 > Nov 18 10:52:44 rock kernel: cs: cb_alloc(bus 35): vendor 0x1011, device 0x0019 Yup, a 21143. > Nov 18 10:52:44 rock kernel: fn 0 bar 1: io 0x100-0x17f > Nov 18 10:52:44 rock kernel: fn 0 bar 2: mem 0x60081000-0x6008107f I/O address 0x100. > Nov 18 10:52:44 rock kernel: tulip.c:v0.91 4/14/99 becker@cesdis.gsfc.nasa.gov (modified by danilo@cs.uni-magdeburg.de for XIRCOM CBE, fixed by Doug Ledford) I don't trust the modified version, but that's not the problem here. > Nov 18 10:52:44 rock kernel: eth0: Digital DS21143 Tulip rev 48 at 0x100, > EEPROM not present, 00:4C:69:6E:75:79, IRQ 3. This is the problem -- the EEPROM is blank. Intel doesn't follow their own design manual. They are the *only* 21143 CardBus vendor that doesn't. > [root@rock incoming]# tulip-diag > tulip-diag.c:v1.19 10/2/99 Donald Becker (becker@cesdis.gsfc.nasa.gov) > Index #1: Found a Digital DS21143 Tulip adapter at 0x60081000. I don't know where it picked this address from! It should use the I/O address from BAR0, not the memory address from BAR1. I'm guessing the PCMCIA code does not leave the I/O space bit set in /proc/bus/pci/devices. (David, can you comment on this?) > Bus 35, device 0, function 0: > Ethernet controller: DEC DC21142 (rev 48). > Medium devsel. Fast back-to-back capable. IRQ 3. > Non-prefetchable 32 bit memory at 0x100 [0x100]. > Non-prefetchable 32 bit memory at 0x60081000 [0x60081000]. Yup. That's what is happening. This is likely David's bug. The work-around is tulip-diag -t 4 -p 0x100 -e Follow the directions to update your EEPROM, if everything looks good from the report. Donald Becker Scyld Computing Corporation, and USRA-CESDIS, becker@cesdis.gsfc.nasa.gov From dhinds@tao.stanford.edu Tue Nov 30 16:19:56 1999 Date: Tue Nov 30 16:19:56 1999 From: David Hinds dhinds@tao.stanford.edu Subject: Intel EtherExpress PRO/100 Mobile Cardbus 32 Adapter On Tue, Nov 30, 1999 at 04:09:30PM -0500, Donald Becker wrote: > > I don't know where it picked this address from! It should use the I/O > address from BAR0, not the memory address from BAR1. I'm guessing the > PCMCIA code does not leave the I/O space bit set in /proc/bus/pci/devices. > > (David, can you comment on this?) Yup, this would seem to be a bug in my CardBus setup code; I didn't really think about what other things might make use of the values I stick in the pci_dev structure. I'll fix it for 3.1.5. -- Dave