Re: Further on P4R800-VM and 3c59x
Bogdan Costescu <[email protected]> Thu, 8 Jan 2004 01:33:40 +0100 (CET)
| Newsgroups | gmane.linux.drivers.vortex.devel |
|---|---|
| Message-ID | <Pine.LNX.4.44.0401080053120.20035-100000@kenzo.iwr.uni-heidelberg.de> |
On Thu, 8 Jan 2004, Andrej Prsa wrote:
> when ifconfig'ing the card, I get:
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.
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 ?
> {"3c920 series Tornado",{ 0x920010B7, 0xfff0ffff },
> PCI_IOTYPE, CYCLONE_SIZE, FEATURE_TORNADO, },
And here is called "Tornado", while the vortex-diag output posted a few
days ago called it "920-2 Cyclone" :-)
The 0xfff0ffff is the mask that is applied to 0x920010B7 for wildcard
matching.
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'm thinking of a transmission error which
happens if the Tx FIFO gets full. The DMA engine obviously thinks that the
packet is sent as it raises the interrupt; 32 is 2048 (Tx FIFO size for
other Cyclone and Tornado cards - hopefully it's the same here) divided by
64 (ping packet size).
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 :-)
--
Bogdan Costescu
IWR - Interdisziplinaeres Zentrum fuer Wissenschaftliches Rechnen
Universitaet Heidelberg, INF 368, D-69120 Heidelberg, GERMANY
Telephone: +49 6221 54 8869, Telefax: +49 6221 54 8868
E-mail: [email protected]
_______________________________________________
vortex mailing list
[email protected]
http://www.scyld.com/mailman/listinfo/vortex