Hello, I've got some strange problems with the 3c59x driver. The problem with different versions of 3c59x in combination with the 2.2(.17)-Kernel is: The insmod-command succeeds, I can ifconfig the device, get link-up status at the switch, but can't get a packet of traffic, neither in nor out. As far as I understand the output of mii-diag an the driver's kern.info logs (see below), it seams to have problems to correctly detect/initialize the transceiver?! The NICs I've got problems with are 3Com 3c905C-TX, running in different i386-Motherboards, connected via a Cisco Catalyst 2900 XL switch, configured to enforce 100BaseTX Half-Duplex. One of the machines has a SMC Etherpower-II as eth0 and the 3com as eth1, but the problems are the same on machines with a single network interface. The same setup works fine with kernel 2.4.2 and the driver distributed with that one. For some additional problems with the 2.4-ncpfs/ipx-Code I would like to stay with the 2.2-Kernel for a while. Thanks in advance, Jens. -- Jens Peter Lindemann <Jens.Lindemann@Biologie.Uni-Bielefeld.DE> Neurobiology, University of Bielefeld, D-33501 Bielefeld Additional information: (kernel 2.4.2)$ lspci -vx 00:12.0 Ethernet controller: 3Com Corporation 3c905C-TX [Fast Etherlink] (rev 78) Subsystem: 3Com Corporation: Unknown device 1000 Flags: bus master, medium devsel, latency 32, IRQ 17 I/O ports at c000 [size=128] Memory at d5020000 (32-bit, non-prefetchable) [size=128] Expansion ROM at <unassigned> [disabled] [size=128K] Capabilities: [dc] Power Management version 2 00: b7 10 00 92 07 00 10 02 78 00 00 02 08 20 00 00 10: 01 c0 00 00 00 00 02 d5 00 00 00 00 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 b7 10 00 10 30: 00 00 00 00 dc 00 00 00 00 00 00 00 0a 01 0a 0a (kernel-2.2.17)$ mii-diag -v mii-diag.c:v2.00 4/19/2000 Donald Becker (becker@scyld.com) http://www.scyld.com/diag/index.html Using the default interface 'eth0'. MII PHY #1 transceiver registers: 0000 0020 0000 0000 01e0 0081 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0600 8610 0000 4000 0000 0000 0000 0000 0000 0200 0000 0000 0000 0b2c 0000 0000. Basic mode control register 0x0000: Auto-negotiation disabled, with Speed fixed at 10 mbps, half-duplex. Basic mode status register 0x0020 ... 0020. Link status: not established. This transceiver is capable of <Warning! No media capabilities>. Unable to perform Auto-negotiation, negotiation complete. Your link partner is generating 100baseTx link beat (no autonegotiation). (kernel-2.4.2)$ mii-diag -v mii-diag.c:v2.00 4/19/2000 Donald Becker (becker@scyld.com) http://www.scyld.com/diag/index.html Using the default interface 'eth0'. MII PHY #24 transceiver registers: 3000 782d 0041 6800 05e1 0081 0004 2001 0000 0000 0000 0000 0000 0000 0000 0000 0618 8611 0030 4001 40c8 a000 0000 0000 d300 0220 8084 9119 0065 1b2c 7fff 0000. Basic mode control register 0x3000: Auto-negotiation enabled. You have link beat, and everything is working OK. This transceiver is capable of 100baseTx-FD 100baseTx 10baseT-FD 10baseT. Able to perform Auto-negotiation, negotiation complete. Your link partner is generating 100baseTx link beat (no autonegotiation). (kernel-2.2.17)$ vortex-diag -aaee vortex-diag.c:v2.04 1/8/2001 Donald Becker (becker@scyld.com) http://www.scyld.com/diag/index.html Index #1: Found a 3c905C Tornado 100baseTx adapter at 0xc000. The Vortex chip may be active, so FIFO registers will not be read. To see all register values use the '-f' flag. Initial window 4, registers values by window: Window 0: 0000 0000 e4cf 0000 8d8d 00bf ffff 0000. Window 1: FIFO FIFO 0700 0000 0000 007f 0000 2000. Window 2: 0100 be03 83ed 0000 0000 0000 0052 4000. Window 3: 0000 0180 05ea 0000 000a 0800 0800 6000. Window 4: 0000 0000 0000 08c6 0001 8880 0000 8000. Window 5: 1ffc 0000 0000 1ffc 0800 06ce 06c6 a000. Window 6: 0000 0000 0100 0100 0000 003c 012c c000. Window 7: 0000 0000 0000 0000 0000 0000 0000 e000. Vortex chip registers at 0xc000 0xC010: **FIFO** 00000000 0000000a *STATUS* 0xC020: 00000020 00000000 00080000 00000004 0xC030: 00000000 5d5da2a3 00000000 00080004 Indication enable is 06c6, interrupt enable is 06ce. No interrupt sources are pending. Transceiver/media interfaces available: 100baseTx 10baseT. Transceiver type in use: Autonegotiate. MAC settings: half-duplex. Station address set to 00:01:03:be:ed:83. Configuration options 0052. EEPROM contents (64 words, offset 0): 0x000: 0001 03be ed83 9200 0175 0048 4e48 6d50 0x008: 2940 0800 0001 03be ed83 0010 0000 00aa 0x010: 72a2 0000 0000 0180 0000 0000 0000 10b7 0x018: 1000 000a 0000 6300 ffb7 b7b7 0000 0000 0x020: 0089 1234 5600 0000 0000 0000 0000 0000 0x028: 0000 0000 0000 0000 0000 0000 0000 0000 0x030: ffff ffff ffff ffff ffff ffff ffff ffff 0x038: ffff ffff ffff ffff ffff ffff ffff ffff The word-wide EEPROM checksum is 0x7bd1. Parsing the EEPROM of a 3Com Vortex/Boomerang: 3Com Node Address 00:01:03:BE:ED:83 (used as a unique ID only). OEM Station address 00:01:03:BE:ED:83 (used as the ethernet address). Manufacture date (MM/DD/YYYY) 11/21/2000, division H, product HN. Options: none. Vortex format checksum is incorrect (001f vs. 10b7). Cyclone format checksum is incorrect (0xa2 vs. 0x89). Hurricane format checksum is correct (0x89 vs. 0x89). (kernel-2.4.2)$ vortex-diag -aaee vortex-diag.c:v2.04 1/8/2001 Donald Becker (becker@scyld.com) http://www.scyld.com/diag/index.html Index #1: Found a 3c905C Tornado 100baseTx adapter at 0xc000. The Vortex chip may be active, so FIFO registers will not be read. To see all register values use the '-f' flag. Initial window 4, registers values by window: Window 0: 0000 0000 e4cf 0000 8d8d 00bf ffff 0000. Window 1: FIFO FIFO 0700 0000 0000 007f 0000 2000. Window 2: 0100 be03 83ed 0000 0000 0000 0052 4000. Window 3: 0000 0180 05ea 0000 000a 0800 0800 6000. Window 4: 0000 0000 0000 0cc6 0001 8880 0000 8000. Window 5: 1ffc 0000 0000 0600 0807 06ce 06c6 a000. Window 6: 0000 0000 0000 3101 0100 fc76 1020 c000. Window 7: 0000 0000 0000 0000 0000 0000 0000 e000. Vortex chip registers at 0xc000 0xC010: **FIFO** 00000000 00000016 *STATUS* 0xC020: 00000020 00000000 00080000 00000004 0xC030: 00000000 0327fcd9 077a6100 00080004 Indication enable is 06c6, interrupt enable is 06ce. No interrupt sources are pending. Transceiver/media interfaces available: 100baseTx 10baseT. Transceiver type in use: Autonegotiate. MAC settings: half-duplex. Station address set to 00:01:03:be:ed:83. Configuration options 0052. EEPROM contents (64 words, offset 0): 0x000: 0001 03be ed83 9200 0175 0048 4e48 6d50 0x008: 2940 0800 0001 03be ed83 0010 0000 00aa 0x010: 72a2 0000 0000 0180 0000 0000 0000 10b7 0x018: 1000 000a 0000 6300 ffb7 b7b7 0000 0000 0x020: 0089 1234 5600 0000 0000 0000 0000 0000 0x028: 0000 0000 0000 0000 0000 0000 0000 0000 0x030: ffff ffff ffff ffff ffff ffff ffff ffff 0x038: ffff ffff ffff ffff ffff ffff ffff ffff The word-wide EEPROM checksum is 0x7bd1. Parsing the EEPROM of a 3Com Vortex/Boomerang: 3Com Node Address 00:01:03:BE:ED:83 (used as a unique ID only). OEM Station address 00:01:03:BE:ED:83 (used as the ethernet address). Manufacture date (MM/DD/YYYY) 11/21/2000, division H, product HN. Options: none. Vortex format checksum is incorrect (001f vs. 10b7). Cyclone format checksum is incorrect (0xa2 vs. 0x89). Hurricane format checksum is correct (0x89 vs. 0x89). Finally, examples for the kern.info messages are: (kernel-2.2.17)$ insmod 3c59x.o debug=7; ifconfig (...) kernel: 3c59x.c 15Sep00 Donald Becker and others http://www.scyld.com/network/vortex.html kernel: eth0: 3Com 3c905C Tornado at 0xc000, 00:01:03:be:ed:83, IRQ 17 kernel: 8K byte-wide RAM 5:3 Rx:Tx split, autoselect/Autonegotiate interface. kernel: MII transceiver found at address 1, status 24. kernel: MII transceiver found at address 2, status 24. kernel: Enabling bus-master transmits and whole-frame receives. kernel: eth0: MII #1 status 0024, link partner capability 0081, setting half-duplex. (kernel-2.2.17)$ insmod debug=7 options=4 full_duplex=0; ifconfig (...) kernel: 3c59x.c 15Sep00 Donald Becker and others http://www.scyld.com/network/vortex.html kernel: eth0: 3Com 3c905C Tornado at 0xc000, 00:01:03:be:ed:83, IRQ 17 kernel: 8K byte-wide RAM 5:3 Rx:Tx split, autoselect/Autonegotiate interface. kernel: Media override to transceiver type 4 (100baseTX). kernel: Enabling bus-master transmits and whole-frame receives. kernel: eth0: Media override to transceiver 4 (100baseTX). (kernel-2.2.17)$ insmod debug=7 options=7 ; ifconfig (...) kernel: 3c59x.c 15Sep00 Donald Becker and others http://www.scyld.com/network/vortex.html kernel: eth0: 3Com 3c905C Tornado at 0xc000, 00:01:03:be:ed:83, IRQ 17 kernel: 8K byte-wide RAM 5:3 Rx:Tx split, autoselect/Autonegotiate interface. kernel: MII transceiver found at address 1, status 24. kernel: MII transceiver found at address 2, status 24. kernel: Enabling bus-master transmits and whole-frame receives. kernel: eth0: MII #1 status 0024, link partner capability 0081, setting half-duplex. (kernel-2.4.2)$ insmod 3c59x debug=7 kernel: 3c59x.c:LK1.1.12 06 Jan 2000 Donald Becker and others. http://www.scyld.com/network/vortex.html $Revision: 1.102.2.46 $ kernel: See Documentation/networking/vortex.txt kernel: eth0: 3Com PCI 3c905C Tornado at 0xc000, 00:01:03:be:ed:83, IRQ 17 kernel: product code 'HN' rev 00.3 date 11-21-00 kernel: 8K byte-wide RAM 5:3 Rx:Tx split, autoselect/Autonegotiate interface. kernel: MII transceiver found at address 24, status 782d. kernel: 3c59x: Wake-on-LAN functions disabled kernel: Enabling bus-master transmits and whole-frame receives. kernel: eth0: using NWAY autonegotiation kernel: eth0: MII #24 status 782d, link partner capability 0081, setting half-duplex. kernel: eth0: command 0x2800 took 30380 usecs! Please tell andrewm@uow.edu.au - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org