Re: Further on P4R800-VM and 3c59x
Andrej Prsa <[email protected]> Thu, 8 Jan 2004 02:46:14 +0100
| Newsgroups | gmane.linux.drivers.vortex.devel |
|---|---|
| Organization | Faculty of Mathematics and Physics |
| Message-ID | <[email protected]> |
Hi! > Please "ifconfig eth0 down", then "rmmod 3c59x", then "ifconfig eth0 up" > (which should automatically insmod if /etc/modules.conf is set up > properly); I'm also interested in the messages that are printed from the > vortex_probe1() routine, which is only exercised once when the module is > inserted. I did that. I rmmod'd pci-scan as well, just to be sure, and ifconfig'ing eth0 in fact loaded both pci-scan and 3c59x. However, no messages with vortex_probe1() are present in any of the logs (I grepped through the whole /var/log directory and nothing of the kind is present.). > Also, I just went through all the postings on this subject and I > couldn't found any EEPROM dump. Could you please run "vortex-diag -ee > eth0" and post the output ? Sure, here it goes: vortex-diag.c:v2.15a 12/16/2003 Donald Becker ([email protected]) http://www.scyld.com/diag/index.html Index #1: Found a 3c920 (Type 920-2) Cyclone adapter at 0xdc00. Station address 00:0e:a6:0d:d7:65. Receive mode is 0x15: Normal unicast and hashed multicast. EEPROM format 64x16, configuration table at offset 0: 00: 000e a60d d765 9202 0404 5532 00f8 6d50 0x08: 2940 0000 000e a60d d765 0010 0000 00aa 0x10: 72a2 0000 0000 0160 0000 0005 0000 1043 0x18: 8108 0040 0000 6300 ffb7 b7b7 0000 0000 0x20: 00e4 0000 0000 0000 0000 0000 0000 0000 0x28: 0000 0000 0000 0000 0000 0000 0000 0000 0x30: 00ff 00ff ffff ffff ffff ffff ffff ffff 0x38: ffff ffff ffff ffff ffff ffff ffff ffff The word-wide EEPROM checksum is 0xa14e. Saved EEPROM settings of a 3Com Vortex/Boomerang: 3Com Node Address 00:0E:A6:0D:D7:65 (used as a unique ID only). OEM Station address 00:0E:A6:0D:D7:65 (used as the ethernet address). Device ID 9202, Manufacturer ID 6d50. Manufacture date (MM/DD/YYYY) 0/4/2002, division 2, product ΓΈ > Another thing that was not clear in your previous postings: when you > tried to ping from the desktop computer and interrupt rate increased > with 1 per second (actually per ping packet), did you try to send more > than 32 packets ? If so, did you observe any anomaly in increasing the > interrupts count once you hit 32 packets ? I just sent 84 packets. For all the number of interrupts increased by 1. No anomalies as far as I can tell. I also tried flooding the ping (with -f) and it still grows slowly (much slower than the points on my screen). ;-) > Another idea is that maybe Tx reset doesn't finish in time, just as Rx > reset did not for 905CX cards. So maybe in start_operation() function, > you could make the beginning look like: > > outw(TxReset, ioaddr + EL3_CMD); > for (i = 2000; i >= 0 ; i--) > if ( ! (inw(ioaddr + EL3_STATUS) & CmdInProgress)) > break; > + if (i < 200) > + printk(KERN_DEBUG "%s: Tx Reset took an unexpectedly long time" > + " to finish, %d ticks.\n", dev->name, 2000 - i); > > outw(RxReset | 0x04, ioaddr + EL3_CMD); > > (the lines marked with + were added). Then recompile the driver, > ifconfig down, rmmod and insmod the new one, then ifconfig up. If the > message "Tx Reset took an unexpectedly long time..." appears in the > logs, you could play with the "i" value in the previous "for" cycle > until you get one which doesn't print the message; then you tell it to > us, of course :-) Recompiled and re-insmod'd 3c59x debug=31: 3c59x.c:v0.99Za 4/17/2003 Donald Becker, [email protected] http://www.scyld.com/network/vortex.html eth0: 3Com 3c920 series Tornado at 0xdc00, 00:0e:a6:0d:d7:65, IRQ 3 Internal config register is 01800000, transceivers 0x40. 8K buffer 5:3 Rx:Tx split, autoselect/Autonegotiate interface. MII transceiver found at address 1, status 786d. Using bus-master transmits and whole-frame receives. ifconfig'd eth0: eth0: Initial media type Autonegotiate half-duplex. eth0: MII #1 status 786d, link partner capability 41e1, setting full-duplex. eth0: vortex_open() irq 3 media status 8080. eth0: Media selection timer tick happened, Autonegotiate full duplex. eth0: MII transceiver has status 786d. eth0: Media selection timer finished, Autonegotiate. Started pinging: eth0: Queuing Tx packet, index 0. eth0: interrupt, status e201, latency 1 ticks. eth0: In interrupt loop, status e201. eth0: Transmit done, Tx status 90010000. eth0: exiting interrupt, status e000. eth0: Queuing Tx packet, index 1. eth0: interrupt, status e201, latency 1 ticks. eth0: In interrupt loop, status e201. eth0: Transmit done, Tx status 90010004. eth0: exiting interrupt, status e000. eth0: Queuing Tx packet, index 2. eth0: interrupt, status e201, latency 1 ticks. eth0: In interrupt loop, status e201. eth0: Transmit done, Tx status 90010008. eth0: exiting interrupt, status e000. eth0: Queuing Tx packet, index 3. ... Stopped pinging after cca. 40 ping attempts: eth0: Media selection timer tick happened, Autonegotiate full duplex. eth0: MII transceiver has status 786d. eth0: Media selection timer finished, Autonegotiate. Nothing of the kind happened as far as I can tell. Thanks a lot you guys! I'm really grateful for all the effort! Andrej _______________________________________________ vortex mailing list [email protected] http://www.scyld.com/mailman/listinfo/vortex